All Packages Class Hierarchy This Package Previous Next Index
Class javax.crypto.KeyAgreementSpi
java.lang.Object
|
+----javax.crypto.KeyAgreementSpi
- public abstract class KeyAgreementSpi
- extends Object
This class provides the functionality of a key agreement protocol.
The keys involved in establishing a shared secret are created by one of the
key generators (KeyPairGenerator
or
KeyGenerator
), a KeyFactory
, or as a result from
an intermediate phase of the key agreement protocol (see doPhase).
- See Also:
- java.security.AlgorithmParameterGenerator, java.security.AlgorithmParameters, java.security.KeyPairGenerator, java.security.KeyFactory, KeyGenerator, java.security.spec.KeySpec, java.security.spec.AlgorithmParameterSpec, DHPrivateKeySpec, DHPublicKeySpec, DHParameterSpec, DHGenParameterSpec
KeyAgreementSpi()
-
engineDoPhase(int, Key)
- Executes the next phase
phase
of the key
agreement protocol, using the provided key key
.
engineGenerateSecret()
- Generates the shared secret and returns it in a new buffer.
engineGenerateSecret(byte[], int)
- Generates the shared secret, and places it into the buffer
sharedSecret
, beginning at offset
.
engineInit(AlgorithmParameterSpec, SecureRandom)
- Initializes this key agreement with a set of parameters and
a source of randomness.
engineInit(SecureRandom)
- Initializes this key agreement to get random bytes
(if needed) from
random
.
KeyAgreementSpi
public KeyAgreementSpi()
engineInit
protected abstract void engineInit(SecureRandom random)
- Initializes this key agreement to get random bytes
(if needed) from
random
.
- Parameters:
- random - the source of randomness
engineInit
protected abstract void engineInit(AlgorithmParameterSpec params,
SecureRandom random) throws InvalidAlgorithmParameterException
- Initializes this key agreement with a set of parameters and
a source of randomness.
- Parameters:
- params - the key agreement parameters
- random - the source of randomness
- Throws:
InvalidAlgorithmParameterException
- if the given parameters
are inappropriate for this key agreement protocol
engineDoPhase
protected abstract Key engineDoPhase(int phase,
Key key) throws IllegalStateException, InvalidKeyException
- Executes the next phase
phase
of the key
agreement protocol, using the provided key key
.
- Parameters:
- phase - the phase of the key agreement protocol to be executed
- key - the key for this phase
- Returns:
- the key resulting from
phase
, or null if
phase
does not yield a key - Throws:
IllegalStateException
- if
phase
is
inappropriate for this key agreement protocol, or does not correspond to
the next phase in the protocol sequence - Throws:
InvalidKeyException
- if the given key is inappropriate for
this key agreement protocol, or inappropriate for the specified phase
phase
engineGenerateSecret
protected abstract byte[] engineGenerateSecret() throws IllegalStateException
- Generates the shared secret and returns it in a new buffer.
The key agreement is reset to its initial state after this call.
- Returns:
- the new buffer with the shared secret
- Throws:
IllegalStateException
- if this key agreement has not been
completed yet
engineGenerateSecret
protected abstract int engineGenerateSecret(byte[] sharedSecret,
int offset) throws IllegalStateException, ShortBufferException
- Generates the shared secret, and places it into the buffer
sharedSecret
, beginning at offset
.
If the sharedSecret
buffer is too small to hold the
result, a ShortBufferException
is thrown.
In this case, this call should be repeated with a larger output buffer.
After this call has completed successfully, this
KeyAgreement
is reset to its initial state
(uninitialized), and can be re-used for further key agreements.
- Parameters:
- sharedSecret - the buffer for the shared secret
- offset - the offset in
sharedSecret
where the
shared secret will be stored
- Returns:
- the number of bytes placed into
sharedSecret
- Throws:
IllegalStateException
- if this key agreement has not been
completed yet
- Throws:
ShortBufferException
- if the given output buffer is too small
to hold the secret
All Packages Class Hierarchy This Package Previous Next Index