Update OpenSC to 0.12.0 release.

This commit is contained in:
Alex Dupre
2010-12-27 09:55:39 +00:00
parent 14981a4bd1
commit 0e89e724f1
8 changed files with 44 additions and 232 deletions

View File

@@ -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

View File

@@ -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>

View File

@@ -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

View File

@@ -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

View File

@@ -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,

View File

@@ -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 */

View File

@@ -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;
}

View File

@@ -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%%