OK, please take a review at the new version at

  http://cr.openjdk.java.net/~weijun/8130302/webrev.04/

Changes from webrev.03:

1. The new option name -addprovider is used, along with the changes in 
Resources.java.

2. In KeyStoreUtil::loadProviderByClass, special treatment for 
"sun.security.pkcs11.SunPKCS11" and 
"com.oracle.security.crypto.UcryptoProvider".

3. In KeyStoreUtil::loadProviderByName, check if the name is already loaded, 
configure and add it if necessary. As I said in my previous mail, this can be 
useful if something like SunPKCS11 is defined inside java.base.

4. Valarie asked me to bring in a change to the OracleUcrypto provider, which 
allows arbitrary config file. Changes are inside java.policy and 
UcryptoProvider.java.

Thanks
Max

> On Jun 13, 2016, at 12:23 PM, Mandy Chung <mandy.ch...@oracle.com> wrote:
> 
> 
>> On Jun 12, 2016, at 11:33 AM, Alan Bateman <alan.bate...@oracle.com> wrote:
>> 
>> 
>> 
>> On 12/06/2016 13:44, Wang Weijun wrote:
>>> I was about to send out a new webrev (CCC just approved) but noticed a 
>>> behavior change.
>>> 
>>> Although "-addprovider SUN" is useless it still worked when I posted 
>>> webrev.03, but now it failed, because ServiceLoader.load(Provider.class) 
>>> does not contain "SUN" anymore. Maybe it is inside java.base and loaded in 
>>> a shortcut mode?
>>> 
>> "SUN" ,"SunJCE", "SunRsaSign", and "SunJSSE" are built-in, I think Valerie 
>> has code in sun.security.jca.ProviderConfig for this. I don't recall 
>> java.base ever declaring that it `provides` these providers, except maybe 
>> via a META-INF/services configuration file for a short period from the 
>> original JCE work and the dropping the service configuration files.
> 
> I think Alan is right.  They were not loaded via ServiceLoader.load because 
> of the build complexity to get multiple service config files before the 
> module system went in jdk9.
> 
> As it stands now, no provides java.security.Provider in java.base after 
> JDK-8157489 is resolved.
> 
> Mandy

Reply via email to