On 8/7/18 11:53 PM, Weijun Wang wrote:


On Aug 8, 2018, at 12:58 AM, Sean Mullan <[email protected]> wrote:

On 8/6/18 8:20 PM, Weijun Wang wrote:
I'm not seeing how this would be a behavior change if it is a new option, can 
you add more details on that? If I specify -providerName, intuitively I would 
expect it would be used, at least as the first one.
Before this change when "keytool -importcert" is called, KeyStore.getInstance() uses 
"-providername" but CertificateFactory.getInstance()*does not*. Now 
CertificateFactory.getInstance() is using it. If it's preferred than the default provider, then 
it's a behavior change.

Ok, I see. But this is the first time we have had issues with 
CertificateFactory. And we probably want to avoid having multiple -providerName 
options for each JCA engine that is used.

But keytool -printcert does not interact with a KeyStore at all. Couldn't you 
distinguish between the two options and always use -providerName for 
CertificateFactory for -printcert?

But in a real world people usually run keytool -printcert and then -importcert. 
-importcert would show the content of the cert if it's not trusted by existing 
CAs and ask for a yes/no. If people see different output (i.e. toString() of 
the X509Certificate child in a provider), will that be a little strange?

Could be, I suppose.

The -providerName option is kind of broken in that one provider is not always sufficient, but probably not worth trying to fix.

So I think I agree with your approach as it seems to be the least disruptive option.

--Sean

Reply via email to