On Fri, 2010-09-17 at 10:02 +0200, Viktor TARASOV wrote:
> Andre Zepezauer wrote:
> > On Tue, 2010-08-31 at 10:14 +0200, Viktor TARASOV wrote:
> >   
> >> Andre Zepezauer wrote:
> >>     
> >>> On Mon, 2010-08-30 at 17:50 +0200, Viktor TARASOV wrote:
> >>>   
> >>>       
> >>>> Hello,
> >>>>
> >>>>
> >>>> Andre Zepezauer wrote:
> >>>>     
> >>>>         
> >>>>> Hello,
> >>>>>
> >>>>> attached is a patch which makes it possible to explicitly request
> >>>>> specific algorithms for the cryptographic operations. The advantage is,
> >>>>> that if the token provides sufficient information about itself, then the
> >>>>> driver is not required to do any guess work. Which in turn could result
> >>>>> in a more reliable operation of libopensc. Furthermore there could be
> >>>>> positive effects in terms of compatibility with tokens not initialised
> >>>>> by opensc.
> >>>>>
> >>>>> My recommendation is to test/improve this patch in an experimental
> >>>>> branch or something like that. The reason for this is, that
> >>>>> ALG_REF_PRESENT is not in use since revision 177 and I assume a lot of
> >>>>> drivers to misbehave or crash at first.
> >>>>>   
> >>>>>       
> >>>>>           
> >>>> Few remarks about your patch.
> >>>>
> >>>> Private key can be used with more than one algorithm.
> >>>> So, IMHO, in the 'sc_pkcs15_prkey_info' it's better to have some array 
> >>>> with
> >>>> the references to the crypto algorithms supported by PKCS#15 card (and 
> >>>> defined in tokenInfo).
> >>>>     
> >>>>         
> >>> Not a good idea, I think. Because the sc_pkcs15_prkey_info structure
> >>> should also be the input of the prkey-Encoder. Remember that the
> >>> standard allows only one reference per key. If the encoder gets an array
> >>> of references, then all references of this array must be dropped except
> >>> one. Which one?
> >>>   
> >>>       
> >> Can you develop, please?
> >> Prkey-Encoder? One 'key reference' or 'algorithm reference' per key?
> >>
> >>     
> >>> 1) The scenario you described would also be possible through a direct
> >>> lookup of TokenInfo.supportedAlogrithms.
> >>>   
> >>>       
> >> The algorithms supported by key is not the same as algorithms supported 
> >> by PKCS#15 card.
> >> The first one, in general, is the sub-set of second.
> >>
> >>     
> >>> 2) Another point to mention is, when using X.509 certificates the
> >>> algorithm to use is fixed by the certificate. For example:
> >>> "SubjectPublicKeyAlgorithm := PKCS#1 SHA-1 With RSA Encryption"
> >>> Because X.509 is predominating at this time, there is little use for
> >>> multiple algorithms per key.
> >>>
> >>> 3) And there is the CKM_RSA_X_509 algorithm, which allows for every kind
> >>> of padding and hashing with a single key.
> >>>   
> >>>       
> >> It can be the cases when private keys are created (or key slot 
> >> allocated) before the corresponding certificate is imported
> >> and without knowledge about the future usage of these keys.
> >> For this reason and for the sake of simplicity, there are can be the 
> >> keys that are able to accept different algorithms -- 'general purpose' 
> >> keys.
> >>     
> >
> > And after key generation you have to populate the information about the
> > newly generated key (to be able to find this key later). In case of a
> > p15 card you have to create the appropriate on card data structures. And
> > now you could be in trouble. Because p15 allows ***exactly one***
> > algorithm per key to be specified.
> >   
> 
> I like a lot this line in pkcs15 specification:
> "... -- For future extensions ".
> 
> In the real life there can be more then one algorithm defined for the key.
> 
> > As stated in point 3) above, use CKM_RSA_X_509 for 'general purpose'
> > keys.
> >   
> Also, in the  real life the key can have more then one algorithm, but 
> not all of the algorithms supported by card.
> For that reason it cannot be considered as 'general purpose' one.
> 
> I think that pkcs15 should expose the card capacities in a most close 
> manner,  and an array of the references to the algorithms supported by 
> key, introduced into the 'sc_pkcs15_prkey_info', would be quite flexible 
> solution.

Hello Viktor,

if someone wants to use opensc for personalisation, then everything
should map fine to the on card data structures. In another post [1] you
gave a promising hint, that led me belief that 7816-15 has advanced in
this direction (compared to pkcs15). I will check this and if it is
true, then the solution proposed by you would be a natural fit.

[1] 
http://www.opensc-project.org/pipermail/opensc-devel/2010-September/014920.html

Regards
Andre

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

Reply via email to