RFR: 8349849: PKCS11 SunTlsKeyMaterial crashes when used with TLS1.2 TlsKeyMaterialParameterSpec

Daniel Jeliński djelinski at openjdk.org
Thu Feb 13 19:40:12 UTC 2025


On Thu, 13 Feb 2025 19:06:28 GMT, Bradford Wetmore <wetmore at openjdk.org> wrote:

>> Please review this trivial fix that ensures that the mechanism always matches the parameter class type.
>> 
>> I added a new test case that crashes without the fix, passes with the fix. Existing tier1-3 test cases continue to pass.
>
> src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11TlsKeyMaterialGenerator.java line 124:
> 
>> 122:         } else if (tlsVersion == 0x0303) {
>> 123:             mechanism = CKM_TLS12_KEY_AND_MAC_DERIVE;
>> 124:         }
> 
> So this hasn't worked since the TLSv1.2 support was added in 2018?  Ouch!  
> 
> I wonder if how many are using PKCS11 for TLS.  Seems like this should have been found earlier.
> 
> Double check with @valeriepeng , but looks ok to me...

It's not that bad, the crash only happens when you (mis-)use SunTlsKeyMaterial instead of SunTls12KeyMaterial with TLS 1.2. JSSE uses the correct one. I only hit this bug when experimenting with tests.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/23583#discussion_r1955110134


More information about the security-dev mailing list