public class AdvancedSinglePskStore extends Object implements AdvancedPskStore, Destroyable
AdvancedPskStore implementation for clients to connect a single other
peer.| Constructor and Description |
|---|
AdvancedSinglePskStore(PskPublicInformation identity,
byte[] key)
Create simple store with initial credentials.
|
AdvancedSinglePskStore(PskPublicInformation identity,
SecretKey key)
Create simple store with initial credentials.
|
AdvancedSinglePskStore(String identity,
byte[] key)
Create simple store with initial credentials.
|
AdvancedSinglePskStore(String identity,
SecretKey key)
Create simple store with initial credentials.
|
| Modifier and Type | Method and Description |
|---|---|
void |
destroy() |
PskPublicInformation |
getIdentity(InetSocketAddress peerAddress,
ServerNames virtualHost)
Gets the identity to use for a PSK based handshake with a given
peer.
|
boolean |
hasEcdhePskSupported()
Check, if ECDHE PSK cipher suites are supported.
|
boolean |
isDestroyed() |
PskSecretResult |
requestPskSecretResult(ConnectionId cid,
ServerNames serverName,
PskPublicInformation identity,
String hmacAlgorithm,
SecretKey otherSecret,
byte[] seed)
Request psk secret result.
|
void |
setResultHandler(PskSecretResultHandler resultHandler)
Set the handler for asynchronous master secret results.
|
public AdvancedSinglePskStore(String identity, byte[] key)
identity - PSK identitykey - PSK secret keypublic AdvancedSinglePskStore(PskPublicInformation identity, byte[] key)
identity - PSK identitykey - PSK secret keypublic AdvancedSinglePskStore(String identity, SecretKey key)
identity - PSK identitykey - PSK secret keypublic AdvancedSinglePskStore(PskPublicInformation identity, SecretKey key)
identity - PSK identitykey - PSK secret keypublic boolean hasEcdhePskSupported()
AdvancedPskStorehasEcdhePskSupported in interface AdvancedPskStoretrue, if ECDHE PSK cipher suites are supported,
false, if not.public PskSecretResult requestPskSecretResult(ConnectionId cid, ServerNames serverName, PskPublicInformation identity, String hmacAlgorithm, SecretKey otherSecret, byte[] seed)
AdvancedPskStorenull and process the request
asynchronously. The PskSecretResult must contain the CID, the
normalized identity and master secret or PSK secret key, if available. If
the result is not returned, it is passed asynchronously to the result
handler, provided during DTLSConnector initialization by
AdvancedPskStore.setResultHandler(PskSecretResultHandler).requestPskSecretResult in interface AdvancedPskStorecid - connection id for stateless asynchronous implementations.serverName - server names. Maybe null, if SNI is not enabled
or not used by the client.identity - psk identity. Maybe normalized, if identity is available
in the store.hmacAlgorithm - HMAC algorithm name for PRF.otherSecret - other secret from ECDHE, or null. Must be
cloned for asynchronous use. See
RFC
5489, other secretseed - seed for PRF.null, if result is provided
asynchronous.public PskPublicInformation getIdentity(InetSocketAddress peerAddress, ServerNames virtualHost)
A DTLS client uses this method to determine the identity to include in its CLIENT_KEY_EXCHANGE message during a PSK based DTLS handshake with the peer. Ignores arguments, though only a single destination peers is supported.
getIdentity in interface AdvancedPskStorepeerAddress - The IP address and port of the peer to perform the
handshake with.virtualHost - The virtual host at the peer to connect to. If
null, the identity will be looked up in the
global scope.null if no peer with the given
address and virtual host is registered.public void setResultHandler(PskSecretResultHandler resultHandler)
AdvancedPskStoreDTLSConnector. Synchronous
implementations may just ignore this using an empty implementation.
Note: the type of the handler will change to HandshakeResultHandler with 3.0.setResultHandler in interface AdvancedPskStoreresultHandler - handler for asynchronous master secret results. This
handler MUST NOT be called from the thread calling
AdvancedPskStore.requestPskSecretResult(ConnectionId, ServerNames, PskPublicInformation, String, SecretKey, byte[]),
instead just return the result there.public void destroy()
throws DestroyFailedException
destroy in interface DestroyableDestroyFailedExceptionpublic boolean isDestroyed()
isDestroyed in interface DestroyableCopyright © 2023 Eclipse Foundation. All rights reserved.