summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Bar-Lev <alonbl@gentoo.org>2017-07-19 16:46:05 +0300
committerAlon Bar-Lev <alonbl@gentoo.org>2017-07-19 16:52:26 +0300
commit8f51b98ef781174c33af1e0d92ec8def54ec0be2 (patch)
tree3b30a2425e04ac40f27b6c9eef52526c6d919309 /dev-libs/opensc
parentdev-libs/volume_key: No need to depend on specific autoconf slot (bug #625630). (diff)
downloadgentoo-8f51b98ef781174c33af1e0d92ec8def54ec0be2.tar.gz
gentoo-8f51b98ef781174c33af1e0d92ec8def54ec0be2.tar.bz2
gentoo-8f51b98ef781174c33af1e0d92ec8def54ec0be2.zip
dev-libs/opensc: version bump
Package-Manager: Portage-2.3.6, Repoman-2.3.1
Diffstat (limited to 'dev-libs/opensc')
-rw-r--r--dev-libs/opensc/Manifest1
-rw-r--r--dev-libs/opensc/files/opensc-0.17.0-build.patch100
-rw-r--r--dev-libs/opensc/opensc-0.17.0.ebuild60
3 files changed, 161 insertions, 0 deletions
diff --git a/dev-libs/opensc/Manifest b/dev-libs/opensc/Manifest
index c55f52e15fd8..f8e3c0ca3963 100644
--- a/dev-libs/opensc/Manifest
+++ b/dev-libs/opensc/Manifest
@@ -1 +1,2 @@
DIST opensc-0.16.0.tar.gz 1760418 SHA256 3ac8c29542bb48179e7086d35a1b8907a4e86aca3de3323c2f48bd74eaaf5729 SHA512 15f7d62388dde6dad226acab3cd54f8e2f2f53684dc0cb976c6fc6fbdb4487be931ca69bf965ab07c51efd16be64d5411f10bacea11a07fc823c92dd7bb25139 WHIRLPOOL 8207606e4994d7744fc93cc6aef1b0cde8a2073e791aebf71e82669013d261f82abc6e41ddf971fb136d4580c21ea475bb2e36bbdec600b354f5e1decec4b02a
+DIST opensc-0.17.0.tar.gz 1900483 SHA256 4cd8928c5c5787dd8beee6c77be25032996dedaa4df8bfdd369bcbcde9980bd1 SHA512 64c4f44be64e315fba96974c23331b06805b258ea6296bcc741b8f50b35bba4ab5aace8137f2642e114210465e6312a38e83d3261952b56ab7c06a43d475a7f7 WHIRLPOOL d48e591ec47589945dd8b4b358ce5c51c980ec75f7ab0724884fa2fe28cedeeacbc575a5ae4b0a354afcc5ffc608e0502c28244c8f3ebd3867dd7e5b7f270259
diff --git a/dev-libs/opensc/files/opensc-0.17.0-build.patch b/dev-libs/opensc/files/opensc-0.17.0-build.patch
new file mode 100644
index 000000000000..8a51d7ac4450
--- /dev/null
+++ b/dev-libs/opensc/files/opensc-0.17.0-build.patch
@@ -0,0 +1,100 @@
+From 65b302e33b710833d4d14bf8eaf00acdaa436c39 Mon Sep 17 00:00:00 2001
+From: Frank Morgner <frankmorgner@gmail.com>
+Date: Wed, 19 Jul 2017 00:09:36 +0200
+Subject: [PATCH] sc-hsm: fixed building with --disable-sm
+
+Closes https://github.com/OpenSC/OpenSC/pull/1103
+---
+ src/libopensc/card-sc-hsm.c | 21 ++++++++++++++++++++-
+ 1 file changed, 20 insertions(+), 1 deletion(-)
+
+diff --git a/src/libopensc/card-sc-hsm.c b/src/libopensc/card-sc-hsm.c
+index cfa084a06..1f61e0138 100644
+--- a/src/libopensc/card-sc-hsm.c
++++ b/src/libopensc/card-sc-hsm.c
+@@ -284,7 +284,9 @@ static int sc_hsm_soc_select_minbioclient(sc_card_t *card)
+ };
+
+ /* Select MinBioClient */
++#ifdef ENABLE_SM
+ sc_sm_stop(card);
++#endif
+ sc_format_apdu(card, &apdu, SC_APDU_CASE_3_SHORT, 0xA4, 0x04, 0x0C);
+ apdu.data = minBioClient_aid.value;
+ apdu.datalen = minBioClient_aid.len;
+@@ -533,7 +535,9 @@ static int sc_hsm_pin_cmd(sc_card_t *card, struct sc_pin_cmd_data *data,
+ sc_hsm_private_data_t *priv = (sc_hsm_private_data_t *) card->drv_data;
+ sc_apdu_t apdu;
+ u8 cmdbuff[16];
++#ifdef ENABLE_SM
+ u8 rbuf[SC_MAX_APDU_BUFFER_SIZE];
++#endif
+ int r;
+ int cmd = data->cmd;
+ size_t pin2_len = data->pin2.len;
+@@ -563,7 +567,10 @@ static int sc_hsm_pin_cmd(sc_card_t *card, struct sc_pin_cmd_data *data,
+ if ((card->type == SC_CARD_TYPE_SC_HSM_SOC || card->reader->uid.len
+ || cmd == SC_PIN_CMD_GET_SESSION_PIN)
+ && (data->cmd != SC_PIN_CMD_GET_INFO)
+- && card->sm_ctx.sm_mode != SM_MODE_TRANSMIT) {
++#ifdef ENABLE_SM
++ && card->sm_ctx.sm_mode != SM_MODE_TRANSMIT
++#endif
++ ) {
+ LOG_TEST_RET(card->ctx,
+ sc_hsm_perform_chip_authentication(card),
+ "Could not perform chip authentication");
+@@ -604,6 +611,7 @@ static int sc_hsm_pin_cmd(sc_card_t *card, struct sc_pin_cmd_data *data,
+ data->apdu = &apdu;
+ }
+
++#ifdef ENABLE_SM
+ if ((data->cmd == SC_PIN_CMD_GET_INFO)
+ && (card->sm_ctx.sm_mode == SM_MODE_TRANSMIT)) {
+ /* JCOP's SM accelerator is incapable of using case 1 APDU in SM */
+@@ -612,6 +620,7 @@ static int sc_hsm_pin_cmd(sc_card_t *card, struct sc_pin_cmd_data *data,
+ apdu.resplen = sizeof rbuf;
+ data->apdu = &apdu;
+ }
++#endif
+
+ data->pin1.offset = 5;
+ data->pin1.length_offset = 4;
+@@ -627,11 +636,17 @@ static int sc_hsm_pin_cmd(sc_card_t *card, struct sc_pin_cmd_data *data,
+ data->cmd = SC_PIN_CMD_GET_SESSION_PIN;
+ if (data->pin_reference == 0x81) {
+ u8 recvbuf[SC_MAX_APDU_BUFFER_SIZE];
++#ifdef ENABLE_SM
+ if (card->sm_ctx.sm_mode != SM_MODE_TRANSMIT) {
+ sc_debug(card->ctx, SC_LOG_DEBUG_NORMAL,
+ "Session PIN generation only supported in SM");
+ LOG_FUNC_RETURN(card->ctx, SC_SUCCESS);
+ }
++#else
++ sc_debug(card->ctx, SC_LOG_DEBUG_NORMAL,
++ "Session PIN generation only supported in SM");
++ LOG_FUNC_RETURN(card->ctx, SC_SUCCESS);
++#endif
+ sc_format_apdu(card, &apdu, SC_APDU_CASE_2_SHORT, 0x5A, 0x01, data->pin_reference);
+ apdu.cla = 0x80;
+ apdu.resp = recvbuf;
+@@ -669,7 +684,9 @@ static int sc_hsm_logout(sc_card_t * card)
+ sc_path_t path;
+ sc_hsm_private_data_t *priv = (sc_hsm_private_data_t *) card->drv_data;
+ memset(priv->sopin, 0, sizeof(priv->sopin));
++#ifdef ENABLE_SM
+ sc_sm_stop(card);
++#endif
+
+ sc_path_set(&path, SC_PATH_TYPE_DF_NAME, sc_hsm_aid.value, sc_hsm_aid.len, 0, 0);
+
+@@ -1586,7 +1603,9 @@ static int sc_hsm_init(struct sc_card *card)
+ static int sc_hsm_finish(sc_card_t * card)
+ {
+ sc_hsm_private_data_t *priv = (sc_hsm_private_data_t *) card->drv_data;
++#ifdef ENABLE_SM
+ sc_sm_stop(card);
++#endif
+ if (priv->serialno) {
+ free(priv->serialno);
+ }
diff --git a/dev-libs/opensc/opensc-0.17.0.ebuild b/dev-libs/opensc/opensc-0.17.0.ebuild
new file mode 100644
index 000000000000..0612c40f2bb0
--- /dev/null
+++ b/dev-libs/opensc/opensc-0.17.0.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit ltprune
+
+DESCRIPTION="Libraries and applications to access smartcards"
+HOMEPAGE="https://github.com/OpenSC/OpenSC/wiki"
+SRC_URI="https://github.com/OpenSC/OpenSC/releases/download/${PV}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+IUSE="doc +pcsc-lite secure-messaging openct ctapi readline libressl ssl zlib"
+
+RDEPEND="zlib? ( sys-libs/zlib )
+ readline? ( sys-libs/readline:0= )
+ ssl? (
+ !libressl? ( dev-libs/openssl:0= )
+ libressl? ( dev-libs/libressl:0= )
+ )
+ openct? ( >=dev-libs/openct-0.5.0 )
+ pcsc-lite? ( >=sys-apps/pcsc-lite-1.3.0 )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ app-text/docbook-xsl-stylesheets
+ dev-libs/libxslt"
+
+REQUIRED_USE="
+ pcsc-lite? ( !openct !ctapi )
+ openct? ( !pcsc-lite !ctapi )
+ ctapi? ( !pcsc-lite !openct )
+ || ( pcsc-lite openct ctapi )"
+
+PATCHES=(
+ "${FILESDIR}/${P}-build.patch"
+)
+
+src_configure() {
+ econf \
+ --docdir="/usr/share/doc/${PF}" \
+ --htmldir='$(docdir)/html' \
+ --disable-static \
+ --disable-openpace \
+ $(use_enable doc) \
+ $(use_enable openct) \
+ $(use_enable readline) \
+ $(use_enable zlib) \
+ $(use_enable secure-messaging sm) \
+ $(use_enable ssl openssl) \
+ $(use_enable pcsc-lite pcsc) \
+ $(use_enable openct) \
+ $(use_enable ctapi)
+}
+
+src_install() {
+ default
+ prune_libtool_files --all
+}