public abstract class KeyGeneratorSpi extends Object
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.SecretKey| Constructor | Description | 
|---|---|
| KeyGeneratorSpi() | 
| Modifier and Type | Method | Description | 
|---|---|---|
| protected abstract SecretKey | engineGenerateKey() | Generates a secret key. | 
| protected abstract void | engineInit(AlgorithmParameterSpec params,
          SecureRandom random) | Initializes the key generator with the specified parameter
 set and a user-provided source of randomness. | 
| protected abstract void | engineInit(int keysize,
          SecureRandom random) | Initializes this key generator for a certain keysize, using the given
 source of randomness. | 
| protected abstract void | engineInit(SecureRandom random) | Initializes the key generator. | 
protected abstract void engineInit(SecureRandom random)
random - the source of randomness for this generatorprotected abstract void engineInit(AlgorithmParameterSpec params, SecureRandom random) throws InvalidAlgorithmParameterException
params - the key generation parametersrandom - the source of randomness for this key generatorInvalidAlgorithmParameterException - if params is
 inappropriate for this key generatorprotected abstract void engineInit(int keysize,
                                   SecureRandom random)
keysize - the keysize. This is an algorithm-specific metric,
 specified in number of bits.random - the source of randomness for this key generatorInvalidParameterException - if the keysize is wrong or not
 supported.protected abstract SecretKey engineGenerateKey()
 Submit a bug or feature 
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
 Copyright © 1993, 2025, Oracle and/or its affiliates.  All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.