KeyAgreement (Java SE 15 & JDK 15) (original) (raw)


public class KeyAgreement extends Object

This class provides the functionality of a key agreement (or key exchange) protocol.

The keys involved in establishing a shared secret are created by one of the key generators (KeyPairGenerator orKeyGenerator), a KeyFactory, or as a result from an intermediate phase of the key agreement protocol.

For each of the correspondents in the key exchange, doPhase needs to be called. For example, if this key exchange is with one other party, doPhase needs to be called once, with thelastPhase flag set to true. If this key exchange is with two other parties, doPhase needs to be called twice, the first time setting the lastPhase flag tofalse, and the second time setting it to true. There may be any number of parties involved in a key exchange.

Every implementation of the Java platform is required to support the following standard KeyAgreement algorithm:

This algorithm is described in the KeyAgreement section of the Java Security Standard Algorithm Names Specification. Consult the release documentation for your implementation to see if any other algorithms are supported.

Since:

1.4

See Also:

KeyGenerator, SecretKey

Constructors

Modifier Constructor Description
protected KeyAgreement​(KeyAgreementSpi keyAgreeSpi,Provider provider,String algorithm) Creates a KeyAgreement object.
Modifier and Type Method Description
Key doPhase​(Key key, boolean lastPhase) Executes the next phase of this key agreement with the given key that was received from one of the other parties involved in this key agreement.
byte[] generateSecret() Generates the shared secret and returns it in a new buffer.
int generateSecret​(byte[] sharedSecret, int offset) Generates the shared secret, and places it into the buffersharedSecret, beginning at offset inclusive.
SecretKey generateSecret​(String algorithm) Creates the shared secret and returns it as a SecretKey object of the specified algorithm.
String getAlgorithm() Returns the algorithm name of this KeyAgreement object.
static KeyAgreement getInstance​(String algorithm) Returns a KeyAgreement object that implements the specified key agreement algorithm.
static KeyAgreement getInstance​(String algorithm,String provider) Returns a KeyAgreement object that implements the specified key agreement algorithm.
static KeyAgreement getInstance​(String algorithm,Provider provider) Returns a KeyAgreement object that implements the specified key agreement algorithm.
Provider getProvider() Returns the provider of this KeyAgreement object.
void init​(Key key) Initializes this key agreement with the given key, which is required to contain all the algorithm parameters required for this key agreement.
void init​(Key key,SecureRandom random) Initializes this key agreement with the given key and source of randomness.
void init​(Key key,AlgorithmParameterSpec params) Initializes this key agreement with the given key and set of algorithm parameters.
void init​(Key key,AlgorithmParameterSpec params,SecureRandom random) Initializes this key agreement with the given key, set of algorithm parameters, and source of randomness.

Methods declared in class java.lang.Object

[clone](../../java/lang/Object.html#clone%28%29), [equals](../../java/lang/Object.html#equals%28java.lang.Object%29), [finalize](../../java/lang/Object.html#finalize%28%29), [getClass](../../java/lang/Object.html#getClass%28%29), [hashCode](../../java/lang/Object.html#hashCode%28%29), [notify](../../java/lang/Object.html#notify%28%29), [notifyAll](../../java/lang/Object.html#notifyAll%28%29), [toString](../../java/lang/Object.html#toString%28%29), [wait](../../java/lang/Object.html#wait%28%29), [wait](../../java/lang/Object.html#wait%28long%29), [wait](../../java/lang/Object.html#wait%28long,int%29)