[jdk11u-dev] RFR: 8026976: ECParameters, Point does not match field size
Severin Gehwolf
sgehwolf at openjdk.org
Mon Feb 24 15:27:03 UTC 2025
On Thu, 20 Feb 2025 16:39:36 GMT, Severin Gehwolf <sgehwolf at openjdk.org> wrote:
>> Hi all,
>>
>> This is a backport of JDK-8026976: ECParameters, Point does not match field size
>>
>> Original patch apply cleanly to 11u.
>>
>> Testing: jdk/sun/security/pkcs11 tests on RHEL9, GHA testing
>>
>> Thanks.
>
> @martinuy @franferrax Could you please take a look at this backport and see if that makes sense to bring to 11u at this stage of where 11u is currently? Thanks!
> @jerboaa: in my view this is a minor and clean backport. 11u already contains [e6e820c](https://github.com/openjdk/jdk11u-dev/commit/e6e820c6474e3608abe4e08698097d06dda2900e), which is partial/incomplete without this change.
>
> I agree that the risk is low considering this affects _SunPKCS11_, a security provider that is disabled by default.
>
> The test removed from `ProblemList.txt` (`sun/security/pkcs11/ec/TestKeyFactory.java`) is now passing (I checked this in a local slowdebug build of this PR code). This test fails with the current version of NSS and without this PR change, meaning this bug may be being hit by users:
>
> ```
> java.security.spec.InvalidKeySpecException: Could not parse key
> at jdk.crypto.cryptoki/sun.security.pkcs11.P11ECKeyFactory.implGetPublicKeySpec(P11ECKeyFactory.java:300)
> at jdk.crypto.cryptoki/sun.security.pkcs11.P11KeyFactory.engineGetKeySpec(P11KeyFactory.java:94)
> at java.base/java.security.KeyFactory.getKeySpec(KeyFactory.java:433)
> at TestKeyFactory.testPublic(TestKeyFactory.java:83)
> at TestKeyFactory.test(TestKeyFactory.java:117)
> at TestKeyFactory.main(TestKeyFactory.java:146)
> at PKCS11Test.premain(PKCS11Test.java:907)
> at PKCS11Test.testNSS(PKCS11Test.java:605)
> at PKCS11Test.main(PKCS11Test.java:254)
> at TestKeyFactory.main(TestKeyFactory.java:124)
> at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.base/java.lang.reflect.Method.invoke(Method.java:566)
> at com.sun.javatest.regtest.agent.MainWrapper$MainTask.run(MainWrapper.java:138)
> at java.base/java.lang.Thread.run(Thread.java:829)
> Caused by: java.io.IOException: Point does not match field size
> at java.base/sun.security.util.ECUtil.decodePoint(ECUtil.java:48)
> at jdk.crypto.cryptoki/sun.security.pkcs11.P11ECKeyFactory.decodePoint(P11ECKeyFactory.java:89)
> at jdk.crypto.cryptoki/sun.security.pkcs11.P11ECKeyFactory.implGetPublicKeySpec(P11ECKeyFactory.java:297)
> ... 15 more
> ```
OK, thanks. That's helpful.
-------------
PR Comment: https://git.openjdk.org/jdk11u-dev/pull/2958#issuecomment-2678791417
More information about the jdk-updates-dev
mailing list