EchConfigMismatchException


open class EchConfigMismatchException : SSLException
kotlin.Any
   ↳ kotlin.Throwable
   ↳ java.lang.Exception
   ↳ java.io.IOException
   ↳ javax.net.ssl.SSLException
   ↳ android.net.ssl.EchConfigMismatchException

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.

Summary

Public constructors
EchConfigMismatchException(message: String?, publicName: String?, echRetryConfigList: EchConfigList?)

Constructs a new EchConfigMismatchException.

Public methods
open String?

Returns the hostname that should be used for verification.

open EchConfigList?

Returns the EchConfigList provided by the server for retrying the connection, or null if no retry configuration was set by the server.

open Boolean

Returns true if a retry EchConfigList is available, false otherwise.

Public constructors

EchConfigMismatchException

EchConfigMismatchException(
    message: String?,
    publicName: String?,
    echRetryConfigList: EchConfigList?)

Constructs a new EchConfigMismatchException.

Parameters
message String?: the detail message.
This value may be null.
publicName String?: the hostname that must be used for verification, or null if the server did not provide a valid public name.
echRetryConfigList EchConfigList?: the EchConfigList provided by the server for retrying the connection, or null if no retry configuration was set by the server.

Public methods

getPublicHostname

open fun getPublicHostname(): String?

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).

Return
String? This value may be null.

getRetryConfigList

open fun getRetryConfigList(): EchConfigList?

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().

hasRetryConfigList

open fun hasRetryConfigList(): Boolean

Returns true if a retry EchConfigList is available, false otherwise.