hi list,

I hate to answer my own question but I think I found it:

in opensc-0.11.13/src/pkcs11/openssl.c there's section

106 void
107 sc_pkcs11_register_openssl_mechanisms(struct sc_pkcs11_card *card)
108 {
109 #if OPENSSL_VERSION_NUMBER >= 0x10000000L
110     /* FIXME: see openssl-1.0.0-beta3/engines/ccgost/README.gost */
111     OPENSSL_config(NULL);
112 #endif

I commented out the OPENSSL_config(NULL) and now it works ...

should this added as a patch? the FIXME seems to be to *remove* the 
explicit call to OPENSSL_config; I can confirm that this works for both 
openssl-1.0.0-beta4 and the official openssl-1.0.0 release

cheers,

JJK


Jan Just Keijser wrote:
> hi list,
>
> I just ran into a very weird oddity with openssl 1.0 (both the fc12 
> version 1.0.0-beta4 on my laptop and the official 1.0.0 version) ; 
> I've initialized an etoken using pkcs15-init -C , copied a certificate 
> to it using pkcs15-init -X , the priv key using pkcs15-init -S etc
>
> Now I want to use the openssl engine support to basically do a
>  openssl req -engine pkcs11 .....
> to sign a certificate using a key on the token.
> In order to do this I set up an openssl.cnf file like this:
>
> openssl_conf = openssl_def
>
> [ openssl_def ]
> engines = engine_section
>
> [ engine_section ]
> pkcs11 = pkcs11_section
>
> [ pkcs11_section ]
> engine_id = pkcs11
> dynamic_path = /usr/lib64/openssl/engines/engine_pkcs11.so
> MODULE_PATH = /usr/lib64/opensc-pkcs11.so
> init = 0
>
> [ req ]
> distinguished_name = req_distinguished_name
>
> [ req_distinguished_name ]
>
>
> and to test it I run
>  openssl engine -v -t
> When I compile opensc 0.11.13 , engine_pkcs 0.5 and libp11 0.2.7 
> against openssl 0.9.8 this works fine:
>
> .../openssl-0.9.8k/apps/openssl engine -t -v
> (dynamic) Dynamic engine loading support
>     [ unavailable ]
>     SO_PATH, NO_VCHECK, ID, LIST_ADD, DIR_LOAD, DIR_ADD, LOAD
> (pkcs11) pkcs11 engine
>     [ available ]
>     SO_PATH, MODULE_PATH, PIN, VERBOSE, QUIET, INIT_ARGS
>
>
> but when I recompile the same versions against openssl 1.0 I get:
>
> .../openssl-1.0.0/apps/openssl engine -v -t
> (dynamic) Dynamic engine loading support
>     [ unavailable ]
>     SO_PATH, NO_VCHECK, ID, LIST_ADD, DIR_LOAD, DIR_ADD, LOAD
> (pkcs11) pkcs11 engine
> openssl (lock_dbg_cb): already locked (mode=9, type=30) at eng_list.c:284
> Auto configuration failed
> 139937913001640:error:26078067:engine 
> routines:ENGINE_LIST_ADD:conflicting engine id:eng_list.c:116:
> 139937913001640:error:2606906E:engine routines:ENGINE_add:internal 
> list error:eng_list.c:288:
> 139937913001640:error:260B6067:engine 
> routines:DYNAMIC_LOAD:conflicting engine id:eng_dyn.c:540:
> 139937913001640:error:260BC066:engine 
> routines:INT_ENGINE_CONFIGURE:engine configuration 
> error:eng_cnf.c:204:section=pkcs11_section, name=dynamic_path, 
> value=/home/janjust/src/engine_pkcs11-0.1.5/src/.libs/engine_pkcs11.so
> 139937913001640:error:0E07606D:configuration file 
> routines:MODULE_RUN:module initialization 
> error:conf_mod.c:235:module=engines, value=engine_section, 
> retcode=-1        it seems like the openssl engine code is calling the 
> engine_pkcs11 bind_helper function *twice*, possibly as the shared 
> libraries that are loaded when the engine is loaded themselves depend 
> on openssl...
>
> Has anybody else experienced this? it seems like an openssl bug but I 
> like to confirm that before I proceed...
>
> Side-remarks:
> - recently I obtained 2 Feitian cards ; they show the exact same 
> problem so at least it is not a hardware driver issue...
> - I also use etokens using Aladdin's pkiclient software and they work 
> without problems on fc12 .
>
>
> thanks in advance,
>
> JJK
>
>

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

Reply via email to