On Thu, 22 Dec 2022 18:54:16 GMT, Xue-Lei Andrew Fan <xue...@openjdk.org> wrote:

>> Volker Simonis has updated the pull request incrementally with one 
>> additional commit since the last revision:
>> 
>>   Moved stateless key logic from SSLContextImpl to SSLSessionContextImpl and 
>> addressed comments by @XueleiFan and @ascarpino
>
> src/java.base/share/classes/sun/security/ssl/SSLSessionContextImpl.java line 
> 95:
> 
>> 93:             // Should be "randomly generated" according to RFC 5077,
>> 94:             // but doesn't necessarily has to be a true random number.
>> 95:             currentKeyID = this.hashCode();
> 
> As the hashCode() is called in the constructor, I'm not very sure if it works 
> as expected.   Maybe, the system nano time could be used instead.

I don't think calling `hashCode()` is an issue as long as 
`SSLSessionContextImpl` doesn't override `hashCode()` (which it doesn't do) and 
that overridden version of `hashCode()` accesses uninitialized fields. But for 
the sake of getting this done, I've changed the initialization to use the 
result `System.nanoTime()` as a seed for a new `java.util.Random` instance and 
call `nextInt()` on that instance. That seems like a good compromise to me :)

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

PR: https://git.openjdk.org/jdk/pull/11590

Reply via email to