KeyGeneratorSpi
Stay organized with collections
Save and categorize content based on your preferences.
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.
Public Constructor Summary
Protected Method Summary
abstract
SecretKey
|
|
abstract
void
|
|
abstract
void
|
|
abstract
void
|
engineInit(int keysize, SecureRandom random)
Initializes this key generator for a certain keysize, using the given
source of randomness.
|
Inherited Method Summary
From class
java.lang.Object
Object
|
clone()
Creates and returns a copy of this Object .
|
boolean
|
equals( Object obj)
Compares this instance with the specified object and indicates if they
are equal.
|
void
|
finalize()
Invoked when the garbage collector has detected that this instance is no longer reachable.
|
final
Class<?>
|
getClass()
Returns the unique instance of Class that represents this
object's class.
|
int
|
hashCode()
Returns an integer hash code for this object.
|
final
void
|
notify()
Causes a thread which is waiting on this object's monitor (by means of
calling one of the wait() methods) to be woken up.
|
final
void
|
notifyAll()
Causes all threads which are waiting on this object's monitor (by means
of calling one of the wait() methods) to be woken up.
|
String
|
toString()
Returns a string containing a concise, human-readable description of this
object.
|
final
void
|
wait(long timeout, int nanos)
Causes the calling thread to wait until another thread calls the notify() or notifyAll() method of this object or until the
specified timeout expires.
|
final
void
|
wait(long timeout)
Causes the calling thread to wait until another thread calls the notify() or notifyAll() method of this object or until the
specified timeout expires.
|
final
void
|
wait()
Causes the calling thread to wait until another thread calls the notify() or notifyAll() method of this object.
|
Public Constructors
public
KeyGeneratorSpi
()
Protected Methods
protected
abstract
SecretKey
engineGenerateKey
()
Initializes the key generator with the specified parameter
set and a user-provided source of randomness.
Parameters
params |
the key generation parameters |
random |
the source of randomness for this key generator |
protected
abstract
void
engineInit
(SecureRandom random)
Initializes the key generator.
Parameters
random |
the source of randomness for this generator
|
protected
abstract
void
engineInit
(int keysize, SecureRandom random)
Initializes this key generator for a certain keysize, using the given
source of randomness.
Parameters
keysize |
the keysize. This is an algorithm-specific metric,
specified in number of bits. |
random |
the source of randomness for this key generator |
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2024-07-10 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-07-10 UTC."],[[["\u003cp\u003e\u003ccode\u003eKeyGeneratorSpi\u003c/code\u003e is a Service Provider Interface (SPI) for the \u003ccode\u003eKeyGenerator\u003c/code\u003e class, enabling cryptographic providers to implement key generation for specific algorithms.\u003c/p\u003e\n"],["\u003cp\u003eIt defines abstract methods for key generation, initialization with parameters and randomness sources, which providers must implement.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eengineGenerateKey()\u003c/code\u003e generates a secret key, while \u003ccode\u003eengineInit()\u003c/code\u003e methods initialize the key generator with varying parameters and randomness sources.\u003c/p\u003e\n"],["\u003cp\u003eThis class is essential for creating and initializing key generators within cryptographic applications.\u003c/p\u003e\n"]]],["`KeyGeneratorSpi` is a Service Provider Interface for generating secret keys. Cryptographic service providers must implement its abstract methods: `engineGenerateKey` to produce a secret key, and `engineInit` (with variations for parameters, randomness, and keysize) to initialize the key generator. It defines how to establish the parameters and the randomness for the key generator. The class also contains the public constructor KeyGeneratorSpi().\n"],null,["# KeyGeneratorSpi\n\npublic abstract class **KeyGeneratorSpi** extends [Object](../../../reference/java/lang/Object.html) \nThis class defines the *Service Provider Interface* (**SPI** )\nfor the `KeyGenerator` class.\nAll the abstract methods in this class must be implemented by each\ncryptographic service provider who wishes to supply the implementation\nof a key generator for a particular algorithm. \n\n##### See Also\n\n- [SecretKey](../../../reference/javax/crypto/SecretKey.html) \n\n### Public Constructor Summary\n\n|---|---------------------------------------------------------------------------------------------|\n| | [KeyGeneratorSpi](../../../reference/javax/crypto/KeyGeneratorSpi.html#KeyGeneratorSpi())() |\n\n### Protected Method Summary\n\n|----------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| abstract [SecretKey](../../../reference/javax/crypto/SecretKey.html) | [engineGenerateKey](../../../reference/javax/crypto/KeyGeneratorSpi.html#engineGenerateKey())() Generates a secret key. |\n| abstract void | [engineInit](../../../reference/javax/crypto/KeyGeneratorSpi.html#engineInit(java.security.spec.AlgorithmParameterSpec,%20java.security.SecureRandom))([AlgorithmParameterSpec](../../../reference/java/security/spec/AlgorithmParameterSpec.html) params, [SecureRandom](../../../reference/java/security/SecureRandom.html) random) Initializes the key generator with the specified parameter set and a user-provided source of randomness. |\n| abstract void | [engineInit](../../../reference/javax/crypto/KeyGeneratorSpi.html#engineInit(java.security.SecureRandom))([SecureRandom](../../../reference/java/security/SecureRandom.html) random) Initializes the key generator. |\n| abstract void | [engineInit](../../../reference/javax/crypto/KeyGeneratorSpi.html#engineInit(int,%20java.security.SecureRandom))(int keysize, [SecureRandom](../../../reference/java/security/SecureRandom.html) random) Initializes this key generator for a certain keysize, using the given source of randomness. |\n\n### Inherited Method Summary\n\nFrom class [java.lang.Object](../../../reference/java/lang/Object.html) \n\n|-------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| [Object](../../../reference/java/lang/Object.html) | [clone](../../../reference/java/lang/Object.html#clone())() Creates and returns a copy of this `Object`. |\n| boolean | [equals](../../../reference/java/lang/Object.html#equals(java.lang.Object))([Object](../../../reference/java/lang/Object.html) obj) Compares this instance with the specified object and indicates if they are equal. |\n| void | [finalize](../../../reference/java/lang/Object.html#finalize())() Invoked when the garbage collector has detected that this instance is no longer reachable. |\n| final [Class](../../../reference/java/lang/Class.html)\\\u003c?\\\u003e | [getClass](../../../reference/java/lang/Object.html#getClass())() Returns the unique instance of [Class](../../../reference/java/lang/Class.html) that represents this object's class. |\n| int | [hashCode](../../../reference/java/lang/Object.html#hashCode())() Returns an integer hash code for this object. |\n| final void | [notify](../../../reference/java/lang/Object.html#notify())() Causes a thread which is waiting on this object's monitor (by means of calling one of the `wait()` methods) to be woken up. |\n| final void | [notifyAll](../../../reference/java/lang/Object.html#notifyAll())() Causes all threads which are waiting on this object's monitor (by means of calling one of the `wait()` methods) to be woken up. |\n| [String](../../../reference/java/lang/String.html) | [toString](../../../reference/java/lang/Object.html#toString())() Returns a string containing a concise, human-readable description of this object. |\n| final void | [wait](../../../reference/java/lang/Object.html#wait(long,%20int))(long timeout, int nanos) Causes the calling thread to wait until another thread calls the `notify()` or `notifyAll()` method of this object or until the specified timeout expires. |\n| final void | [wait](../../../reference/java/lang/Object.html#wait(long))(long timeout) Causes the calling thread to wait until another thread calls the `notify()` or `notifyAll()` method of this object or until the specified timeout expires. |\n| final void | [wait](../../../reference/java/lang/Object.html#wait())() Causes the calling thread to wait until another thread calls the `notify()` or `notifyAll()` method of this object. |\n\nPublic Constructors\n-------------------\n\n#### public\n**KeyGeneratorSpi**\n()\n\n\u003cbr /\u003e\n\nProtected Methods\n-----------------\n\n#### protected abstract [SecretKey](../../../reference/javax/crypto/SecretKey.html)\n**engineGenerateKey**\n()\n\nGenerates a secret key. \n\n##### Returns\n\n- the new key \n\n#### protected abstract void\n**engineInit**\n([AlgorithmParameterSpec](../../../reference/java/security/spec/AlgorithmParameterSpec.html) params, [SecureRandom](../../../reference/java/security/SecureRandom.html) random)\n\nInitializes the key generator with the specified parameter\nset and a user-provided source of randomness. \n\n##### Parameters\n\n| params | the key generation parameters |\n| random | the source of randomness for this key generator |\n|--------|-------------------------------------------------|\n\n##### Throws\n\n| [InvalidAlgorithmParameterException](../../../reference/java/security/InvalidAlgorithmParameterException.html) | if `params` is inappropriate for this key generator |\n|----------------------------------------------------------------------------------------------------------------|-----------------------------------------------------|\n\n#### protected abstract void\n**engineInit**\n([SecureRandom](../../../reference/java/security/SecureRandom.html) random)\n\nInitializes the key generator. \n\n##### Parameters\n\n| random | the source of randomness for this generator |\n|--------|---------------------------------------------|\n\n#### protected abstract void\n**engineInit**\n(int keysize, [SecureRandom](../../../reference/java/security/SecureRandom.html) random)\n\nInitializes this key generator for a certain keysize, using the given\nsource of randomness. \n\n##### Parameters\n\n| keysize | the keysize. This is an algorithm-specific metric, specified in number of bits. |\n| random | the source of randomness for this key generator |\n|---------|---------------------------------------------------------------------------------|\n\n##### Throws\n\n| [InvalidParameterException](../../../reference/java/security/InvalidParameterException.html) | if the keysize is wrong or not supported. |\n|----------------------------------------------------------------------------------------------|-------------------------------------------|"]]