The SNI extension is a feature that extends the SSL/TLS/DTLS protocols to indicate what server name the client is attempting to connect to during handshaking. See section 3, "Server Name Indication", of TLS Extensions (RFC 6066).
SNIServerName objects are immutable. Subclasses should not provide
methods that can change the state of an instance once it has been created.
SSLParameters#getServerNames(), SSLParameters#setServerNames(List)
| Modifier and Type | Field and Description |
|---|---|
| private final byte[] | |
| private final int |
| Access | Constructor and Description |
|---|---|
| protected | SNIServerName(int
the type of the server name type, byte[] the encoded value of the server name encoded)Creates an |
| Modifier and Type | Method and Description |
|---|---|
| public boolean | Returns: true if, and only if,other is of the same class
of this object, and has the same name type and
encoded value as this server name.Overrides java. Indicates whether some other object is "equal to" this server name. |
| public final byte[] | Returns: a copy of the encoded server name value of this server nameReturns a copy of the encoded server name value of this server name. |
| public final int | |
| public int | Returns: a hash code value for this server name.Overrides java. Returns a hash code value for this server name. |
| private static String | |
| public String | Returns: a string representation of this server nameOverrides java. Returns a string representation of this server name, including the server
name type and the encoded server name value in this
|
| encoded | back to summary |
|---|---|
| private final byte[] encoded | |
| type | back to summary |
|---|---|
| private final int type | |
| SNIServerName | back to summary |
|---|---|
| protected SNIServerName(int type, byte[] encoded) Creates an
Note that the
| |
| equals | back to summary |
|---|---|
| public boolean equals(Object other) Overrides java. Indicates whether some other object is "equal to" this server name.
| |
| getEncoded | back to summary |
|---|---|
| public final byte[] getEncoded() Returns a copy of the encoded server name value of this server name.
| |
| getType | back to summary |
|---|---|
| public final int getType() Returns the name type of this server name.
| |
| hashCode | back to summary |
|---|---|
| public int hashCode() Overrides java. Returns a hash code value for this server name. The hash code value is generated using the name type and encoded value of this server name.
| |
| toHexString | back to summary |
|---|---|
| private static String toHexString(byte[] bytes) | |
| toString | back to summary |
|---|---|
| public String toString() Overrides java. Returns a string representation of this server name, including the server
name type and the encoded server name value in this
The exact details of the representation are unspecified and subject to change, but the following may be regarded as typical:
"type=<name type>, value=<name value>"
In this class, the format of "<name type>" is "[LITERAL] (INTEGER)", where the optional "LITERAL" is the literal name, and INTEGER is the integer value of the name type. The format of "<name value>" is "XX:...:XX", where "XX" is the hexadecimal digit representation of a byte value. For example, a returned value of a pseudo server name may look like:
"type=(31), value=77:77:77:2E:65:78:61:6D:70:6C:65:2E:63:6E"
or
"type=host_name (0), value=77:77:77:2E:65:78:61:6D:70:6C:65:2E:63:6E"
Please NOTE that the exact details of the representation are unspecified and subject to change, and subclasses may override the method with their own formats. | |