FileDocCategorySizeDatePackage
KeyAgreementSpi.javaAPI DocAndroid 1.5 API5669Wed May 06 22:41:02 BST 2009javax.crypto

KeyAgreementSpi

public abstract class KeyAgreementSpi extends Object
The Service Provider Interface (SPI) definition for the {@code KeyAgreement} class.
since
Android 1.0

Fields Summary
Constructors Summary
public KeyAgreementSpi()
Creates a new {@code KeyAgreementSpi} instance.

since
Android 1.0

    
Methods Summary
protected abstract java.security.KeyengineDoPhase(java.security.Key key, boolean lastPhase)
Does the next (or the last) phase of the key agreement, using the specified key.

param
key the key received from the other party for this phase.
param
lastPhase set to {@code true} if this is the last phase of this key agreement.
return
the intermediate key from this phase or null if there is no intermediate key for this phase.
throws
InvalidKeyException if the specified key cannot be used in this key agreement or this phase,
throws
IllegalStateException if this instance has not been initialized.
since
Android 1.0

protected abstract byte[]engineGenerateSecret()
Generates the shared secret.

return
the generated shared secret.
throws
IllegalStateException if this key agreement is not complete.
since
Android 1.0

protected abstract intengineGenerateSecret(byte[] sharedSecret, int offset)
Generates the shared secret and stores it into the buffer {@code sharedSecred} at {@code offset}.

param
sharedSecret the buffer to store the shared secret.
param
offset the offset in the buffer.
return
the number of bytes stored in the buffer.
throws
IllegalStateException if this key agreement is not complete.
throws
ShortBufferException if the specified buffer is too small for the shared secret.
since
Android 1.0

protected abstract javax.crypto.SecretKeyengineGenerateSecret(java.lang.String algorithm)
Generates the shared secret.

param
algorithm the algorithm to for the {@code SecretKey}
return
the shared secret as a {@code SecretKey} of the specified algorithm.
throws
IllegalStateException if this key agreement is not complete.
throws
NoSuchAlgorithmException if the specified algorithm for the secret key does not exists.
throws
InvalidKeyException if a {@code SecretKey} with the specified algorithm cannot be created using the generated shared secret.
since
Android 1.0

protected abstract voidengineInit(java.security.Key key, java.security.SecureRandom random)
Initializes this {@code KeyAgreementSpi} with the specified key and the specified randomness source.

param
key the key to initialize this key agreement.
param
random the source for any randomness needed.
throws
InvalidKeyException if the specified key cannot be used to initialize this key agreement.
since
Android 1.0

protected abstract voidengineInit(java.security.Key key, java.security.spec.AlgorithmParameterSpec params, java.security.SecureRandom random)
Initializes this {@code KeyAgreementSpi} with the specified key, algorithm parameters and randomness source.

param
key the key to initialize this key agreement.
param
params the parameters for this key agreement algorithm.
param
random the source for any randomness needed.
throws
InvalidKeyException if the specified key cannot be used to initialize this key agreement.
throws
InvalidAlgorithmParameterException if the specified parameters are invalid for this key agreement algorithm.
since
Android 1.0