summaryrefslogtreecommitdiff
path: root/security/opensc
diff options
context:
space:
mode:
authorkivinen <kivinen@pkgsrc.org>2011-05-27 10:05:52 +0000
committerkivinen <kivinen@pkgsrc.org>2011-05-27 10:05:52 +0000
commit1e40d776bf23a73cf6caede64a2c8716e4b7e1b3 (patch)
tree1fe1ba6e212ab8db2181059ce43a656f3bdb296b /security/opensc
parent242f034fa20571729ccd3dde3fbd395efb918459 (diff)
downloadpkgsrc-1e40d776bf23a73cf6caede64a2c8716e4b7e1b3.tar.gz
Added support for new 2048 bit FINEID cards.
Diffstat (limited to 'security/opensc')
-rw-r--r--security/opensc/Makefile4
-rw-r--r--security/opensc/distinfo4
-rw-r--r--security/opensc/patches/patch-src_libopensc_card-setcos.c55
-rw-r--r--security/opensc/patches/patch-src_libopensc_cards.h12
4 files changed, 72 insertions, 3 deletions
diff --git a/security/opensc/Makefile b/security/opensc/Makefile
index 6d9ce8c8943..c54fc54ad9c 100644
--- a/security/opensc/Makefile
+++ b/security/opensc/Makefile
@@ -1,11 +1,11 @@
-# $NetBSD: Makefile,v 1.7 2010/12/16 18:00:59 drochner Exp $
+# $NetBSD: Makefile,v 1.8 2011/05/27 10:05:52 kivinen Exp $
COMMENT= Smart Card drivers and middleware
LICENSE= gnu-lgpl-v2.1
.include "../../security/opensc/Makefile.common"
-PKGREVISION= 1
+PKGREVISION= 2
PKG_DESTDIR_SUPPORT= user-destdir
diff --git a/security/opensc/distinfo b/security/opensc/distinfo
index a742deac56d..b3c728b670f 100644
--- a/security/opensc/distinfo
+++ b/security/opensc/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.7 2010/12/16 18:00:59 drochner Exp $
+$NetBSD: distinfo,v 1.8 2011/05/27 10:05:52 kivinen Exp $
SHA1 (opensc-0.11.13.tar.gz) = 408b374286004c3df15ec17856f69fd4c2a1aceb
RMD160 (opensc-0.11.13.tar.gz) = cd900866e51cd64fa7c5a3287cd58193dec26528
@@ -11,3 +11,5 @@ SHA1 (patch-ae) = 94ca059a2e9bf5689f4193587247e443213df9a4
SHA1 (patch-af) = 3b8db1b680c833940973f11b8abb47e34fa5ecd0
SHA1 (patch-ag) = 1d2de187008d4ce9aac1f97f829aafd035324082
SHA1 (patch-ah) = e9a8e3aa06af5a7ce47015f8eba41fd2bb12b32d
+SHA1 (patch-src_libopensc_card-setcos.c) = 209bf0a92f9872635ea06d5ea9a7742c7874d61d
+SHA1 (patch-src_libopensc_cards.h) = ebc1db10feda1b2f6a666842120772908c778db7
diff --git a/security/opensc/patches/patch-src_libopensc_card-setcos.c b/security/opensc/patches/patch-src_libopensc_card-setcos.c
new file mode 100644
index 00000000000..d3e6d34e91f
--- /dev/null
+++ b/security/opensc/patches/patch-src_libopensc_card-setcos.c
@@ -0,0 +1,55 @@
+$NetBSD: patch-src_libopensc_card-setcos.c,v 1.1 2011/05/27 10:05:52 kivinen Exp $
+
+--- src/libopensc/card-setcos.c.orig 2010-02-16 09:03:28.000000000 +0000
++++ src/libopensc/card-setcos.c
+@@ -46,6 +46,8 @@ static struct sc_atr_table setcos_atrs[]
+ /* FINEID 2264 (EIDApplet/7816-15, OPK/EMV/AVANT) */
+ { "3b:6e:00:00:00:62:00:00:57:41:56:41:4e:54:10:81:90:00", NULL, NULL, SC_CARD_TYPE_SETCOS_FINEID_V2, 0, NULL },
+ { "3b:7b:94:00:00:80:62:11:51:56:46:69:6e:45:49:44", NULL, NULL, SC_CARD_TYPE_SETCOS_FINEID_V2, 0, NULL },
++ /* New FINEID cards which support 2048 bit keys. */
++ { "3b:7b:94:00:00:80:62:12:51:56:46:69:6e:45:49:44", NULL, NULL, SC_CARD_TYPE_SETCOS_FINEID_V2_2048, 0, NULL },
+ /* Swedish NIDEL card */
+ { "3b:9f:94:80:1f:c3:00:68:10:44:05:01:46:49:53:45:31:c8:07:90:00:18", NULL, NULL, SC_CARD_TYPE_SETCOS_NIDEL, 0, NULL },
+ /* Setcos 4.4.1 */
+@@ -168,6 +170,7 @@ static int setcos_init(sc_card_t *card)
+ switch (card->type) {
+ case SC_CARD_TYPE_SETCOS_FINEID:
+ case SC_CARD_TYPE_SETCOS_FINEID_V2:
++ case SC_CARD_TYPE_SETCOS_FINEID_V2_2048:
+ case SC_CARD_TYPE_SETCOS_NIDEL:
+ card->cla = 0x00;
+ select_pkcs15_app(card);
+@@ -203,6 +206,17 @@ static int setcos_init(sc_card_t *card)
+ _sc_card_add_rsa_alg(card, 1024, flags, 0);
+ }
+ break;
++ case SC_CARD_TYPE_SETCOS_FINEID_V2_2048:
++ {
++ unsigned long flags;
++
++ flags = SC_ALGORITHM_RSA_RAW | SC_ALGORITHM_RSA_PAD_PKCS1;
++ flags |= SC_ALGORITHM_RSA_HASH_NONE | SC_ALGORITHM_RSA_HASH_SHA1;
++
++ _sc_card_add_rsa_alg(card, 1024, flags, 0);
++ _sc_card_add_rsa_alg(card, 2048, flags, 0);
++ }
++ break;
+ case SC_CARD_TYPE_SETCOS_44:
+ case SC_CARD_TYPE_SETCOS_NIDEL:
+ case SC_CARD_TYPE_SETCOS_EID_V2_0:
+@@ -596,6 +610,7 @@ static int setcos_set_security_env2(sc_c
+ case SC_SEC_OPERATION_SIGN:
+ /* Should be 0x41 */
+ apdu.p1 = ((card->type == SC_CARD_TYPE_SETCOS_FINEID_V2) ||
++ (card->type == SC_CARD_TYPE_SETCOS_FINEID_V2_2048) ||
+ (card->type == SC_CARD_TYPE_SETCOS_44) ||
+ (card->type == SC_CARD_TYPE_SETCOS_NIDEL) ||
+ SETCOS_IS_EID_APPLET(card)) ? 0x41 : 0x81;
+@@ -678,6 +693,7 @@ static int setcos_set_security_env(sc_ca
+ case SC_CARD_TYPE_SETCOS_PKI:
+ case SC_CARD_TYPE_SETCOS_FINEID:
+ case SC_CARD_TYPE_SETCOS_FINEID_V2:
++ case SC_CARD_TYPE_SETCOS_FINEID_V2_2048:
+ case SC_CARD_TYPE_SETCOS_NIDEL:
+ case SC_CARD_TYPE_SETCOS_44:
+ case SC_CARD_TYPE_SETCOS_EID_V2_0:
diff --git a/security/opensc/patches/patch-src_libopensc_cards.h b/security/opensc/patches/patch-src_libopensc_cards.h
new file mode 100644
index 00000000000..ee5273b7d42
--- /dev/null
+++ b/security/opensc/patches/patch-src_libopensc_cards.h
@@ -0,0 +1,12 @@
+$NetBSD: patch-src_libopensc_cards.h,v 1.1 2011/05/27 10:05:52 kivinen Exp $
+
+--- src/libopensc/cards.h.orig 2010-02-16 09:03:28.000000000 +0000
++++ src/libopensc/cards.h
+@@ -80,6 +80,7 @@ enum {
+ SC_CARD_TYPE_SETCOS_PKI,
+ SC_CARD_TYPE_SETCOS_FINEID,
+ SC_CARD_TYPE_SETCOS_FINEID_V2,
++ SC_CARD_TYPE_SETCOS_FINEID_V2_2048,
+ SC_CARD_TYPE_SETCOS_NIDEL,
+ SC_CARD_TYPE_SETCOS_44 = 6100,
+ SC_CARD_TYPE_SETCOS_EID_V2_0,