On Wed, 24 Jan 2024 19:50:55 GMT, Chen Liang <li...@openjdk.org> wrote:

> I see that the existing caller code has a check for `ctorParamClass`. Why 
> must we declare `SecureRandomParameters.class` as the `ctorParamClass` for 
> these 3 randoms instead of using `null`?

>From [lookup 
>code](https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/security/Provider.java#L1951-L1957):


// Looking for the constructor with a params first and fallback
// to one without if not found. This is to support the enhanced
// SecureRandom where both styles of constructors are supported.
// Before jdk9, there was no params support (only getInstance(alg))
// and an impl only had the params-less constructor. Since jdk9,
// there is getInstance(alg,params) and an impl can contain
// an Impl(params) constructor.


The `EngineDescription` is looked up by `type` which in this case is 
`SecureRandom`, there's no way right now to choose specific parameters for 
different implementers. Are you proposing that I extend the engine lookup to 
include algorithm, so we can have specific `EngineDescription` for 
`SecureRandom->NativePRNG`? I don't know this code well enough to know if 
that's feasible, but it definitely seems more complex.

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

PR Comment: https://git.openjdk.org/jdk/pull/17560#issuecomment-1910079405

Reply via email to