[16] RFR JDK-8246383: NullPointerException in JceSecurity.getVerificationResult when using Entrust provider

Valerie Peng valerie.peng at oracle.com
Fri Aug 21 00:34:46 UTC 2020


Thanks for the review~

Valerie

On 8/20/2020 1:49 PM, Xuelei Fan wrote:
> Looks good to me.  Thanks!
>
> Xuelei
>
> On 8/20/2020 1:28 PM, Valerie Peng wrote:
>> Updated to use the "JCAUtil.getSecureRandom()" call:
>>
>> http://cr.openjdk.java.net/~valeriep/8246383/webrev.01/
>>
>> Thanks,
>> Valerie
>>
>> On 8/19/2020 11:20 AM, Valerie Peng wrote:
>>
>>> Hi Xuelei,
>>>
>>> Please find comments in line.
>>>
>>> On 8/18/2020 10:13 PM, Xuelei Fan wrote:
>>>> On 8/18/2020 2:43 PM, Valerie Peng wrote:
>>>>>
>>>>> Using a shared instance is surely faster. However, the API 
>>>>> specified that the most preferred SecureRandom impl will be used. 
>>>>> To ensure this for all scenarios, creating default SecureRandom 
>>>>> obj will provide correct result but shared instance may not.
>>>> I understand your point.  It might not break the spec if a shared 
>>>> instance is used.  It depends on the understanding of "most 
>>>> preferred SecureRandom impl" in the context.
>>>
>>> My reading of the spec is more strict I guess. I went back and force 
>>> from 2 approaches, one is to use the slow "new SecureRandom()", the 
>>> other is to still use a shared instance (located elsewhele instead 
>>> of the sensitive JceSecurity class which is used when verifying JCE 
>>> providers). The former is slow but correct at all times, the later 
>>> can be correct as long as there are no provider changes after the 
>>> first call.
>>>
>>>>> Apps can call other init functions which takes SecureRandom 
>>>>> objects to avoid this default SecureRandom obj creation if needed.
>>>>>
>>>> Yes, it's an alternative solution.  If an application used the 
>>>> default SecureRandom, it would be nice if there is no performance 
>>>> regression.
>>>>
>>>> The SecureRandom initialization may be not cheap in some 
>>>> circumstances. As this bug did not complain about the use of shared 
>>>> instance, it may be fine if we want to avoid the performance impact 
>>>> if the impact exists.
>>>
>>> Yes, I ran a test to profile the numbers. It's a painful decision to 
>>> go with "new SecureRandom()"...
>>>
>>> I can change to my other approach of using JCAUtil.getSecureRandom() 
>>> depending on Sean's feedback.
>>>
>>> Thanks,
>>> Valerie
>>>
>>>
>>>>
>>>> Just for your consideration.
>>>>
>>>> Xuelei
>>>>
>>>>> Valerie
>>>>>
>>>>> On 8/18/2020 2:10 PM, Xuelei Fan wrote:
>>>>>> Is there any performance impact?
>>>>>>
>>>>>> Xuelei
>>>>>>
>>>>>> On 8/18/2020 12:51 PM, Valerie Peng wrote:
>>>>>>>
>>>>>>> Anyone has cycles to review this somewhat trivial changes? 
>>>>>>> JceSecurity has this shared SecureRandom instance which may lead 
>>>>>>> to NPE when certain 3rd party JCE provider is set as most 
>>>>>>> preferred. Removing this shared instance and change to create 
>>>>>>> default SecureRandom obj when needed.
>>>>>>>
>>>>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8246383
>>>>>>>
>>>>>>> Webrev: http://cr.openjdk.java.net/~valeriep/8246383/webrev.00/
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Valerie



More information about the security-dev mailing list