See sthen's thread from earlier this day and https://github.com/OpenSC/OpenSC/releases for changelog. Quite a few things changed so I bumped both majors.
I also adjusted the default PKCS11 provider so `pkcs11-tool' doesn't need to use `--module /usr/local/lib/pkcs11/opensc-pkcs11.so' anymore (the previous default /usr/local/lib/opensc-pkcs11.so does not exist). `make update-plist' added share/applications/org.opensc.notify.desktop and `@tag update-desktop-database' but `make update' would fail with "@tag update-desktop-database definition not found" so I left these PLIST updates out for now as I fail to see how to fix this. Does anyone know how to fix this? Works fine for my daily usage with a YubiKey NEO on amd64. Index: Makefile =================================================================== RCS file: /cvs/ports/security/opensc/Makefile,v retrieving revision 1.46 diff -u -p -r1.46 Makefile --- Makefile 10 May 2018 16:02:56 -0000 1.46 +++ Makefile 13 Sep 2018 16:59:42 -0000 @@ -2,13 +2,12 @@ COMMENT= set of libraries and utilities to access smart cards -V= 0.17.0 +V= 0.19.0 DISTNAME= opensc-${V} -REVISION= 3 SUBST_VARS += V -SHARED_LIBS += opensc 6.0 # 5.0 -SHARED_LIBS += smm-local 2.0 # 5.0 +SHARED_LIBS += opensc 7.0 # 5.0 +SHARED_LIBS += smm-local 3.0 # 5.0 CATEGORIES= security @@ -19,7 +18,7 @@ MAINTAINER= David Coppa <dcoppa@openbsd. # LGPLv2.1+ PERMIT_PACKAGE_CDROM= Yes -WANTLIB= c crypto ncurses pthread readline z +WANTLIB= c crypto curses ffi iconv intl ncurses pthread readline z MASTER_SITES= https://github.com/OpenSC/OpenSC/releases/download/${V}/ @@ -37,6 +36,7 @@ CONFIGURE_ARGS= --enable-static \ --sysconfdir=${SYSCONFDIR} \ --enable-sm \ --disable-cryptotokenkit \ + --with-pkcs11-provider=${LOCALBASE}/lib/pkcs11/opensc-pkcs11.so \ --with-xsl-stylesheetsdir=${LOCALBASE}/share/xsl/docbook CONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/include/PCSC" @@ -44,7 +44,7 @@ FAKE_FLAGS= mandir="${PREFIX}/man/" \ sysconfdir="${PREFIX}/share/examples/opensc/" AUTOCONF_VERSION = 2.69 -AUTOMAKE_VERSION = 1.14 +AUTOMAKE_VERSION = 1.15 pre-configure: cd ${WRKSRC} && env AUTOCONF_VERSION=${AUTOCONF_VERSION} \ @@ -52,9 +52,8 @@ pre-configure: post-install: ${INSTALL_DATA_DIR} ${PREFIX}/lib/pkgconfig - ${SUBST_CMD} -c -m 0644 -o ${BINOWN} -g ${BINGRP} \ - ${FILESDIR}/libopensc.pc \ - ${PREFIX}/lib/pkgconfig/libopensc.pc + ${SUBST_CMD} -c -m ${NONBINMODE} -o ${BINOWN} -g ${BINGRP} \ + ${FILESDIR}/libopensc.pc ${PREFIX}/lib/pkgconfig/libopensc.pc @find ${PREFIX}/lib/pkcs11/ -name '*.la' -delete .include <bsd.port.mk> Index: distinfo =================================================================== RCS file: /cvs/ports/security/opensc/distinfo,v retrieving revision 1.13 diff -u -p -r1.13 distinfo --- distinfo 10 May 2018 16:02:56 -0000 1.13 +++ distinfo 13 Sep 2018 15:10:32 -0000 @@ -1,2 +1,2 @@ -SHA256 (opensc-0.17.0.tar.gz) = vnPGgWhnq0ch5qmufbqOiQxfFp8KLLtL81Tg8wqUgwA= -SIZE (opensc-0.17.0.tar.gz) = 1950547 +SHA256 (opensc-0.19.0.tar.gz) = LFoOTfkCdjUpC5wPOt278NZR213bCreJyw6XjwL9WCY= +SIZE (opensc-0.19.0.tar.gz) = 2080320 Index: patches/patch-configure_ac =================================================================== RCS file: /cvs/ports/security/opensc/patches/patch-configure_ac,v retrieving revision 1.7 diff -u -p -r1.7 patch-configure_ac --- patches/patch-configure_ac 16 Aug 2017 14:39:07 -0000 1.7 +++ patches/patch-configure_ac 13 Sep 2018 16:00:16 -0000 @@ -7,18 +7,17 @@ libdl is not required on OpenBSD Index: configure.ac --- configure.ac.orig +++ configure.ac -@@ -327,30 +327,9 @@ elif test "${xslstylesheetsdir}" != "no"; then +@@ -341,29 +341,9 @@ elif test "${xslstylesheetsdir}" != "no"; then fi AC_MSG_RESULT([${xslstylesheetsdir}]) -AC_MSG_CHECKING([git checkout]) -GIT_CHECKOUT="no" -if test -n "${GIT}" -a -d "${srcdir}/.git"; then -- AC_DEFINE([HAVE_CONFIG_VERSION_H], [1], [extra version available in config-version.h]) - GIT_CHECKOUT="yes" -fi -AC_MSG_RESULT([${GIT_CHECKOUT}]) -+OPENSC_SCM_REVISION="OpenSC-0.17.0, rev: 43951252, commit-time: 2017-07-18 14:29:50 +0000" ++OPENSC_SCM_REVISION="OpenSC-0.19.0, rev: f1691fc9, commit-time: 2018-09-13 13:47:21 2018 +0200" +OPENSC_VERSION_REVISION="0" -if test "${GIT_CHECKOUT}" = "yes"; then @@ -40,7 +39,7 @@ Index: configure.ac dnl C Compiler features AC_C_INLINE -@@ -401,11 +380,6 @@ AC_CHECK_LIB( +@@ -414,11 +394,6 @@ AC_CHECK_LIB( ) if test "${WIN32}" = "no"; then @@ -52,10 +51,10 @@ Index: configure.ac dnl Special check for pthread support. AX_PTHREAD( [AC_DEFINE( -@@ -931,7 +905,6 @@ AM_CONDITIONAL([ENABLE_MINIDRIVER_SETUP_CUSTOMACTION], - AM_CONDITIONAL([ENABLE_SM], [test "${enable_sm}" = "yes"]) +@@ -1036,7 +1011,6 @@ AM_CONDITIONAL([ENABLE_SM], [test "${enable_sm}" = "ye AM_CONDITIONAL([ENABLE_DNIE_UI], [test "${enable_dnie_ui}" = "yes"]) AM_CONDITIONAL([ENABLE_NPATOOL], [test "${ENABLE_NPATOOL}" = "yes"]) + AM_CONDITIONAL([ENABLE_TESTS], [test "${enable_tests}" = "yes"]) -AM_CONDITIONAL([GIT_CHECKOUT], [test "${GIT_CHECKOUT}" = "yes"]) if test "${enable_pedantic}" = "yes"; then Index: patches/patch-doc_tools_Makefile_am =================================================================== RCS file: /cvs/ports/security/opensc/patches/patch-doc_tools_Makefile_am,v retrieving revision 1.1 diff -u -p -r1.1 patch-doc_tools_Makefile_am --- patches/patch-doc_tools_Makefile_am 7 Jun 2016 14:08:44 -0000 1.1 +++ patches/patch-doc_tools_Makefile_am 13 Sep 2018 15:18:35 -0000 @@ -2,21 +2,21 @@ $OpenBSD: patch-doc_tools_Makefile_am,v Do not install bash-completion scripts ---- doc/tools/Makefile.am.orig Fri Jun 3 16:47:44 2016 -+++ doc/tools/Makefile.am Fri Jun 3 16:48:26 2016 -@@ -12,9 +12,6 @@ man1_MANS = $(patsubst $(srcdir)/%.xml, %, $(wildcard - man5_MANS = $(patsubst $(srcdir)/%.xml, %, $(wildcard $(srcdir)/*.5.xml)) +Index: doc/tools/Makefile.am +--- doc/tools/Makefile.am.orig ++++ doc/tools/Makefile.am +@@ -14,8 +14,6 @@ if ENABLE_MAN + man1_MANS = $(patsubst $(srcdir)/%.xml, %, $(wildcard $(srcdir)/*.1.xml)) endif -completion_DATA = $(patsubst $(srcdir)/%.1.xml, %, $(wildcard $(srcdir)/*.1.xml)) --completiondir = $(sysconfdir)/bash_completion.d - - tools.html: $(srcdir)/tools.xml $(wildcard $(srcdir)/*.1.xml) $(wildcard $(srcdir)/*.5.xml) + tools.html: $(srcdir)/tools.xml $(wildcard $(srcdir)/*.1.xml) $(XSLTPROC) --nonet --path "$(srcdir)/..:$(xslstylesheetsdir)/html" --xinclude -o $@ html.xsl $< -@@ -43,4 +40,4 @@ tools.html: $(srcdir)/tools.xml $(wildcard $(srcdir)/* +@@ -43,4 +41,4 @@ tools.html: $(srcdir)/tools.xml $(wildcard $(srcdir)/* > $@ clean-local: -- -rm -rf $(html_DATA) $(man1_MANS) $(man5_MANS) $(completion_DATA) +- -rm -rf $(html_DATA) $(man1_MANS) $(completion_DATA) + -rm -rf $(html_DATA) $(man1_MANS) $(man5_MANS) Index: patches/patch-etc_Makefile_am =================================================================== RCS file: /cvs/ports/security/opensc/patches/patch-etc_Makefile_am,v retrieving revision 1.1 diff -u -p -r1.1 patch-etc_Makefile_am --- patches/patch-etc_Makefile_am 16 Aug 2017 14:39:07 -0000 1.1 +++ patches/patch-etc_Makefile_am 13 Sep 2018 15:18:31 -0000 @@ -3,16 +3,16 @@ $OpenBSD: patch-etc_Makefile_am,v 1.1 20 Index: etc/Makefile.am --- etc/Makefile.am.orig +++ etc/Makefile.am -@@ -32,11 +32,7 @@ opensc.conf: opensc.conf.in force +@@ -32,11 +32,7 @@ opensc.conf.example: opensc.conf.example.in force - install-exec-hook: opensc.conf + install-exec-hook: opensc.conf.example $(MKDIR_P) "$(DESTDIR)$(sysconfdir)" - if [ -f "$(DESTDIR)$(sysconfdir)/opensc.conf" ]; then \ -- $(INSTALL_DATA) opensc.conf "$(DESTDIR)$(sysconfdir)/opensc.conf.new"; \ +- $(INSTALL_DATA) $(srcdir)/opensc.conf "$(DESTDIR)$(sysconfdir)/opensc.conf.new"; \ - else \ -- $(INSTALL_DATA) opensc.conf "$(DESTDIR)$(sysconfdir)/opensc.conf"; \ +- $(INSTALL_DATA) $(srcdir)/opensc.conf "$(DESTDIR)$(sysconfdir)/opensc.conf"; \ - fi + $(INSTALL_DATA) opensc.conf "$(DESTDIR)$(sysconfdir)/opensc.conf" + $(MKDIR_P) "$(DESTDIR)$(docdir)" + $(INSTALL_DATA) opensc.conf.example "$(DESTDIR)$(docdir)/opensc.conf"; - uninstall-hook: opensc.conf - rm -f "$(DESTDIR)$(sysconfdir)/opensc.conf.new" "$(DESTDIR)$(sysconfdir)/opensc.conf" Index: patches/patch-src_common_libpkcs11_c =================================================================== RCS file: patches/patch-src_common_libpkcs11_c diff -N patches/patch-src_common_libpkcs11_c --- patches/patch-src_common_libpkcs11_c 11 Sep 2017 09:27:38 -0000 1.3 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,20 +0,0 @@ -$OpenBSD: patch-src_common_libpkcs11_c,v 1.3 2017/09/11 09:27:38 dcoppa Exp $ - -memory leak if C_UnloadModule() fails -(upstream git commit e2fe24d56ac4a90bf140c670ebea02dee6a599d6) - -Index: src/common/libpkcs11.c ---- src/common/libpkcs11.c.orig -+++ src/common/libpkcs11.c -@@ -75,8 +75,9 @@ C_LoadModule(const char *mspec, CK_FUNCTION_LIST_PTR_P - return (void *) mod; - else { - fprintf(stderr, "C_GetFunctionList failed %lx", rv); -- C_UnloadModule((void *) mod); -- return NULL; -+ rv = C_UnloadModule((void *) mod); -+ if (rv == CKR_OK) -+ mod = NULL; /* already freed */ - } - failed: - free(mod); Index: patches/patch-src_libopensc_card-jpki_c =================================================================== RCS file: patches/patch-src_libopensc_card-jpki_c diff -N patches/patch-src_libopensc_card-jpki_c --- patches/patch-src_libopensc_card-jpki_c 11 Sep 2017 09:27:38 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,23 +0,0 @@ -$OpenBSD: patch-src_libopensc_card-jpki_c,v 1.1 2017/09/11 09:27:38 dcoppa Exp $ - -commit da9484bd6b4052ea6fb022d27bd7e75350d6cf76 -Author: HAMANO Tsukasa <ham...@osstech.co.jp> -Date: Mon Apr 10 07:39:44 2017 - -fix trivial leak - -Index: src/libopensc/card-jpki.c ---- src/libopensc/card-jpki.c.orig -+++ src/libopensc/card-jpki.c -@@ -82,7 +82,10 @@ jpki_finish(sc_card_t * card) - struct jpki_private_data *drvdata = JPKI_DRVDATA(card); - - LOG_FUNC_CALLED(card->ctx); -- -+ if (drvdata->mf) { -+ free(drvdata->mf); -+ drvdata->mf = NULL; -+ } - if (drvdata) { - free(drvdata); - card->drv_data = NULL; Index: patches/patch-src_libopensc_pkcs15-pubkey_c =================================================================== RCS file: patches/patch-src_libopensc_pkcs15-pubkey_c diff -N patches/patch-src_libopensc_pkcs15-pubkey_c --- patches/patch-src_libopensc_pkcs15-pubkey_c 11 Sep 2017 09:27:38 -0000 1.3 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,33 +0,0 @@ -$OpenBSD: patch-src_libopensc_pkcs15-pubkey_c,v 1.3 2017/09/11 09:27:38 dcoppa Exp $ - -Plug memory leaks -(upstream git commit e2fe24d56ac4a90bf140c670ebea02dee6a599d6) - -Index: src/libopensc/pkcs15-pubkey.c ---- src/libopensc/pkcs15-pubkey.c.orig -+++ src/libopensc/pkcs15-pubkey.c -@@ -1098,8 +1098,10 @@ sc_pkcs15_dup_pubkey(struct sc_context *ctx, struct sc - rv = sc_asn1_encode_algorithm_id(ctx, &alg, &alglen,key->alg_id, 0); - if (rv == SC_SUCCESS) { - pubkey->alg_id = (struct sc_algorithm_id *)calloc(1, sizeof(struct sc_algorithm_id)); -- if (pubkey->alg_id == NULL) -+ if (pubkey->alg_id == NULL) { -+ free(pubkey); - LOG_FUNC_RETURN(ctx, SC_ERROR_OUT_OF_MEMORY); -+ } - rv = sc_asn1_decode_algorithm_id(ctx, alg, alglen, pubkey->alg_id, 0); - free(alg); - } -@@ -1389,8 +1391,10 @@ sc_pkcs15_pubkey_from_spki_fields(struct sc_context *c - } - - pubkey->u.ec.ecpointQ.value = malloc(pk.len); -- if (pubkey->u.ec.ecpointQ.value == NULL) -- LOG_FUNC_RETURN(ctx, SC_ERROR_OUT_OF_MEMORY); -+ if (pubkey->u.ec.ecpointQ.value == NULL) { -+ r = SC_ERROR_OUT_OF_MEMORY; -+ LOG_TEST_GOTO_ERR(ctx, r, "failed to malloc() memory"); -+ } - memcpy(pubkey->u.ec.ecpointQ.value, pk.value, pk.len); - pubkey->u.ec.ecpointQ.len = pk.len; - } Index: patches/patch-src_libopensc_sc-ossl-compat_h =================================================================== RCS file: patches/patch-src_libopensc_sc-ossl-compat_h diff -N patches/patch-src_libopensc_sc-ossl-compat_h --- patches/patch-src_libopensc_sc-ossl-compat_h 18 Feb 2018 14:21:23 -0000 1.3 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,42 +0,0 @@ -$OpenBSD: patch-src_libopensc_sc-ossl-compat_h,v 1.3 2018/02/18 14:21:23 sthen Exp $ - -Index: src/libopensc/sc-ossl-compat.h ---- src/libopensc/sc-ossl-compat.h.orig -+++ src/libopensc/sc-ossl-compat.h -@@ -92,12 +92,16 @@ extern "C" { - #define RSA_PKCS1_OpenSSL RSA_PKCS1_SSLeay - #define OPENSSL_malloc_init CRYPTO_malloc_init - -+#if !defined(LIBRESSL_VERSION_NUMBER) || LIBRESSL_VERSION_NUMBER < 0x2070000fL - #define EVP_PKEY_get0_RSA(x) (x->pkey.rsa) - #define EVP_PKEY_get0_DSA(x) (x->pkey.dsa) -+#endif - #define X509_get_extension_flags(x) (x->ex_flags) - #define X509_get_key_usage(x) (x->ex_kusage) - #define X509_get_extended_key_usage(x) (x->ex_xkusage) -+#if !defined(LIBRESSL_VERSION_NUMBER) || LIBRESSL_VERSION_NUMBER < 0x2070000fL - #define EVP_PKEY_up_ref(user_key) CRYPTO_add(&user_key->references, 1, CRYPTO_LOCK_EVP_PKEY) -+#endif - #if !defined(LIBRESSL_VERSION_NUMBER) || LIBRESSL_VERSION_NUMBER < 0x2050300fL - #define X509_up_ref(cert) CRYPTO_add(&cert->references, 1, CRYPTO_LOCK_X509) - #endif -@@ -110,7 +114,8 @@ extern "C" { - * If that is not good enough, versions could be added to libopensc - */ - --#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) -+#if OPENSSL_VERSION_NUMBER < 0x10100000L || \ -+ (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000fL) - /* based on OpenSSL-1.1.0 e_os2.h */ - /* sc_ossl_inline: portable inline definition usable in public headers */ - # if !defined(inline) && !defined(__cplusplus) -@@ -127,9 +132,6 @@ extern "C" { - # else - # define sc_ossl_inline inline - # endif --#endif -- --#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) - - #define RSA_bits(R) (BN_num_bits(R->n)) - Index: patches/patch-src_pkcs11_Makefile_am =================================================================== RCS file: /cvs/ports/security/opensc/patches/patch-src_pkcs11_Makefile_am,v retrieving revision 1.2 diff -u -p -r1.2 patch-src_pkcs11_Makefile_am --- patches/patch-src_pkcs11_Makefile_am 16 Aug 2017 14:39:07 -0000 1.2 +++ patches/patch-src_pkcs11_Makefile_am 16 Jul 2018 09:39:41 -0000 @@ -8,7 +8,7 @@ Index: src/pkcs11/Makefile.am +override libdir = $(prefix)/lib/pkcs11 + MAINTAINERCLEANFILES = $(srcdir)/Makefile.in $(srcdir)/versioninfo-pkcs11.rc $(srcdir)/versioninfo-pkcs11-spy.rc --EXTRA_DIST = Makefile.mak versioninfo-pkcs11.rc.in versioninfo-pkcs11-spy.rc.in opensc-pkcs11.pc.in +-EXTRA_DIST = Makefile.mak versioninfo-pkcs11.rc.in versioninfo-pkcs11-spy.rc.in opensc-pkcs11.pc.in opensc-pkcs11.dll.manifest onepin-opensc-pkcs11.dll.manifest +EXTRA_DIST = Makefile.mak versioninfo-pkcs11.rc.in versioninfo-pkcs11-spy.rc.in lib_LTLIBRARIES = opensc-pkcs11.la pkcs11-spy.la onepin-opensc-pkcs11.la Index: patches/patch-src_pkcs11_framework-pkcs15_c =================================================================== RCS file: patches/patch-src_pkcs11_framework-pkcs15_c diff -N patches/patch-src_pkcs11_framework-pkcs15_c --- patches/patch-src_pkcs11_framework-pkcs15_c 11 Sep 2017 09:27:38 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,94 +0,0 @@ -$OpenBSD: patch-src_pkcs11_framework-pkcs15_c,v 1.1 2017/09/11 09:27:38 dcoppa Exp $ - -Fix memory leaks, null pointer dereferences, dead assignments -(upstream git commit e2fe24d56ac4a90bf140c670ebea02dee6a599d6) - -Index: src/pkcs11/framework-pkcs15.c ---- src/pkcs11/framework-pkcs15.c.orig -+++ src/pkcs11/framework-pkcs15.c -@@ -718,7 +718,7 @@ __pkcs15_create_pubkey_object(struct pkcs15_fw_data *f - } else if (!(pubkey->emulated && (fw_data->p15_card->flags & SC_PKCS15_CARD_FLAG_EMULATED))) { - sc_pkcs15_free_pubkey(p15_key); - } -- if (object->pub_data) { -+ if (object && object->pub_data) { - if ((object->pub_data->alg_id)&&(object->pub_data->algorithm == SC_ALGORITHM_GOSTR3410)) - object->pub_data->alg_id->params = &((object->pub_data->u).gostr3410.params); - } -@@ -734,7 +734,7 @@ static int - __pkcs15_create_prkey_object(struct pkcs15_fw_data *fw_data, - struct sc_pkcs15_object *prkey, struct pkcs15_any_object **prkey_object) - { -- struct pkcs15_prkey_object *object; -+ struct pkcs15_prkey_object *object = NULL; - int rv; - - rv = __pkcs15_create_object(fw_data, (struct pkcs15_any_object **) &object, -@@ -1821,7 +1821,7 @@ pkcs15_initialize(struct sc_pkcs11_slot *slot, void *p - - if (p15card) { - sc_log(context, "pkcs15init erase card"); -- rc = sc_pkcs15init_erase_card(p15card, profile, NULL); -+ sc_pkcs15init_erase_card(p15card, profile, NULL); - - sc_log(context, "pkcs15init unbind"); - sc_pkcs15init_unbind(profile); -@@ -2266,7 +2266,7 @@ pkcs15_create_secret_key(struct sc_pkcs11_slot *slot, - skey_info->data.value = args.key.data; - skey_info->data.len = args.key.data_len; - skey_info->value_len = args.value_len; /* callers prefered length */ -- -+ args.key.data = NULL; - } - else { - #if 1 -@@ -2290,6 +2290,7 @@ pkcs15_create_secret_key(struct sc_pkcs11_slot *slot, - rv = CKR_OK; - - out: -+ free(args.key.data); /* if allocated */ - free(key_obj); - return rv; - } -@@ -2335,7 +2336,6 @@ pkcs15_create_public_key(struct sc_pkcs11_slot *slot, - return CKR_ATTRIBUTE_VALUE_INVALID; - } - -- rv = CKR_OK; - while (ulCount--) { - CK_ATTRIBUTE_PTR attr = pTemplate++; - sc_pkcs15_bignum_t *bn = NULL; -@@ -2429,7 +2429,6 @@ pkcs15_create_certificate(struct sc_pkcs11_slot *slot, - if (cert_type != CKC_X_509) - return CKR_ATTRIBUTE_VALUE_INVALID; - -- rv = CKR_OK; - while (ulCount--) { - CK_ATTRIBUTE_PTR attr = pTemplate++; - -@@ -2438,7 +2437,7 @@ pkcs15_create_certificate(struct sc_pkcs11_slot *slot, - case CKA_CLASS: - break; - case CKA_PRIVATE: -- rv = attr_extract(attr, &bValue, NULL); -+ attr_extract(attr, &bValue, NULL); - if (bValue) { - rv = CKR_TEMPLATE_INCONSISTENT; - goto out; -@@ -2505,7 +2504,6 @@ pkcs15_create_data(struct sc_pkcs11_slot *slot, struct - if (!fw_data) - return sc_to_cryptoki_error(SC_ERROR_INTERNAL, "C_CreateObject"); - -- rv = CKR_OK; - while (ulCount--) { - CK_ATTRIBUTE_PTR attr = pTemplate++; - -@@ -2514,7 +2512,7 @@ pkcs15_create_data(struct sc_pkcs11_slot *slot, struct - case CKA_CLASS: - break; - case CKA_PRIVATE: -- rv = attr_extract(attr, &bValue, NULL); -+ attr_extract(attr, &bValue, NULL); - if (bValue) { - pin = slot_data_auth_info(slot->fw_data); - if (pin == NULL) { Index: patches/patch-src_pkcs11_mechanism_c =================================================================== RCS file: patches/patch-src_pkcs11_mechanism_c diff -N patches/patch-src_pkcs11_mechanism_c --- patches/patch-src_pkcs11_mechanism_c 11 Sep 2017 09:27:38 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,20 +0,0 @@ -$OpenBSD: patch-src_pkcs11_mechanism_c,v 1.1 2017/09/11 09:27:38 dcoppa Exp $ - -Plug a memory leak -(upstream git commit e2fe24d56ac4a90bf140c670ebea02dee6a599d6) - -Index: src/pkcs11/mechanism.c ---- src/pkcs11/mechanism.c.orig -+++ src/pkcs11/mechanism.c -@@ -1060,7 +1060,10 @@ sc_pkcs11_register_sign_and_hash_mechanism(struct sc_p - - new_type = sc_pkcs11_new_fw_mechanism(mech, &mech_info, sign_type->key_type, info, free_info); - -- if (!new_type) -+ if (!new_type) { -+ free(info); - return CKR_HOST_MEMORY; -+ } -+ - return sc_pkcs11_register_mechanism(p11card, new_type); - } Index: pkg/PLIST =================================================================== RCS file: /cvs/ports/security/opensc/pkg/PLIST,v retrieving revision 1.11 diff -u -p -r1.11 PLIST --- pkg/PLIST 16 Aug 2017 14:39:07 -0000 1.11 +++ pkg/PLIST 13 Sep 2018 19:08:54 -0000 @@ -2,13 +2,16 @@ @bin bin/cardos-tool @bin bin/cryptoflex-tool @bin bin/dnie-tool +@bin bin/egk-tool @bin bin/eidenv @bin bin/gids-tool @bin bin/iasecc-tool @bin bin/netkey-tool @bin bin/npa-tool @bin bin/openpgp-tool +@bin bin/opensc-asn1 @bin bin/opensc-explorer +@bin bin/opensc-notify @bin bin/opensc-tool @bin bin/piv-tool @bin bin/pkcs11-tool @@ -31,13 +34,16 @@ lib/pkgconfig/libopensc.pc @man man/man1/cardos-tool.1 @man man/man1/cryptoflex-tool.1 @man man/man1/dnie-tool.1 +@man man/man1/egk-tool.1 @man man/man1/eidenv.1 @man man/man1/gids-tool.1 @man man/man1/iasecc-tool.1 @man man/man1/netkey-tool.1 @man man/man1/npa-tool.1 @man man/man1/openpgp-tool.1 +@man man/man1/opensc-asn1.1 @man man/man1/opensc-explorer.1 +@man man/man1/opensc-notify.1 @man man/man1/opensc-tool.1 @man man/man1/piv-tool.1 @man man/man1/pkcs11-tool.1 @@ -46,9 +52,11 @@ lib/pkgconfig/libopensc.pc @man man/man1/pkcs15-tool.1 @man man/man1/sc-hsm-tool.1 @man man/man1/westcos-tool.1 +@man man/man5/opensc.conf.5 @man man/man5/pkcs15-profile.5 @comment share/doc/opensc/ @comment share/doc/opensc/NEWS +share/doc/opensc/opensc.conf share/examples/opensc/ share/examples/opensc/opensc.conf @mode 644