From 21a908167dc6c20966b6be417800abc81e2a0729 Mon Sep 17 00:00:00 2001 From: firest Date: Wed, 7 Dec 2022 19:00:46 +0800 Subject: [PATCH] fix(psk): Add more PSK ciphers support --- apps/emqx/src/emqx_tls_lib.erl | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/apps/emqx/src/emqx_tls_lib.erl b/apps/emqx/src/emqx_tls_lib.erl index 4bc18f1e0..85c4396ab 100644 --- a/apps/emqx/src/emqx_tls_lib.erl +++ b/apps/emqx/src/emqx_tls_lib.erl @@ -166,7 +166,20 @@ all_ciphers(['tlsv1.3']) -> all_ciphers(Versions) -> %% assert non-empty List = lists:append([ssl:cipher_suites(all, V, openssl) || V <- Versions]), - [_ | _] = dedup(List). + + %% Some PSK ciphers are both supported by OpenSSL and Erlang, but they need manual add here. + %% Found by this cmd + %% openssl ciphers -v|grep ^PSK| awk '{print $1}'| sed "s/^/\"/;s/$/\"/" | tr "\n" "," + %% Then remove the ciphers that aren't supported by Erlang + PSK = [ + "PSK-AES256-GCM-SHA384", + "PSK-AES128-GCM-SHA256", + "PSK-AES256-CBC-SHA384", + "PSK-AES256-CBC-SHA", + "PSK-AES128-CBC-SHA256", + "PSK-AES128-CBC-SHA" + ], + [_ | _] = dedup(List ++ PSK). %% @doc All Pre-selected TLS ciphers. default_ciphers() ->