RFR: 8260274: Cipher.init(int, key) does not use highest priority provider for random bytes [v3]

Xue-Lei Andrew Fan xuelei at openjdk.java.net
Wed Mar 17 20:52:50 UTC 2021


On Wed, 17 Mar 2021 20:09:04 GMT, Valerie Peng <valeriep at openjdk.org> wrote:

>> Can someone help review this somewhat trivial change?
>> 
>> Updated JCAUtil class to return the cached SecureRandom object only when the provider configuration has not changed. 
>> Added a regression test to check the affected classes, i.e. AlgorithmParameterGenerator, KeyPairGenerator, Cipher, KeyAgreement, KeyGenerator. 
>> 
>> Thanks,
>> Valerie
>
> Valerie Peng has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Fixed a null race condition

src/java.base/share/classes/sun/security/jca/JCAUtil.java line 86:

> 84:         SecureRandom result = def;
> 85:         if (result == null) {
> 86:             synchronized (JCAUtil.class) {

Could this lock be avoided if set the value in the Providers update (or when the providers list is updated)?

-------------

PR: https://git.openjdk.java.net/jdk/pull/3018


More information about the security-dev mailing list