diff options
author | kivinen <kivinen@pkgsrc.org> | 2011-05-27 10:05:52 +0000 |
---|---|---|
committer | kivinen <kivinen@pkgsrc.org> | 2011-05-27 10:05:52 +0000 |
commit | 1e40d776bf23a73cf6caede64a2c8716e4b7e1b3 (patch) | |
tree | 1fe1ba6e212ab8db2181059ce43a656f3bdb296b /security | |
parent | 242f034fa20571729ccd3dde3fbd395efb918459 (diff) | |
download | pkgsrc-1e40d776bf23a73cf6caede64a2c8716e4b7e1b3.tar.gz |
Added support for new 2048 bit FINEID cards.
Diffstat (limited to 'security')
-rw-r--r-- | security/opensc/Makefile | 4 | ||||
-rw-r--r-- | security/opensc/distinfo | 4 | ||||
-rw-r--r-- | security/opensc/patches/patch-src_libopensc_card-setcos.c | 55 | ||||
-rw-r--r-- | security/opensc/patches/patch-src_libopensc_cards.h | 12 |
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, |