APIdia Launch Partner
Top Description Constructors Methods
javax.crypto

public abstract Class KeyGeneratorSpi

extends Object
Class Inheritance
Known Direct Subclasses
com.sun.crypto.provider.AESKeyGenerator, com.sun.crypto.provider.BlowfishKeyGenerator, com.sun.crypto.provider.DESedeKeyGenerator, com.sun.crypto.provider.DESKeyGenerator, com.sun.crypto.provider.HmacMD5KeyGenerator, com.sun.crypto.provider.HmacSHA1KeyGenerator, com.sun.crypto.provider.KeyGeneratorCore.HmacKG, com.sun.crypto.provider.KeyGeneratorCore.RC2KeyGenerator, com.sun.crypto.provider.KeyGeneratorCore.ARCFOURKeyGenerator, com.sun.crypto.provider.KeyGeneratorCore.ChaCha20KeyGenerator, com.sun.crypto.provider.TlsKeyMaterialGenerator, com.sun.crypto.provider.TlsMasterSecretGenerator, com.sun.crypto.provider.TlsPrfGenerator, com.sun.crypto.provider.TlsRsaPremasterSecretGenerator
Imports
java.security.*, java.security.spec.*

This class defines the Service Provider Interface (SPI) for the KeyGenerator class. All the abstract methods in this class must be implemented by each cryptographic service provider who wishes to supply the implementation of a key generator for a particular algorithm.

In case the client does not explicitly initialize the KeyGenerator (via a call to an init method), each provider must supply (and document) a default initialization. See the Keysize Restriction sections of the JDK Providers document for information on the KeyGenerator defaults used by JDK providers. However, note that defaults may vary across different providers. Additionally, the default value for a provider may change in a future version. Therefore, it is recommended to explicitly initialize the KeyGenerator instead of relying on provider-specific defaults.

Author
Jan Luehe
Since
1.4
See Also
SecretKey

Constructor Summary

AccessConstructor and Description
public
KeyGeneratorSpi()

Constructor for subclasses to call.

Method Summary

Modifier and TypeMethod and Description
protected abstract SecretKey

Returns:

the new key
engineGenerateKey
()

Generates a secret key.

protected abstract void
engineInit(SecureRandom
the source of randomness for this generator
random
)

Initializes the key generator.

protected abstract void
engineInit(AlgorithmParameterSpec
the key generation parameters
params
,
SecureRandom
the source of randomness for this key generator
random
)

Initializes the key generator with the specified parameter set and a user-provided source of randomness.

protected abstract void
engineInit(int
the keysize. This is an algorithm-specific metric, specified in number of bits.
keysize
,
SecureRandom
the source of randomness for this key generator
random
)

Initializes this key generator for a certain keysize, using the given source of randomness.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Constructor Detail

KeyGeneratorSpiback to summary
public KeyGeneratorSpi()

Constructor for subclasses to call.

Method Detail

engineGenerateKeyback to summary
protected abstract SecretKey engineGenerateKey()

Generates a secret key.

Returns:SecretKey

the new key

engineInitback to summary
protected abstract void engineInit(SecureRandom random)

Initializes the key generator.

Parameters
random:SecureRandom

the source of randomness for this generator

engineInitback to summary
protected abstract void engineInit(AlgorithmParameterSpec params, SecureRandom random) throws InvalidAlgorithmParameterException

Initializes the key generator with the specified parameter set and a user-provided source of randomness.

Parameters
params:AlgorithmParameterSpec

the key generation parameters

random:SecureRandom

the source of randomness for this key generator

Exceptions
InvalidAlgorithmParameterException:
if params is inappropriate for this key generator
engineInitback to summary
protected abstract void engineInit(int keysize, SecureRandom random)

Initializes this key generator for a certain keysize, using the given source of randomness.

Parameters
keysize:int

the keysize. This is an algorithm-specific metric, specified in number of bits.

random:SecureRandom

the source of randomness for this key generator

Exceptions
InvalidParameterException:
if the keysize is wrong or not supported.