On Wed, 3 Feb 2021 18:24:05 GMT, Fernando Guallini <[email protected]>
wrote:
>> test/jdk/sun/security/rsa/SignatureTest.java line 137:
>>
>>> 135: return new Key[]{
>>> 136: kf.generatePublic(kf.getKeySpec(key,
>>> RSAPublicKeySpec.class)),
>>> 137: kf.generatePublic(new
>>> X509EncodedKeySpec(key.getEncoded()))
>>
>> Here, the test ensures keys created from a `RSAPublicKeySpec` are the same
>> no matter if the `RSAPublicKeySpec` is retrieved from
>> `KeyFactory::getKeySpec` or manually created. If you can prove the two
>> `RSAPublicKeySpec` objects are effectively the same (or it has already been
>> proven in other tests) then there's no need to generate the key again.
>>
>> On the other hand, we can actually add more keys into the array. The 1st is
>> `key` itself, and the 2nd is one generated from `kf.getKeySpec(key,
>> X509EncodedKeySpec.class)`.
>
> That is right, PSSKeyCompatibility already explicitly proves they both are
> equal and there are other tests that generates both manually and using
> KeyFactory. In addition, this test focuses on signature verification rather
> than key creation.
Not only does a key have encoded form and an algorithm, it might contain other
internal info that could affect its usage (here, it's signing and verifying).
That's why there are multiple keys there.
A Spec type is different, it only has public data and is easy to prove equality.
-------------
PR: https://git.openjdk.java.net/jdk/pull/2381