mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-26 06:14:49 +02:00
8345840: Add missing TLS handshake messages to SSLHandshake.java
Reviewed-by: jnimeh
This commit is contained in:
parent
ed292318a9
commit
68c6623d38
1 changed files with 29 additions and 1 deletions
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2006, 2023, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2006, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -31,6 +31,15 @@ import java.util.AbstractMap.SimpleImmutableEntry;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import javax.net.ssl.SSLException;
|
import javax.net.ssl.SSLException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An enum of the defined TLS handshake message types.
|
||||||
|
* <p>
|
||||||
|
* These are defined in the IANA TLS Parameters.
|
||||||
|
* https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#tls-parameters-7
|
||||||
|
* <p>
|
||||||
|
* Most of these come from the SLS/TLS specs in RFCs 6601/2246/4346/8446 and
|
||||||
|
* friends. Others are called out where defined.
|
||||||
|
*/
|
||||||
enum SSLHandshake implements SSLConsumer, HandshakeProducer {
|
enum SSLHandshake implements SSLConsumer, HandshakeProducer {
|
||||||
@SuppressWarnings({"unchecked", "rawtypes"})
|
@SuppressWarnings({"unchecked", "rawtypes"})
|
||||||
HELLO_REQUEST ((byte)0x00, "hello_request",
|
HELLO_REQUEST ((byte)0x00, "hello_request",
|
||||||
|
@ -81,6 +90,10 @@ enum SSLHandshake implements SSLConsumer, HandshakeProducer {
|
||||||
)
|
)
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
// Even though there is a TLS HandshakeType entry for
|
||||||
|
// hello_retry_request_RESERVED (0x06), the TLSv1.3 (RFC 8446)
|
||||||
|
// HelloRetryRequest is actually a ServerHello with a specific Random value
|
||||||
|
// (Section 4.1.3).
|
||||||
@SuppressWarnings({"unchecked", "rawtypes"})
|
@SuppressWarnings({"unchecked", "rawtypes"})
|
||||||
HELLO_RETRY_REQUEST ((byte)0x02, "hello_retry_request",
|
HELLO_RETRY_REQUEST ((byte)0x02, "hello_retry_request",
|
||||||
new Map.Entry[] {
|
new Map.Entry[] {
|
||||||
|
@ -130,6 +143,7 @@ enum SSLHandshake implements SSLConsumer, HandshakeProducer {
|
||||||
ProtocolVersion.PROTOCOLS_TO_12
|
ProtocolVersion.PROTOCOLS_TO_12
|
||||||
)
|
)
|
||||||
}),
|
}),
|
||||||
|
|
||||||
END_OF_EARLY_DATA ((byte)0x05, "end_of_early_data"),
|
END_OF_EARLY_DATA ((byte)0x05, "end_of_early_data"),
|
||||||
|
|
||||||
@SuppressWarnings({"unchecked", "rawtypes"})
|
@SuppressWarnings({"unchecked", "rawtypes"})
|
||||||
|
@ -147,6 +161,10 @@ enum SSLHandshake implements SSLConsumer, HandshakeProducer {
|
||||||
)
|
)
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
// RFC 9147 - DTLS 1.3
|
||||||
|
REQUEST_CONNECTION_ID ((byte)0x09, "request_connection_id"),
|
||||||
|
NEW_CONNECTION_ID ((byte)0x0a, "new_connection_id"),
|
||||||
|
|
||||||
@SuppressWarnings({"unchecked", "rawtypes"})
|
@SuppressWarnings({"unchecked", "rawtypes"})
|
||||||
CERTIFICATE ((byte)0x0B, "certificate",
|
CERTIFICATE ((byte)0x0B, "certificate",
|
||||||
new Map.Entry[] {
|
new Map.Entry[] {
|
||||||
|
@ -285,6 +303,9 @@ enum SSLHandshake implements SSLConsumer, HandshakeProducer {
|
||||||
)
|
)
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
// RFC 9261 - Exported Authenticators
|
||||||
|
CLIENT_CERTIFICATE_REQUEST ((byte)0x11, "client_certificate_request"),
|
||||||
|
|
||||||
@SuppressWarnings({"unchecked", "rawtypes"})
|
@SuppressWarnings({"unchecked", "rawtypes"})
|
||||||
FINISHED ((byte)0x14, "finished",
|
FINISHED ((byte)0x14, "finished",
|
||||||
new Map.Entry[] {
|
new Map.Entry[] {
|
||||||
|
@ -347,6 +368,13 @@ enum SSLHandshake implements SSLConsumer, HandshakeProducer {
|
||||||
ProtocolVersion.PROTOCOLS_OF_13
|
ProtocolVersion.PROTOCOLS_OF_13
|
||||||
)
|
)
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
// RFC 8879 - TLS Certificate Compression
|
||||||
|
COMPRESSED_CERTIFICATE ((byte)0x19, "compressed_certificate"),
|
||||||
|
|
||||||
|
// RFC 8870 - Encrypted Key Transport for DTLS/Secure RTP
|
||||||
|
EKT_KEY ((byte)0x1A, "ekt_key"),
|
||||||
|
|
||||||
MESSAGE_HASH ((byte)0xFE, "message_hash"),
|
MESSAGE_HASH ((byte)0xFE, "message_hash"),
|
||||||
NOT_APPLICABLE ((byte)0xFF, "not_applicable");
|
NOT_APPLICABLE ((byte)0xFF, "not_applicable");
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue