Package: org.conscrypt

EchConfigMismatchException

public class EchConfigMismatchException extends javax.net.ssl.SSLException 
Exception thrown when the provided ECH (Encrypted Client Hello) config does not match the server.

Before accessing the retry configuration, clients must call #getPublicHostname() and verify that the hostname matches the connection hostname (using their preferred javax.net.ssl.HostnameVerifier ). If the returned hostname is null , any provided retry configuration must be ignored.

Clients can then attempt to establish a new connection, using the provided retry EchConfigList , if available. A retry EchConfigList may not be available if the server has not provided any.

Constructors

public EchConfigMismatchException(String message)
Constructs a new EchConfigMismatchException .
Parameters
message the detail message.

public EchConfigMismatchException(String message, String publicName, EchConfigList echRetryConfigList)
Constructs a new EchConfigMismatchException .
Parameters
message the detail message.
publicName the hostname that must be used for verification, or null if the server did not provide a valid public name.
echRetryConfigList the EchConfigList provided by the server for retrying the connection, or null if no retry configuration was set by the server.

Public Methods

getRetryConfigList

public EchConfigList getRetryConfigList()
Returns the EchConfigList provided by the server for retrying the connection, or null if no retry configuration was set by the server. Prior to reading this value, the client must verify that the certificate is valid for the name returned by #getPublicHostname() .

getPublicHostname

public String getPublicHostname()
Returns the hostname that should be used for verification. This method must be called before interpreting the retry config list, returned by #getRetryConfigList() . For more details see section 6.1.7 "Authenticating for the Public Name" in RFC TLS Encrypted Client Hello (draft-ietf-tls-esni-25).

hasRetryConfigList

public boolean hasRetryConfigList()
Returns true if a retry EchConfigList is available, false otherwise.