JDK-8245686 : Ed25519 and Ed448 present in handshake messages
  • Type: Bug
  • Component: security-libs
  • Sub-Component: javax.net.ssl
  • Affected Version: 15
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • Submitted: 2020-05-24
  • Updated: 2020-06-18
  • Resolved: 2020-06-10
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 15
15 b27Fixed
Related Reports
Relates :  
Relates :  
Description
In the SunJSSE provider, if the Signature is available in crypto for a certain signature algorithm, the algorithm will be requested in the signature_algorithms extension. With the integration of ed25519 and ed448, the signature algorithm are now available in crypto, and thus is activated in JSSE. Ed25519 and Ed448 are present in handshake messages, which is not the expected behavior before JDK-8166596 get addressed.

    "signature_algorithms (13)": {
      "signature schemes": [ed25519, ed448, ecdsa_secp256r1_sha256, ecdsa_secp38
4r1_sha384, ecdsa_secp521r1_sha512, rsa_pss_rsae_sha256, rsa_pss_rsae_sha384, rs
a_pss_rsae_sha512, rsa_pss_pss_sha256, rsa_pss_pss_sha384, rsa_pss_pss_sha512, r
sa_pkcs1_sha256, rsa_pkcs1_sha384, rsa_pkcs1_sha512, dsa_sha256, ecdsa_sha1, rsa
_pkcs1_sha1, dsa_sha1]
    },
    "signature_algorithms_cert (50)": {
      "signature schemes": [ed25519, ed448, ecdsa_secp256r1_sha256, ecdsa_secp38
4r1_sha384, ecdsa_secp521r1_sha512, rsa_pss_rsae_sha256, rsa_pss_rsae_sha384, rs
a_pss_rsae_sha512, rsa_pss_pss_sha256, rsa_pss_pss_sha384, rsa_pss_pss_sha512, r
sa_pkcs1_sha256, rsa_pkcs1_sha384, rsa_pkcs1_sha512, dsa_sha256, ecdsa_sha1, rsa
_pkcs1_sha1, dsa_sha1]
Comments
URL: https://hg.openjdk.java.net/jdk/jdk/rev/ccbecd09f1f6 User: ascarpino Date: 2020-06-10 01:28:39 +0000
10-06-2020

From John Jiang: Run SSLSocketTemplate.java with ED25519 certificate only. javax.net.ssl|ERROR|01|main|2020-05-24 22:15:15.649 CST|TransportContext.java:344|Fatal (HANDSHAKE_FAILURE): No available authentication scheme ( "throwable" : { javax.net.ssl.SSLHandshakeException: No available authentication scheme at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:131) at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:117) at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:339) at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:295) at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:286) at java.base/sun.security.ssl.CertificateMessage$T13CertificateProducer.onProduceCertificate(CertificateMessage.java:955) at java.base/sun.security.ssl.CertificateMessage$T13CertificateProducer.produce(CertificateMessage.java:944) at java.base/sun.security.ssl.SSLHandshake.produce(SSLHandshake.java:440) at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.goServerHello(ClientHello.java:1252) at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.consume(ClientHello.java:1188) at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.onClientHello(ClientHello.java:851) at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.consume(ClientHello.java:812) at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:396) at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:445) at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:423) at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:182) at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:171) at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1479) at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1385) at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:437) at java.base/sun.security.ssl.SSLSocketImpl.ensureNegotiated(SSLSocketImpl.java:885) at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:976) at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:936) at SSLSocketTemplate.runServerApplication(SSLSocketTemplate.java:100) at SSLSocketTemplate.doServerSide(SSLSocketTemplate.java:289) at SSLSocketTemplate.startServer(SSLSocketTemplate.java:588) at SSLSocketTemplate.bootup(SSLSocketTemplate.java:502) at SSLSocketTemplate.run(SSLSocketTemplate.java:89) at SSLSocketTemplate.main(SSLSocketTemplate.java:82)} )
24-05-2020