aboutsummaryrefslogtreecommitdiff
path: root/security/pam_p11
diff options
context:
space:
mode:
authorAlex Dupre <ale@FreeBSD.org>2018-10-24 12:48:46 +0000
committerAlex Dupre <ale@FreeBSD.org>2018-10-24 12:48:46 +0000
commit9c3ef81bc87eb6896fdb343706d472a313ca7894 (patch)
tree7c44b7972e5ae642f592210925454eee558aa5ba /security/pam_p11
parent335d8e16f1d28ac00455ddfae49a1a9cf7de35ae (diff)
downloadports-9c3ef81bc87eb6896fdb343706d472a313ca7894.tar.gz
ports-9c3ef81bc87eb6896fdb343706d472a313ca7894.zip
Notes
Diffstat (limited to 'security/pam_p11')
-rw-r--r--security/pam_p11/Makefile11
-rw-r--r--security/pam_p11/files/patch-configure.ac14
-rw-r--r--security/pam_p11/files/patch-src_Makefile.am16
-rw-r--r--security/pam_p11/files/patch-src_Makefile.in15
-rw-r--r--security/pam_p11/files/patch-src_pam__p11.c49
5 files changed, 86 insertions, 19 deletions
diff --git a/security/pam_p11/Makefile b/security/pam_p11/Makefile
index f5cff011519a..e8ca9ef61069 100644
--- a/security/pam_p11/Makefile
+++ b/security/pam_p11/Makefile
@@ -3,6 +3,7 @@
PORTNAME= pam_p11
PORTVERSION= 0.2.0
+PORTREVISION= 1
CATEGORIES= security
MASTER_SITES= https://github.com/OpenSC/pam_p11/releases/download/pam_p11-${PORTVERSION}/
@@ -13,12 +14,18 @@ LICENSE= LGPL21
LIB_DEPENDS= libp11.so:security/libp11
-USES= libtool pkgconfig ssl
+USES= libtool pkgconfig ssl autoreconf
-OPTIONS_DEFINE= DOCS
+OPTIONS_DEFINE= DOCS NLS
GNU_CONFIGURE= yes
+NLS_CONFIGURE_ENABLE= nls
+NLS_USES= gettext
+NLS_PLIST_FILES=share/locale/de/LC_MESSAGES/pam_p11.mo
+
+CONFIGURE_ARGS= --with-libintl-prefix=${LOCALBASE}
+
CONFIGURE_ENV= OPENSSL_CFLAGS="-I${OPENSSLINC}" \
OPENSSL_LIBS="-L${OPENSSLLIB} -lcrypto"
diff --git a/security/pam_p11/files/patch-configure.ac b/security/pam_p11/files/patch-configure.ac
new file mode 100644
index 000000000000..1168396943f0
--- /dev/null
+++ b/security/pam_p11/files/patch-configure.ac
@@ -0,0 +1,14 @@
+--- configure.ac.orig 2018-10-24 11:06:32 UTC
++++ configure.ac
+@@ -85,6 +85,11 @@ PKG_CHECK_MODULES(
+ )]
+ )
+
++saved_LIBS="$LIBS"
++LIBS="$OPENSSL_LIBS $LIBS"
++AC_CHECK_FUNCS(EVP_MD_CTX_new EVP_MD_CTX_free EVP_MD_CTX_reset)
++LIBS="$saved_LIBS"
++
+ if test -z "${PAM_LIBS}"; then
+ AC_ARG_VAR([PAM_CFLAGS], [C compiler flags for pam])
+ AC_ARG_VAR([PAM_LIBS], [linker flags for pam])
diff --git a/security/pam_p11/files/patch-src_Makefile.am b/security/pam_p11/files/patch-src_Makefile.am
new file mode 100644
index 000000000000..bc5fbfc2c35d
--- /dev/null
+++ b/security/pam_p11/files/patch-src_Makefile.am
@@ -0,0 +1,16 @@
+--- src/Makefile.am.orig 2018-10-24 12:39:40 UTC
++++ src/Makefile.am
+@@ -14,11 +14,11 @@ pam_p11_la_SOURCES = pam_p11.c base64.c
+ noinst_PROGRAMS = test-login test-passwd
+
+ test_login_SOURCES = test.c login.c $(pam_p11_la_SOURCES)
+-test_login_LDADD = -lpam_misc
++test_login_LDADD = ${INTLLIBS}
+ test_login_CFLAGS = $(AM_CFLAGS) -DLIBDIR=\"$(libdir)\" -DTEST
+
+ test_passwd_SOURCES = test.c passwd.c $(pam_p11_la_SOURCES)
+-test_passwd_LDADD = -lpam_misc
++test_passwd_LDADD = ${INTLLIBS}
+ test_passwd_CFLAGS = $(AM_CFLAGS) -DLIBDIR=\"$(libdir)\" -DTEST
+
+ format:
diff --git a/security/pam_p11/files/patch-src_Makefile.in b/security/pam_p11/files/patch-src_Makefile.in
deleted file mode 100644
index 837c9f415d91..000000000000
--- a/security/pam_p11/files/patch-src_Makefile.in
+++ /dev/null
@@ -1,15 +0,0 @@
---- src/Makefile.in.orig 2018-10-16 10:16:04 UTC
-+++ src/Makefile.in
-@@ -384,10 +384,10 @@ pam_p11_la_SOURCES = pam_p11.c base64.c
- pam_p11.exports
-
- test_login_SOURCES = test.c login.c $(pam_p11_la_SOURCES)
--test_login_LDADD = -lpam_misc
-+test_login_LDADD =
- test_login_CFLAGS = $(AM_CFLAGS) -DLIBDIR=\"$(libdir)\" -DTEST
- test_passwd_SOURCES = test.c passwd.c $(pam_p11_la_SOURCES)
--test_passwd_LDADD = -lpam_misc
-+test_passwd_LDADD =
- test_passwd_CFLAGS = $(AM_CFLAGS) -DLIBDIR=\"$(libdir)\" -DTEST
- all: all-am
-
diff --git a/security/pam_p11/files/patch-src_pam__p11.c b/security/pam_p11/files/patch-src_pam__p11.c
index ef62cf5e88a4..5f5c0c5699d5 100644
--- a/security/pam_p11/files/patch-src_pam__p11.c
+++ b/security/pam_p11/files/patch-src_pam__p11.c
@@ -1,6 +1,24 @@
--- src/pam_p11.c.orig 2018-05-04 14:52:04 UTC
+++ src/pam_p11.c
-@@ -53,7 +53,7 @@
+@@ -31,6 +31,17 @@
+ #include <openssl/crypto.h>
+ #include <libp11.h>
+
++/* openssl deprecated API emulation */
++#ifndef HAVE_EVP_MD_CTX_NEW
++#define EVP_MD_CTX_new() EVP_MD_CTX_create()
++#endif
++#ifndef HAVE_EVP_MD_CTX_FREE
++#define EVP_MD_CTX_free(ctx) EVP_MD_CTX_destroy((ctx))
++#endif
++#ifndef HAVE_EVP_MD_CTX_RESET
++#define EVP_MD_CTX_reset(ctx) EVP_MD_CTX_cleanup((ctx))
++#endif
++
+ #ifdef ENABLE_NLS
+ #include <libintl.h>
+ #include <locale.h>
+@@ -53,7 +64,7 @@
#include <security/pam_ext.h>
#else
#define pam_syslog(handle, level, msg...) syslog(level, ## msg)
@@ -9,7 +27,7 @@
const char *fmt, va_list args)
{
int r = PAM_CRED_INSUFFICIENT;
-@@ -549,7 +549,7 @@ static int key_find(pam_handle_t *pamh,
+@@ -549,7 +560,7 @@ static int key_find(pam_handle_t *pamh,
return 0;
}
@@ -18,3 +36,30 @@
{
int ok = 0;
int fd = open("/dev/urandom", O_RDONLY);
+@@ -572,7 +583,7 @@ static int key_verify(pam_handle_t *pamh
+ unsigned char signature[256];
+ unsigned int siglen = sizeof signature;
+ const EVP_MD *md = EVP_sha1();
+- EVP_MD_CTX *md_ctx = EVP_MD_CTX_create();
++ EVP_MD_CTX *md_ctx = EVP_MD_CTX_new();
+ EVP_PKEY *privkey = PKCS11_get_private_key(authkey);
+ EVP_PKEY *pubkey = PKCS11_get_public_key(authkey);
+
+@@ -590,7 +601,7 @@ static int key_verify(pam_handle_t *pamh
+ || !EVP_SignInit(md_ctx, md)
+ || !EVP_SignUpdate(md_ctx, challenge, sizeof challenge)
+ || !EVP_SignFinal(md_ctx, signature, &siglen, privkey)
+- || !EVP_MD_CTX_cleanup(md_ctx)
++ || !EVP_MD_CTX_reset(md_ctx)
+ || !EVP_VerifyInit(md_ctx, md)
+ || !EVP_VerifyUpdate(md_ctx, challenge, sizeof challenge)
+ || 1 != EVP_VerifyFinal(md_ctx, signature, siglen, pubkey)) {
+@@ -607,7 +618,7 @@ err:
+ if (NULL != privkey)
+ EVP_PKEY_free(privkey);
+ if (NULL != md_ctx) {
+- EVP_MD_CTX_destroy(md_ctx);
++ EVP_MD_CTX_free(md_ctx);
+ }
+ return ok;
+ }