diff options
-rw-r--r-- | UPDATING | 9 | ||||
-rw-r--r-- | security/opensc/Makefile | 80 | ||||
-rw-r--r-- | security/opensc/distinfo | 5 | ||||
-rw-r--r-- | security/opensc/files/patch-src_libopensc_card-piv.c | 11 | ||||
-rw-r--r-- | security/opensc/files/patch-src_libopensc_internal-winscard.h | 11 | ||||
-rw-r--r-- | security/opensc/files/patch-src_libopensc_reader-pcsc.c | 29 | ||||
-rw-r--r-- | security/opensc/files/patch-src_signer_dialog.c | 97 | ||||
-rw-r--r-- | security/opensc/pkg-plist | 34 |
8 files changed, 44 insertions, 232 deletions
@@ -5,6 +5,15 @@ they are unavoidable. You should get into the habit of checking this file for changes each time you update your ports collection, before attempting any port upgrades. +20101227: + AFFECTS: users of security/opensc + AUTHOR: ale@FreeBSD.org + + opensc has been updated to 0.12.0 release. Only one backend can be + choosen at compile-time: PC/SC is now the default one. + opensc doesn't export anymore its internal library, PKCS#11 is the + recommended interface. + 20101220: AFFECTS: users of net-mgmt/flowd AUTHOR: ohauer@FreeBSD.org diff --git a/security/opensc/Makefile b/security/opensc/Makefile index 7ed12c74c753..33ddc6143b64 100644 --- a/security/opensc/Makefile +++ b/security/opensc/Makefile @@ -6,8 +6,7 @@ # PORTNAME= opensc -PORTVERSION= 0.11.13 -PORTREVISION= 2 +PORTVERSION= 0.12.0 CATEGORIES= security devel MASTER_SITES= http://www.opensc-project.org/files/${PORTNAME}/ \ http://www.opensc-project.org/files/${PORTNAME}/testing/ @@ -15,15 +14,17 @@ MASTER_SITES= http://www.opensc-project.org/files/${PORTNAME}/ \ MAINTAINER= ale@FreeBSD.org COMMENT= Libraries and utilities to access smart cards -OPTIONS= OPENCT "Enable direct OpenCT backend support" on \ - PCSC "Enable PC/SC backend support" off \ - SIGNER "Enable signer browser plugin" off +BUILD_DEPENDS= xsltproc:${PORTSDIR}/textproc/libxslt \ + ${LOCALBASE}/share/xsl/docbook/html/docbook.xsl:${PORTSDIR}/textproc/docbook-xsl + +OPTIONS= PCSC "Enable PC/SC backend support" on \ + OPENCT "Enable direct OpenCT backend support" off \ + CTAPI "Enable CT-API backend support" off LICENSE= LGPL21 LICENSE_FILE= ${WRKSRC}/COPYING USE_AUTOTOOLS= libltdl -USE_ICONV= yes USE_OPENSSL= yes USE_GMAKE= yes GNU_CONFIGURE= yes @@ -32,69 +33,36 @@ USE_LDCONFIG= yes CONFIGURE_ENV= LTLIB_CFLAGS="-I${LOCALBASE}/include" \ LTLIB_LIBS="-L${LOCALBASE}/lib -lltdl" \ - ICONV_CFLAGS="-I${LOCALBASE}/include" \ - ICONV_LIBS="-L${LOCALBASE}/lib -liconv" \ OPENSSL_CFLAGS="-I${OPENSSLINC}" \ - OPENSSL_LIBS="-L${OPENSSLLIB} -lssl" + OPENSSL_LIBS="-L${OPENSSLLIB} -lssl" \ + XSLTPROC="${LOCALBASE}/bin/xsltproc" + +CONFIGURE_ARGS= --with-xsl-stylesheetsdir=${LOCALBASE}/share/xsl/docbook PORTDOCS= * MANCOMPRESSED= no MAN1= cardos-tool.1 cryptoflex-tool.1 netkey-tool.1 \ - opensc-config.1 opensc-explorer.1 opensc-tool.1 \ + opensc-explorer.1 opensc-tool.1 \ pkcs11-tool.1 pkcs15-crypt.1 pkcs15-init.1 pkcs15-tool.1 \ westcos-tool.1 -MAN3= sc_app_info_t.3 sc_append_record.3 sc_asn1_decode.3 \ - sc_asn1_encode.3 sc_asn1_entry.3 sc_asn1_find_tag.3 \ - sc_asn1_print_tags.3 sc_asn1_put_tag.3 sc_asn1_read_tag.3 \ - sc_asn1_skip_tag.3 sc_asn1_verify_tag.3 sc_base64_decode.3 \ - sc_base64_encode.3 sc_card_ctl.3 sc_card_t.3 \ - sc_card_valid.3 sc_check_sw.3 sc_connect_card.3 \ - sc_copy_asn1_entry.3 sc_create_file.3 sc_delete_file.3 \ - sc_delete_record.3 sc_der_clear.3 sc_der_copy.3 \ - sc_detect_card_presence.3 sc_disconnect_card.3 \ - sc_enum_apps.3 sc_establish_context.3 sc_file_dup.3 \ - sc_file_free.3 sc_file_new.3 sc_file_t.3 \ - sc_find_app_by_aid.3 sc_find_pkcs15_app.3 sc_format_apdu.3 \ - sc_format_asn1_entry.3 sc_free_apps.3 sc_get_cache_dir.3 \ - sc_get_challenge.3 sc_get_data.3 sc_list_files.3 \ - sc_lock.3 sc_make_cache_dir.3 sc_put_data.3 \ - sc_read_binary.3 sc_read_record.3 sc_release_context.3 \ - sc_select_file.3 sc_set_card_driver.3 sc_strerror.3 \ - sc_transmit_apdu.3 sc_unlock.3 sc_update_binary.3 \ - sc_update_dir.3 sc_update_record.3 sc_wait_for_event.3 \ - sc_write_binary.3 sc_write_record.3 MAN5= pkcs15-profile.5 -.include <bsd.port.pre.mk> +.include <bsd.port.options.mk> -.if !defined(WITHOUT_OPENCT) +.if defined(WITH_OPENCT) LIB_DEPENDS+= openct.1:${PORTSDIR}/security/openct CONFIGURE_ARGS+=--enable-openct .endif -.if defined(WITH_PCSC) +.if !defined(WITHOUT_PCSC) LIB_DEPENDS+= pcsclite.1:${PORTSDIR}/devel/pcsc-lite -CONFIGURE_ARGS+=--enable-pcsc +.else +CONFIGURE_ARGS+=--disable-pcsc .endif -.if defined(WITH_SIGNER) -LIB_DEPENDS+= assuan.1:${PORTSDIR}/security/libassuan -PINENTRY?= ${LOCALBASE}/bin/pinentry -PINENTRY_PORT?= security/pinentry -RUN_DEPENDS+= pinentry:${PORTSDIR}/${PINENTRY_PORT} -USE_XORG= x11 xt -CONFIGURE_ARGS+=--enable-nsplugin \ - --with-libassuan-prefix=${LOCALBASE} \ - --with-plugindir=${WEBPLUGINS_DIR} \ - --with-pinentry=${PINENTRY} -PLIST_SUB+= SIGNER="" - -USE_WEBPLUGINS= gecko* -WEBPLUGINS_FILES=opensc-signer.so -.include "${PORTSDIR}/www/firefox/Makefile.webplugins" -.else -PLIST_SUB+= SIGNER="@comment " +.if defined(WITH_CTAPI) +CONFIGURE_ARGS+=--enable-ctapi .endif .ifndef(NOPORTDOCS) @@ -104,20 +72,14 @@ CONFIGURE_ARGS+=--enable-doc post-patch: @${REINPLACE_CMD} 's|(libdir)/pkgconfig|(prefix)/libdata/pkgconfig|' \ ${WRKSRC}/configure - @${REINPLACE_CMD} 's|tmp=1:0\.9\.2|tmp=2:2.0.0|' \ - ${WRKSRC}/configure -.if !defined(WITH_SIGNER) - @${REINPLACE_CMD} 's|install-data-am: install-pluginDATA|install-data-am:|' \ - ${WRKSRC}/src/signer/Makefile.in -.endif .ifdef(NOPORTDOCS) @${REINPLACE_CMD} 's|install-data-am: install-dist_docDATA|install-data-am:|' \ ${WRKSRC}/Makefile.in - @${REINPLACE_CMD} 's|install-data-am: install-dist_docDATA install-dist_htmlDATA|install-data-am:|' \ + @${REINPLACE_CMD} 's|install-data-am: install-htmlDATA install-man|install-data-am: install-man|' \ ${WRKSRC}/doc/Makefile.in .endif post-install: @${CAT} ${PKGMESSAGE} -.include <bsd.port.post.mk> +.include <bsd.port.mk> diff --git a/security/opensc/distinfo b/security/opensc/distinfo index 1ed4cb6380f8..85754f633b04 100644 --- a/security/opensc/distinfo +++ b/security/opensc/distinfo @@ -1,3 +1,2 @@ -MD5 (opensc-0.11.13.tar.gz) = 98fa151e947941f9c3f27420fdf47c11 -SHA256 (opensc-0.11.13.tar.gz) = a9a42d6d51fb500f34248fcd0d4083c99d25bc5e74df60fe4efa19b5b4e6d890 -SIZE (opensc-0.11.13.tar.gz) = 1513327 +SHA256 (opensc-0.12.0.tar.gz) = 84f8a8e1825e487d321390f0650c590334c76f81291d2eb5a315ad73459d2f6f +SIZE (opensc-0.12.0.tar.gz) = 1409151 diff --git a/security/opensc/files/patch-src_libopensc_card-piv.c b/security/opensc/files/patch-src_libopensc_card-piv.c new file mode 100644 index 000000000000..c95c863a0458 --- /dev/null +++ b/security/opensc/files/patch-src_libopensc_card-piv.c @@ -0,0 +1,11 @@ +--- src/libopensc/card-piv.c.orig 2010-12-23 11:56:55.000000000 +0100 ++++ src/libopensc/card-piv.c 2010-12-23 11:57:17.000000000 +0100 +@@ -28,7 +28,7 @@ + #include <string.h> + #include <fcntl.h> + #include <limits.h> +-#ifndef __APPLE__ ++#ifdef HAVE_MALLOC_H + #include <malloc.h> + #endif + #ifdef ENABLE_OPENSSL diff --git a/security/opensc/files/patch-src_libopensc_internal-winscard.h b/security/opensc/files/patch-src_libopensc_internal-winscard.h deleted file mode 100644 index da3e56ed880f..000000000000 --- a/security/opensc/files/patch-src_libopensc_internal-winscard.h +++ /dev/null @@ -1,11 +0,0 @@ ---- src/libopensc/internal-winscard.h.orig 2010-09-01 11:37:56.000000000 +0200 -+++ src/libopensc/internal-winscard.h 2010-09-01 11:38:31.000000000 +0200 -@@ -113,7 +113,7 @@ - typedef LONG (PCSC_API *SCardStatus_t)(SCARDHANDLE hCard, LPSTR mszReaderNames, LPDWORD pcchReaderLen, - LPDWORD pdwState, LPDWORD pdwProtocol, LPBYTE pbAtr, LPDWORD pcbAtrLen); - typedef LONG (PCSC_API *SCardGetStatusChange_t)(SCARDCONTEXT hContext, DWORD dwTimeout, -- LPSCARD_READERSTATE_A rgReaderStates, DWORD cReaders); -+ LPSCARD_READERSTATE rgReaderStates, DWORD cReaders); - typedef LONG (PCSC_API *SCardControlOLD_t)(SCARDHANDLE hCard, LPCVOID pbSendBuffer, DWORD cbSendLength, - LPVOID pbRecvBuffer, LPDWORD lpBytesReturned); - typedef LONG (PCSC_API *SCardControl_t)(SCARDHANDLE hCard, DWORD dwControlCode, LPCVOID pbSendBuffer, diff --git a/security/opensc/files/patch-src_libopensc_reader-pcsc.c b/security/opensc/files/patch-src_libopensc_reader-pcsc.c deleted file mode 100644 index 5446f9ae73e1..000000000000 --- a/security/opensc/files/patch-src_libopensc_reader-pcsc.c +++ /dev/null @@ -1,29 +0,0 @@ ---- src/libopensc/reader-pcsc.c.orig 2010-09-01 12:44:28.000000000 +0200 -+++ src/libopensc/reader-pcsc.c 2010-09-01 12:44:52.000000000 +0200 -@@ -80,7 +80,7 @@ - - struct pcsc_slot_data { - SCARDHANDLE pcsc_card; -- SCARD_READERSTATE_A reader_state; -+ SCARD_READERSTATE reader_state; - DWORD verify_ioctl; - DWORD verify_ioctl_start; - DWORD verify_ioctl_finish; -@@ -353,7 +353,7 @@ - sc_context_t *ctx; - SCARDCONTEXT pcsc_ctx; - LONG ret; -- SCARD_READERSTATE_A rgReaderStates[SC_MAX_READERS]; -+ SCARD_READERSTATE rgReaderStates[SC_MAX_READERS]; - unsigned long on_bits, off_bits; - time_t end_time, now, delta; - size_t i; -@@ -401,7 +401,7 @@ - /* Wait for a status change and return if it's a card insert/removal - */ - for( ; ; ) { -- SCARD_READERSTATE_A *rsp; -+ SCARD_READERSTATE *rsp; - - /* Scan the current state of all readers to see if they - * match any of the events we're polling for */ diff --git a/security/opensc/files/patch-src_signer_dialog.c b/security/opensc/files/patch-src_signer_dialog.c deleted file mode 100644 index c70406a21bfa..000000000000 --- a/security/opensc/files/patch-src_signer_dialog.c +++ /dev/null @@ -1,97 +0,0 @@ ---- src/signer/dialog.c.orig 2010-02-16 07:03:25.000000000 -0200 -+++ src/signer/dialog.c 2010-06-26 06:42:17.000000000 -0300 -@@ -15,31 +15,31 @@ - char *buffer; - }; - --static AssuanError -+static gpg_error_t - getpin_cb (void *opaque, const void *buffer, size_t length) - { - struct entry_parm_s *parm = (struct entry_parm_s *) opaque; - - /* we expect the pin to fit on one line */ - if (parm->lines || length >= parm->size) -- return ASSUAN_Too_Much_Data; -+ return gpg_error(GPG_ERR_ASS_TOO_MUCH_DATA); - - /* fixme: we should make sure that the assuan buffer is allocated in - secure memory or read the response byte by byte */ - memcpy(parm->buffer, buffer, length); - parm->buffer[length] = 0; - parm->lines++; -- return (AssuanError) 0; -+ return gpg_error(GPG_ERR_NO_ERROR); - } - - int ask_and_verify_pin_code(struct sc_pkcs15_card *p15card, - struct sc_pkcs15_object *pin) - { -- int r; -+ gpg_error_t r; - size_t len; - const char *argv[3]; - const char *pgmname = PIN_ENTRY; -- ASSUAN_CONTEXT ctx; -+ assuan_context_t ctx = NULL; - char buf[500]; - char errtext[100]; - struct entry_parm_s parm; -@@ -48,16 +48,26 @@ - argv[0] = pgmname; - argv[1] = NULL; - -- r = assuan_pipe_connect(&ctx, pgmname, (char **) argv, NULL); -+ assuan_set_gpg_err_source (GPG_ERR_SOURCE_DEFAULT); -+ -+ r = assuan_new(&ctx); -+ if (r) { -+ printf("Can't initialize assuan context: %s\n)", -+ gpg_strerror(r)); -+ goto err; -+ } -+ -+ r = assuan_pipe_connect(ctx, pgmname, (const char **) argv, \ -+ NULL, NULL, NULL, 0); - if (r) { - printf("Can't connect to the PIN entry module: %s\n", -- assuan_strerror((AssuanError) r)); -+ gpg_strerror(r)); - goto err; - } - sprintf(buf, "SETDESC Enter PIN [%s] for digital signing ", pin->label); - r = assuan_transact(ctx, buf, NULL, NULL, NULL, NULL, NULL, NULL); - if (r) { -- printf("SETDESC: %s\n", assuan_strerror((AssuanError) r)); -+ printf("SETDESC: %s\n", gpg_strerror(r)); - goto err; - } - errtext[0] = 0; -@@ -71,12 +81,12 @@ - parm.size = sizeof(buf); - parm.buffer = buf; - r = assuan_transact(ctx, "GETPIN", getpin_cb, &parm, NULL, NULL, NULL, NULL); -- if (r == ASSUAN_Canceled) { -- assuan_disconnect(ctx); -+ if (gpg_err_code(r) == GPG_ERR_ASS_CANCELED) { -+ assuan_release(ctx); - return -2; - } - if (r) { -- printf("GETPIN: %s\n", assuan_strerror((AssuanError) r)); -+ printf("GETPIN: %s\n", gpg_strerror(r)); - goto err; - } - len = strlen(buf); -@@ -104,9 +114,9 @@ - break; - } - -- assuan_disconnect(ctx); -+ assuan_release(ctx); - return 0; - err: -- assuan_disconnect(ctx); -+ assuan_release(ctx); - return -1; - } diff --git a/security/opensc/pkg-plist b/security/opensc/pkg-plist index 65151b095cb3..cfd3fa780902 100644 --- a/security/opensc/pkg-plist +++ b/security/opensc/pkg-plist @@ -1,9 +1,7 @@ -bin/cardos-info bin/cardos-tool bin/cryptoflex-tool bin/eidenv bin/netkey-tool -bin/opensc-config bin/opensc-explorer bin/opensc-tool bin/piv-tool @@ -14,39 +12,10 @@ bin/pkcs15-tool bin/rutoken-tool bin/westcos-tool etc/opensc.conf-sample -include/opensc/asn1.h -include/opensc/cardctl.h -include/opensc/compression.h -include/opensc/emv.h -include/opensc/errors.h -include/opensc/log.h -include/opensc/opensc.h -include/opensc/pkcs11-opensc.h -include/opensc/pkcs11.h -include/opensc/pkcs15-init.h -include/opensc/pkcs15.h -include/opensc/scconf.h -include/opensc/types.h -include/opensc/ui.h -libdata/pkgconfig/libopensc.pc -libdata/pkgconfig/libpkcs15init.pc -libdata/pkgconfig/libscconf.pc -%%SIGNER%%%%WEBPLUGINS_DIR%%/opensc-signer.so -%%SIGNER%%lib/opensc-signer.a -%%SIGNER%%lib/opensc-signer.la -%%SIGNER%%lib/opensc-signer.so lib/libopensc.a lib/libopensc.la lib/libopensc.so -lib/libopensc.so.2 -lib/libpkcs15init.a -lib/libpkcs15init.la -lib/libpkcs15init.so -lib/libpkcs15init.so.2 -lib/libscconf.a -lib/libscconf.la -lib/libscconf.so -lib/libscconf.so.2 +lib/libopensc.so.3 lib/onepin-opensc-pkcs11.la lib/onepin-opensc-pkcs11.so lib/opensc-pkcs11.la @@ -74,7 +43,6 @@ lib/pkcs11/pkcs11-spy.so %%DATADIR%%/setcos.profile %%DATADIR%%/starcos.profile %%DATADIR%%/westcos.profile -%%SIGNER%%@dirrmtry %%WEBPLUGINS_DIR%% @dirrm include/opensc @dirrm lib/pkcs11 @dirrm %%DATADIR%% |