Hi Martin, > I found more problems related to crypto engine support in > OpenCA::OpenSSL. My Token->genKey bombed out with an OpenSSL error > complaining about incorrect command line arguments. > Short investigation showed that not all OpenSSL commands accept a > -keyform parameter: > > Command -engine -keyform e > gen(rsa|dh|dsa) yes no > req yes yes > ca yes yes > spkac yes no > dgst yes no > pkcs7 yes no > rand yes no > smime yes yes (see OpenCA::OpenSSL::SMIME) > > When using the current code, a token implementation has to set both > engine type and key form, such as in OpenCA::Token::OpenSC, LunaCA3 or > my new (not yet submitted) ::nCipher: > > [...] > $keys->{ENGINE} = "chil -keyform engine"; > $keys->{CERT} = $keys->{PEM_CERT}; > > $self->{OPENSSL} = OpenCA::OpenSSL->new ( %{$keys} ); > > This always expands to "-engine chil -keyform engine" in all > OpenSSL commands that are using private keys, breaking most of > the Perl module's member functions. > (LunaCA3 even uses an -enginearg parameter. Does this really work?)
Chrysalis-ITS (now SafeNet) does not only publish an engine. They publish a completely patched OpenSSL. Therefore they can use other parameters. > Two ways around it, the second being a dirty hack: > > - introduce a KEYFORM and maybe ENGINEARG argument to > OpenCA::OpenSSL, just like ENGINE and use it only for the > commands that require them > - s/-keyform\s+\S+//g or similar for all commands that cannot > handle a keyform argument - we should remove "-keyform engine" from the ENGINE argument and implement an automatic detection for an engine in the functions $cmd .= " -keyform engine" if ($self->{ENGINE}); This we can add to the three relevant commands and we have not to extend the interface What do you think about this third option, Martin? > BTW: the above $keys->{CERT} = $keys->{PEM_CERT} is required and is > missing from all token implementations short of OpenSSL.pm. I'll file a > bug on SourceForge. I saw it and this should be fixed in OpenCA::OpenSSL. I will do it tomorrow. Michael ------------------------------------------------------- This SF.Net email is sponsored by: Oracle 10g Get certified on the hottest thing ever to hit the market... Oracle 10g. Take an Oracle 10g class now, and we'll give you the exam FREE. http://ads.osdn.com/?ad_id=3149&alloc_id=8166&op=click _______________________________________________ OpenCA-Devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/openca-devel