hi all, a new attempt, this time with the Omnikey reader that Jean-Michel so kindly sent me (thanks again!). This time I attached the card reader to a CentOS 5 box which has - openssl 0.9.8e - opensc 0.11.9 - pcsc-1.4.102 Later on I added opensc 0.11.13 (read below)
I started out with the gooze tutorial again http://www.gooze.eu/howto/smartcard-quickstarter-guide ardeche [janjust] > pkcs15-init -E Using reader with a card: OmniKey CardMan 3121 00 00 ardeche [janjust] > pkcs15-init --create-pkcs15 --profile pkcs15+onepin --use-default-transport-key --pin 123456 --puk 111111 --label "janjust" Using reader with a card: OmniKey CardMan 3121 00 00 ardeche [janjust] > pkcs15-init --store-certificate ~/.globus/usercert.pem --auth-id 01 --id 123456 --format pem Using reader with a card: OmniKey CardMan 3121 00 00 User PIN required. Please enter User PIN: User PIN required. Please enter User PIN: ardeche [janjust] > pkcs15-init --store-private-key ~/.globus/userkey.pem --auth-id 01 --id 123456 --format pem Using reader with a card: OmniKey CardMan 3121 00 00 Please enter passphrase to unlock secret key: User PIN required. Please enter User PIN: pkcs15-init: card-entersafe.c:1047: entersafe_encode_bignum: Assertion `0' failed. Aborted At this point I downloaded and built opensc-0.11.13 like this: ardeche [janjust] > head -10 config.log This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by opensc configure 0.11.13, which was generated by GNU Autoconf 2.64. Invocation command line was $ ./configure --enable-pcsc --prefix=/user/janjust/local/feitian After the build and install I continued: ardeche [janjust] > ./pkcs15-init --generate-key rsa/2048 --auth-id 01 Using reader with a card: OmniKey CardMan 3121 00 00 User PIN required. Please enter User PIN: [pkcs15-init] reader-pcsc.c:239:pcsc_transmit: unable to transmit [pkcs15-init] apdu.c:394:do_single_transmit: unable to transmit APDU [pkcs15-init] card-entersafe.c:371:entersafe_transmit_apdu: returning with: Transmit failed [pkcs15-init] card-entersafe.c:1321:entersafe_gen_key: APDU transmit failed: Transmit failed [pkcs15-init] card.c:678:sc_card_ctl: returning with: Transmit failed [pkcs15-init] pkcs15-entersafe.c:391:entersafe_generate_key: EnterSafe generate RSA key pair failed: Transmit failed Failed to generate key: Transmit failed this still fails, but that might be related to the older pcsc-lite version... ardeche [janjust] > ./pkcs15-init --store-private-key ~/.globus/userkey.pem --auth-id 01 --id 123456 --format pem Using reader with a card: OmniKey CardMan 3121 00 00 Please enter passphrase to unlock secret key: User PIN required. Please enter User PIN: pkcs15-init: card-entersafe.c:1047: entersafe_encode_bignum: Assertion `0' failed. Aborted So I commented out 'assert(0)' in card-entersafe.c: ardeche [janjust] > ./pkcs15-init --store-private-key ~/.globus/userkey.pem --auth-id 01 --id 123456 --format pem Using reader with a card: OmniKey CardMan 3121 00 00 Please enter passphrase to unlock secret key: User PIN required. Please enter User PIN: User PIN required. Please enter User PIN: User PIN required. Please enter User PIN: User PIN required. Please enter User PIN: I had to enter the PIN 4 times, but OK: ardeche [janjust] > ./pkcs15-tool --dump Using reader with a card: OmniKey CardMan 3121 00 00 PKCS#15 Card [janjust]: Version : 1 Serial number : 3092541116010310 Manufacturer ID: EnterSafe Last update : 20100520100048Z Flags : EID compliant PIN [User PIN] Com. Flags: 0x3 ID : 01 Flags : [0x30], initialized, needs-padding Length : min_len:4, max_len:16, stored_len:16 Pad char : 0x00 Reference : 1 Type : ascii-numeric Path : 3f005015 Private RSA Key [Private Key] Com. Flags : 3 Usage : [0x4], sign Access Flags: [0x1D], sensitive, alwaysSensitive, neverExtract, local ModLength : 1024 Key ref : 1 Native : yes Path : 3f005015 Auth ID : 01 ID : 123456 Public RSA Key [Public Key] Com. Flags : 2 Usage : [0x4], sign Access Flags: [0x0] ModLength : 1024 Key ref : 0 Native : no Path : 3f0050153056 Auth ID : ID : 123456 X.509 Certificate [Certificate] Flags : 2 Authority: no Path : 3f005015315a ID : 123456 Next we try to generate a self-signed certificate: ardeche [janjust] 1> ./openssl version OpenSSL 0.9.8e 23 Feb 2007 (Library: OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008) ardeche [janjust] > ./openssl OpenSSL> engine dynamic -pre SO_PATH:/user/janjust/local/feitian/lib/engine_pkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1 -pre LOAD -pre MODULE_PATH:/user/janjust/local/feitian/lib/opensc-pkcs11.so (dynamic) Dynamic engine loading support [Success]: SO_PATH:/user/janjust/local/feitian/lib/engine_pkcs11.so [Success]: ID:pkcs11 [Success]: LIST_ADD:1 [Success]: LOAD [Success]: MODULE_PATH:/user/janjust/local/feitian/lib/opensc-pkcs11.so Loaded: (pkcs11) pkcs11 engine OpenSSL> req -engine pkcs11 -new -key 123456 -keyform engine -x509 -out cert.pem -text engine "pkcs11" set. PKCS#11 token PIN: You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [GB]:NL State or Province Name (full name) [Berkshire]:Amsterdam Locality Name (eg, city) [Newbury]:Amsterdam Organization Name (eg, company) [My Company Ltd]:Nikhef Organizational Unit Name (eg, section) []: Common Name (eg, your name or your server's hostname) []:Jan Just Email Address []: [opensc-pkcs11] iso7816.c:99:iso7816_check_sw: Referenced data invalidated [opensc-pkcs11] card-entersafe.c:920:entersafe_compute_with_prkey: returning with: Card command failed [opensc-pkcs11] sec.c:53:sc_compute_signature: returning with: Card command failed [opensc-pkcs11] pkcs15-sec.c:273:sc_pkcs15_compute_signature: sc_compute_signature() failed: Card command failed 15127:error:8000A005:PKCS11 library:PKCS11_rsa_sign:General Error:p11_ops.c:131: 15127:error:0D0C3006:asn1 encoding routines:ASN1_item_sign:EVP lib:a_sign.c:276: error in req this is - again - the error -1200 . The full opensc-debug.log file is http://www.nikhef.nl/~janjust/feitian/opensc-debug.log-20100520 I'm getting quite annoyed with this card ... What am I doing wrong? share and enjoy, JJK / Jan Just Keijser _______________________________________________ opensc-devel mailing list opensc-devel@lists.opensc-project.org http://www.opensc-project.org/mailman/listinfo/opensc-devel