Conceptual feedback on new ECC JEP

Michael StJohns mstjohns at comcast.net
Tue Sep 18 20:24:12 UTC 2018


On 9/18/2018 4:01 PM, Adam Petcher wrote:
> On 9/11/2018 11:07 AM, Adam Petcher wrote:
>
>>
>> I still haven't been convinced that this lack of interoperability is 
>> a significant problem. In the proposed design, the new KeyFactory 
>> will not support ECPrivateKeySpec, and the implementation will 
>> produce private keys that inherit from PrivateKey, but not 
>> ECPrivateKey. Specifically, what problems in JCE are introduced by 
>> this design? How are these interoperability issues different from the 
>> ones you encounter with a PKCS11 provider that doesn't export private 
>> keys? If the developer wants more interoperability, why not use 
>> SunEC? If we decide that we want the new implementation to have 
>> better interoperability in the future, does something prevent us from 
>> enhancing it? These questions are for anyone who can help me 
>> understand the objections that have been raised related to 
>> interoperability.
>
> A week has passed since I asked these questions to the mailing list, 
> and I haven't gotten any answers. Without additional information, I'm 
> not motivated to change the interoperability goals in the draft JEP.


Adam -

Basically, the JCE is all about plugging in not about the 
implementations.  If this is truly an EC library, I should be able to 
get the benefit of your library with very minimal changes - e.g. 
specifying your provider in the various getInstance() calls.   As it 
stands, I doubt this will end up in anyone's "must use" category because 
it will break existing code.

You want folks to convince you that interoperability is a significant 
problem when what we (or at least I) want is for you to convince us that 
these interop breaks are warranted due to how wonderful your approach is 
and that they're absolutely necessary due the secret sauce of 
wonderfulness.  You're not there yet.

As for PKCS11 - there are exportable and non-exportable private keys 
(e.g. PKCS11 with an accelerator vs an HSM for example).  The exportable 
ones show up as ECPrivateKeys, the non-exportable ones as PrivateKeys 
(and I think with an underlying type of PKCS11Key...).  So it follows 
the model for exportable keys.  And every PKCS11 provider I've used at 
least has a way of IMPORTING ECPrivateKeys.

Later, Mike





More information about the security-dev mailing list