Skip to content

Commit 9d78ea3

Browse files
committed
Merge branch 'ingela/ssl/filter-out-slh-dsa-in-TLS-1.2/OTP-20046' into maint
* ingela/ssl/filter-out-slh-dsa-in-TLS-1.2/OTP-20046: ssl: Add missing filter of SLH-DSA when client only supports TLS-1.2
2 parents 9a20226 + d811cb0 commit 9d78ea3

2 files changed

Lines changed: 13 additions & 1 deletion

File tree

lib/ssl/src/ssl_cipher.erl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -699,6 +699,8 @@ signature_schemes_1_2(SigAlgs) ->
699699
MLDSA == mldsa65;
700700
MLDSA == mldsa87 ->
701701
Acc;
702+
{_, slhdsa, undefined} ->
703+
Acc;
702704
{Hash, Sign, undefined} ->
703705
[{Hash, format_sign(Sign)} | Acc];
704706
{_, _, _} ->

lib/ssl/test/tls_1_3_version_SUITE.erl

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,8 @@ tls12_client_tls13_server(Config) when is_list(Config) ->
240240
ClientOpts = [{versions, ['tlsv1.1', 'tlsv1.2']} |
241241
ssl_test_lib:ssl_options(client_cert_opts, Config)],
242242
ServerOpts = [{versions, ['tlsv1.3', 'tlsv1.2']},
243-
{verify, verify_peer}, {fail_if_no_peer_cert, true}
243+
{verify, verify_peer}, {fail_if_no_peer_cert, true},
244+
{signature_algs, sig_algs_1_3_all()}
244245
| ssl_test_lib:ssl_options(server_cert_opts, Config)],
245246
ssl_test_lib:basic_test(ClientOpts, ServerOpts, Config).
246247

@@ -871,3 +872,12 @@ rsa_pss_rsae_algs() ->
871872

872873
rsa_pss_pss_algs() ->
873874
[rsa_pss_pss_sha512,rsa_pss_pss_sha384,rsa_pss_pss_sha256].
875+
876+
sig_algs_1_3_all() ->
877+
Supports = crypto:supports(public_keys),
878+
case lists:member(slh_dsa_shake_256f, Supports) of
879+
true ->
880+
ssl:signature_algs(all, 'tlsv1.3');
881+
false ->
882+
ssl:signature_algs(default, 'tlsv1.3')
883+
end.

0 commit comments

Comments
 (0)