KeyGenerator (Java Platform SE 8)
KeyGenerator (Java Platform SE 8)
OVERVIEW PACKAGE CLASS USE TREE DEPRECATED INDEX HELP Standard Ed. 8
Class KeyGenerator
java.lang.Object
javax.crypto.KeyGenerator
Key generators are constructed using one of the getInstance class methods of this class.
KeyGenerator objects are reusable, i.e., after a key has been generated, the same
KeyGenerator object can be re-used to generate further keys.
Algorithm-Independent Initialization
All key generators share the concepts of a keysize and a source of randomness. There is
an init method in this KeyGenerator class that takes these two universally shared
types of arguments. There is also one that takes just a keysize argument, and uses the
SecureRandom implementation of the highest-priority installed provider as the source
of randomness (or a system-provided source of randomness if none of the installed
providers supply a SecureRandom implementation), and one that takes just a source of
randomness.
Since no other parameters are specified when you call the above algorithm-
independent init methods, it is up to the provider what to do about the algorithm-
specific parameters (if any) to be associated with each of the keys.
Algorithm-Specific Initialization
For situations where a set of algorithm-specific parameters already exists, there are
two init methods that have an AlgorithmParameterSpec argument. One also has a
SecureRandom argument, while the other uses the SecureRandom implementation of
the highest-priority installed provider as the source of randomness (or a system-
provided source of randomness if none of the installed providers supply a
SecureRandom implementation).
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.
Every implementation of the Java platform is required to support the following standard
KeyGenerator algorithms with the keysizes in parentheses:
AES (128)
DES (56)
DESede (168)
HmacSHA1
HmacSHA256
These algorithms are described in the KeyGenerator section of the Java Cryptography
Architecture Standard Algorithm Name Documentation. Consult the release documentation
for your implementation to see if any other algorithms are supported.
Since:
1.4
See Also:
SecretKey
Constructor Summary
Constructors
Method Summary
SecretKey generateKey()
Generates a secret key.
String getAlgorithm()
Returns the algorithm name of this KeyGenerator object.
Provider getProvider()
Returns the provider of this KeyGenerator object.
Constructor Detail
KeyGenerator
Parameters:
keyGenSpi - the delegate
Method Detail
getAlgorithm
This is the same name that was specified in one of the getInstance calls that created
this KeyGenerator object.
Returns:
the algorithm name of this KeyGenerator object.
getInstance
Returns a KeyGenerator object that generates secret keys for the specified algorithm.
This method traverses the list of registered security Providers, starting with the most
preferred Provider. A new KeyGenerator object encapsulating the KeyGeneratorSpi
implementation from the first Provider that supports the specified algorithm is
returned.
Note that the list of registered providers may be retrieved via the
Security.getProviders() method.
Parameters:
algorithm - the standard name of the requested key algorithm. See the
KeyGenerator section in the Java Cryptography Architecture Standard
Algorithm Name Documentation for information about standard algorithm
names.
Returns:
the new KeyGenerator object.
Throws:
NullPointerException - if the specified algorithm is null.
getInstance
Returns a KeyGenerator object that generates secret keys for the specified algorithm.
Note that the list of registered providers may be retrieved via the
Security.getProviders() method.
Parameters:
algorithm - the standard name of the requested key algorithm. See the
KeyGenerator section in the Java Cryptography Architecture Standard
Algorithm Name Documentation for information about standard algorithm
names.
Returns:
the new KeyGenerator object.
Throws:
NullPointerException - if the specified algorithm is null.
See Also:
Provider
getInstance
Returns a KeyGenerator object that generates secret keys for the specified algorithm.
Parameters:
algorithm - the standard name of the requested key algorithm. See the
KeyGenerator section in the Java Cryptography Architecture Standard
Algorithm Name Documentation for information about standard algorithm
names.
Returns:
the new KeyGenerator object.
Throws:
NullPointerException - if the specified algorithm is null.
See Also:
Provider
getProvider
public final Provider getProvider()
Returns:
the provider of this KeyGenerator object
init
Parameters:
random - the source of randomness for this generator
init
If this key generator requires any random bytes, it will get them using the
SecureRandom implementation of the highest-priority installed provider as the source of
randomness. (If none of the installed providers supply an implementation of
SecureRandom, a system-provided source of randomness will be used.)
Parameters:
params - the key generation parameters
Throws:
InvalidAlgorithmParameterException - if the given parameters are
inappropriate for this key generator
init
Initializes this key generator with the specified parameter set and a user-provided
source of randomness.
Parameters:
params - the key generation parameters
Throws:
InvalidAlgorithmParameterException - if params is inappropriate for this
key generator
init
If this key generator requires any random bytes, it will get them using the
SecureRandom implementation of the highest-priority installed provider as the source of
randomness. (If none of the installed providers supply an implementation of
SecureRandom, a system-provided source of randomness will be used.)
Parameters:
keysize - the keysize. This is an algorithm-specific metric, specified in
number of bits.
Throws:
InvalidParameterException - if the keysize is wrong or not supported.
init
Initializes this key generator for a certain keysize, using a user-provided source of
randomness.
Parameters:
keysize - the keysize. This is an algorithm-specific metric, specified in
number of bits.
Throws:
InvalidParameterException - if the keysize is wrong or not supported.
generateKey
Returns:
the new key
Java™ Platform
OVERVIEW PACKAGE CLASS USE TREE DEPRECATED INDEX HELP Standard Ed. 8