带有ED25519证书文件的Erlang TLS

带有ED25519证书文件的Erlang TLS,erlang,tls1.3,ed25519,Erlang,Tls1.3,Ed25519,我正在使用裸Erlangssl:listen/2函数创建服务器代码。我想使用使用ED25519算法的TLS证书,但服务器在握手时崩溃。通过深入研究Erlang代码,TLS似乎不支持此算法(它正在破坏此函数:) 这是正确的还是我做错了什么?有没有一种方法可以支持它?一些变通办法 以下是我如何生成证书的参考: openssl genpkey -algorithm ED25519 -out key.pem openssl req -new -x509 -days 1825 -key key.pem -

我正在使用裸Erlang
ssl:listen/2
函数创建服务器代码。我想使用使用ED25519算法的TLS证书,但服务器在握手时崩溃。通过深入研究Erlang代码,TLS似乎不支持此算法(它正在破坏此函数:)

这是正确的还是我做错了什么?有没有一种方法可以支持它?一些变通办法

以下是我如何生成证书的参考:

openssl genpkey -algorithm ED25519 -out key.pem
openssl req -new -x509 -days 1825 -key key.pem -out cert.pem
这是我得到的碰撞数据:

{
  :function_clause,
  [
    {:pubkey_cert_records, :supportedPublicKeyAlgorithms, [{1, 3, 101, 112}], [file: 'pubkey_cert_records.erl', line: 109]}, 
    {:pubkey_cert_records, :decode_supportedPublicKey, 1, [file: 'pubkey_cert_records.erl', line: 228]}, 
    {:pubkey_cert_records, :decode_tbs, 1, [file: 'pubkey_cert_records.erl', line: 325]}, 
    {:pubkey_cert_records, :decode_cert, 1, [file: 'pubkey_cert_records.erl', line: 42]}, 
    {:public_key, :pkix_decode_cert, 2, [file: 'public_key.erl', line: 380]}, 
    {:ssl_handshake, :get_cert_params, 1, [file: 'ssl_handshake.erl', line: 1613]}, 
    {:tls_handshake_1_3, :get_certificate_params, 1, [file: 'tls_handshake_1_3.erl', line: 2245]}, 
    {:tls_handshake_1_3, :do_start, 2, [file: 'tls_handshake_1_3.erl', line: 638]}
  ]
}
而且我的代码与RSA证书配合使用也非常好


感谢您的帮助

似乎OTP 23及以下版本确实不支持它

计划将其包括在OTP 24.0版本中。参见GitHub问题