I'm using openct+opensc+libp11+engine_pkcs11+openss to do this:
create a certificate signed by the smart card.

with the ubuntu edgy packages this works ok, with all components
current trunk it doesn't work at all:
pkcs15-init -ET
pkcs15-init -CT -p pkcs15+onepin --label "Andreas Jellinghaus" \
        --pin 123456 --puk 78907890
pkcs15-init -G rsa/1024 -a 01 --pin 123456


openssl req -config openssl.conf -engine pkcs11 -new -key id_45 \
        -keyform engine -out req.pem -text -x509 \
        -subj "/CN=Andreas Jellinghaus"

engine "pkcs11" set.
iso7816.c:99:iso7816_check_sw: Security status not satisfied
card-flex.c:1073:cryptoflex_compute_signature: Card returned error: Security status not satisfied
sec.c:53:sc_compute_signature: returning with: Security status not satisfied
pkcs15-sec.c:332:sc_pkcs15_compute_signature: sc_compute_signature() failed: Security status not satisfied 8869:error:8000A101:Vendor defined:PKCS11_rsa_sign:User not logged in:p11_ops.c:96: 8869:error:0D0C3006:asn1 encoding routines:ASN1_item_sign:EVP lib:a_sign.c:276:

I guess the fault is in opensc, but no idea what broke. can someone have
a look and try this with your own card? ( you don't need the pkcs15-init commands, those erase the card and create new pkcs#15 format and a key
and are only included for demonstration purpose - and for me so I can
easily switch from 2048 bit to 1024 bit key).

the openssl config file is:
cat > openssl.conf << EOF
openssl_conf            = openssl_def

[openssl_def]
engines = engine_section

[engine_section]
pkcs11 = pkcs11_section

[pkcs11_section]
engine_id = pkcs11
dynamic_path = /usr/lib/engines/engine_pkcs11.so
MODULE_PATH = /usr/lib/opensc-pkcs11.so
PIN = 123456
init = 0

[req]
distinguished_name = req_distinguished_name

[req_distinguished_name]

EOF

Regards, Andreas
_______________________________________________
opensc-devel mailing list
opensc-devel@lists.opensc-project.org
http://www.opensc-project.org/mailman/listinfo/opensc-devel

Reply via email to