RFR: 8365820: Apply certificate scope constraints to algorithms in "signature_algorithms" extension when "signature_algorithms_cert" extension is not being sent [v6]

Hai-May Chao hchao at openjdk.org
Mon Sep 22 08:23:06 UTC 2025


On Tue, 16 Sep 2025 19:24:05 GMT, Artur Barashev <abarashev at openjdk.org> wrote:

>> [JDK-8349583](https://bugs.openjdk.org/browse/JDK-8349583) implementation assumes that OpenJDK client always sends "signature_algorithms_cert" extension together with "signature_algorithms" extension. But we didn't account for `jdk.tls.client.disableExtensions` and `jdk.tls.server.disableExtensions` system properties which can disable producing "signature_algorithms_cert" extension. This is an issue similar to [JDK-8355779](https://bugs.openjdk.org/browse/JDK-8355779) but on the extension producing side.
>> 
>> Per TLSv1.3 RFC:
>> 
>>>  If no "signature_algorithms_cert" extension is
>>>    present, then the "signature_algorithms" extension also applies to
>>>    signatures appearing in certificates.
>> 
>> Also making a few cosmetic changes to the existing code.
>
> Artur Barashev has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains eight additional commits since the last revision:
> 
>  - Add a ticket number to unit tests
>  - Merge branch 'master' into JDK-8365820
>  - Add a server-side unit test. Rename existing tests.
>  - Update tests
>  - Revert "Include RSASSA-PKCS1-v1_5 and Legacy algorithms in signature_algorithms for TLSv1.3"
>    
>    This reverts commit adc236be4bcac11614e2741c99545aa593f6af5b.
>  - Merge branch 'master' into JDK-8365820
>  - Include RSASSA-PKCS1-v1_5 and Legacy algorithms in signature_algorithms for TLSv1.3
>  - 8365820: Apply certificate scope constraints to algorithms in "signature_algorithms" extension when "signature_algorithms_cert" extension is not being sent

test/jdk/sun/security/ssl/SignatureScheme/DisableCertSignAlgsExtForServerTLS13.java line 131:

> 129:                                     // instead, depends on network setup.
> 130:                                     || ex instanceof SocketException));
> 131:                         }

Here for TLS 1.3, handshake always fails because SHA256withRSA is not allowed for client certificates. Would you consider adding a positive test for TLS 1.3 with a client certificate signed with RSASSA-PSS so we could test handshake will succeed as the client complies?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/26887#discussion_r2367086905


More information about the security-dev mailing list