|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object iaik.security.ssl.Extension iaik.security.ssl.PskKeyExchangeModes
public final class PskKeyExchangeModes
This class implements the TLS 1.3 psk_key_exchange_modes extension (see RFC 8446).
The psk_key_exchange_modes extension is sent by the client to tell the server the modes the client is supporting for use with pre shared keys. TLS servers do not send a psk_key_exchange_modes extension.
RFC 8446 defines the Pre-Shared Key Exchange Modes
extension as
enumeration of PskKeyExchangeMode ids:
enum { psk_ke(0), psk_dhe_ke(1), (255) } PskKeyExchangeMode; struct { PskKeyExchangeMode ke_modes<1..255>; } PskKeyExchangeModes;Although a PskKeyExchangeModes only will be sent from the client to the server, on both side of the connection (client and server) a PskKeyExchangeModes extension may be created to explicitly specify (or limit, respectively) the psk key exchange modes that shall be supported , e.g.:
PskKeyExchangeModes pskKeyExchangeModes = new PskKeyExchangeModes(PskKeyExchangeModes.PSK_DHE_KE); ... ExtensionList extensions = ...; extensions.addExtension(pskKeyExchangeModes); ... SSLContext context = ...; context.setExtensions(extensions);Currently only mode
PSK_DHE_KE
is supported.
Extension
,
ExtensionList
Nested Class Summary | |
---|---|
static class |
PskKeyExchangeModes.PskKeyExchangeMode
PskKeyExchangeMode. |
Field Summary | |
---|---|
static PskKeyExchangeModes.PskKeyExchangeMode |
PSK_DHE_KE
PskKeyExchangeMode psk_dhe_ke. |
static PskKeyExchangeModes.PskKeyExchangeMode |
PSK_KE
PskKeyExchangeMode psk_ke. |
static ExtensionType |
TYPE
The type (45) of the psk_key_exchange_modes extension. |
Constructor Summary | |
---|---|
PskKeyExchangeModes()
Creates a new PskKeyExchangeModes extension. |
|
PskKeyExchangeModes(PskKeyExchangeModes.PskKeyExchangeMode mode)
Creates an PskKeyExchangeModes extension for the given psk key exchange mode. |
|
PskKeyExchangeModes(PskKeyExchangeModes.PskKeyExchangeMode[] modes)
Creates an PskKeyExchangeModes extension for the given psk key exchange modes. |
Method Summary | |
---|---|
java.lang.Object |
clone()
Returns a clone of this psk key exchange mode list. |
boolean |
contains(PskKeyExchangeModes.PskKeyExchangeMode mode)
Checks if this psk key exchange mode list contains the given psk key exchange mode. |
boolean |
equals(java.lang.Object obj)
Checks if this PskKeyExchangeModes extension is equal to the given object. |
static PskKeyExchangeModes |
getDefaultPskKeyExchangeModes()
Creates a PskKeyExchangeModes extension containing the psk key exchange modes supported by default. |
PskKeyExchangeModes.PskKeyExchangeMode[] |
getModes()
Gets the psk key exchange modes included in this psk key exchange mode list. |
int |
hashCode()
Gets a hash code of this psk key exchange mode list. |
void |
setIgnoreClientPreferenceOrder(boolean ignore)
Sets whether to ignore the preference order of the psk key exchange modes sent by the client (only meaningful on the server side). |
void |
setModes(PskKeyExchangeModes.PskKeyExchangeMode[] modes)
Sets the psk key exchange modes. |
int |
size()
Gets the number of psk key exchange modes included in this psk key exchange mode list. |
java.lang.String |
toString()
Gets a String representation of this PskKeyExchangeModes extension. |
Methods inherited from class iaik.security.ssl.Extension |
---|
getAllowedProtocolVersions, getExtensionType, getName, getType, setCritical |
Methods inherited from class java.lang.Object |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final PskKeyExchangeModes.PskKeyExchangeMode PSK_KE
public static final PskKeyExchangeModes.PskKeyExchangeMode PSK_DHE_KE
public static final ExtensionType TYPE
Constructor Detail |
---|
public PskKeyExchangeModes()
setModes
or method addMode
.
public PskKeyExchangeModes(PskKeyExchangeModes.PskKeyExchangeMode[] modes)
modes
- the psk key exchange modes
java.lang.IllegalArgumentException
- if the given array is empty or contains
a null
element, or if any of
the given psk key exchange modes is not supportedpublic PskKeyExchangeModes(PskKeyExchangeModes.PskKeyExchangeMode mode)
Additional psk key exchange modes may be added by calling method
.
addMode
mode
- the psk key exchange mode
java.lang.IllegalArgumentException
- if the given PskKeyExchangeMode is null
,
or if the given PskKeyExchangeMode is not supportedMethod Detail |
---|
public static PskKeyExchangeModes getDefaultPskKeyExchangeModes()
public PskKeyExchangeModes.PskKeyExchangeMode[] getModes()
public void setModes(PskKeyExchangeModes.PskKeyExchangeMode[] modes)
modes
- the modes to be set
java.lang.IllegalArgumentException
- if the given array is empty or does contain
a null
element, or if any of
the given psk key exchange modes is not supportedpublic void setIgnoreClientPreferenceOrder(boolean ignore)
ignore
- true
to ignore the client preference order
false
(default) to not ignore itpublic int size()
public int hashCode()
hashCode
in class java.lang.Object
public boolean equals(java.lang.Object obj)
Two psk key exchange mode list are treated as equal if they contain the same
PskKeyExchangeMode objects (same number and same order). The critical
value is not checked by this method.
equals
in class java.lang.Object
true
if this PskKeyExchangeModes is equal to the
given object, false
if it is not equal
to itpublic boolean contains(PskKeyExchangeModes.PskKeyExchangeMode mode)
true
if this psk key exchange mode list contains the given
psk key exchange mode, false
if it does not contain itpublic java.lang.Object clone()
clone
in class Extension
public java.lang.String toString()
toString
in class Extension
|
This Javadoc may contain text parts from text parts from IETF Internet Standard specifications (see copyright note). | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |