public abstract class PKCS11KeyGenerator extends javax.crypto.KeyGeneratorSpi implements PKCS11EngineClass
Modifier and Type | Field and Description |
---|---|
protected boolean |
initialized_
Indicates, if this object is initialized and ready for signing or verification.
|
protected PKCS11KeyGenerationSpec |
keyGenerationSpec_
The parameters for this key generator.
|
protected boolean |
pkcs11OperationInitialized_
Indicates, if the PKCS#11 signature/verify is already initialized for the next operation round.
|
protected iaik.pkcs.pkcs11.Session |
session_
The session this object works with.
|
protected TokenManager |
tokenManager_
Token manager used to login session, if required.
|
protected iaik.pkcs.pkcs11.MechanismInfo[][] |
usedMechanismInfos_
The mechanism info is the same for all digest mechanisms.
|
protected iaik.pkcs.pkcs11.Mechanism[] |
usedMechanisms_
The list of used mechanisms.
|
Constructor and Description |
---|
PKCS11KeyGenerator()
Default constructor.
|
Modifier and Type | Method and Description |
---|---|
protected javax.crypto.SecretKey |
engineGenerateKey()
Actually generates a secret key from this KeyGenerator object.
|
protected void |
engineInit(java.security.spec.AlgorithmParameterSpec params,
java.security.SecureRandom random)
Initializes this key generator with given algorithm parameters and random seed.
|
protected void |
engineInit(int strength,
java.security.SecureRandom random)
Initializes this key generator for the given strength with the given random seed
|
protected void |
engineInit(java.security.SecureRandom random)
Initializes the key generator with the given random seed.
|
protected void |
finalize()
Tries to close the used session.
|
protected void |
finalizePkcs11Operation()
The internal session finalization method, if the current operation has been finished.
|
protected abstract java.lang.String |
getAlgorithmName()
Get the JCE algorithm name, e.g.
|
protected abstract iaik.pkcs.pkcs11.Mechanism |
getMechanism()
Get the mechanism that this key generator uses.
|
protected iaik.pkcs.pkcs11.MechanismInfo[][] |
getUsedMechanismFeatures()
Returns an two-dimensional array of MechanismInfos that this engine class uses.
|
protected iaik.pkcs.pkcs11.Mechanism[] |
getUsedMechanisms()
Returns an array of Mechanisms that this engine class uses.
|
protected void |
initializePkcs11Operation()
The internal session initialization method, if all necessary member variables are set.
|
protected void |
initializeSession()
Sets up an appropriate session.
|
boolean |
isSupportedBy(TokenManager tokenManager)
Check, if the current token of the given token manager supports the required features for this
engine class.
|
protected TokenManager tokenManager_
protected iaik.pkcs.pkcs11.Session session_
protected PKCS11KeyGenerationSpec keyGenerationSpec_
protected boolean initialized_
protected boolean pkcs11OperationInitialized_
protected iaik.pkcs.pkcs11.Mechanism[] usedMechanisms_
protected iaik.pkcs.pkcs11.MechanismInfo[][] usedMechanismInfos_
protected iaik.pkcs.pkcs11.Mechanism[] getUsedMechanisms()
getRequiredMechanismFeatures()
method.getUsedMechanismFeatures()
. May be empty, but must not be null.protected iaik.pkcs.pkcs11.MechanismInfo[][] getUsedMechanismFeatures()
getUsedMechanisms()
. The array at this index is the list of used feature
combinations used by this engine. The current token must at least support one mechanism and one
of the feature combinations (expressed as a MechanismInfo) of the same machanism.getUsedMechanisms()
. The token must at
least supprot one of these features.public boolean isSupportedBy(TokenManager tokenManager)
isSupportedBy
in interface PKCS11EngineClass
tokenManager
- The token manager. Used to get information about the current token.protected javax.crypto.SecretKey engineGenerateKey()
engineGenerateKey
in class javax.crypto.KeyGeneratorSpi
KeyGeneratorSpi.engineGenerateKey()
protected void engineInit(java.security.SecureRandom random)
engineInit
in class javax.crypto.KeyGeneratorSpi
random
- the random seedKeyGeneratorSpi.engineInit(SecureRandom)
protected void engineInit(int strength, java.security.SecureRandom random) throws java.security.InvalidParameterException
engineInit
in class javax.crypto.KeyGeneratorSpi
strength
- the strength of the key to be createdrandom
- the random seedjava.security.InvalidParameterException
- if the given key-size is invalid.protected void engineInit(java.security.spec.AlgorithmParameterSpec params, java.security.SecureRandom random) throws java.security.InvalidAlgorithmParameterException
engineInit
in class javax.crypto.KeyGeneratorSpi
params
- The algorithm parameters, which must be an instance of PKCS11KeyGenerationSpec and
must not be null.random
- This implementation ignores this parameter.java.security.InvalidAlgorithmParameterException
- if the given algorithm parameters do not match to this KeyGeneratorKeyGeneratorSpi.engineInit(AlgorithmParameterSpec, SecureRandom)
protected void initializeSession()
protected void initializePkcs11Operation()
protected void finalizePkcs11Operation()
protected abstract iaik.pkcs.pkcs11.Mechanism getMechanism()
protected abstract java.lang.String getAlgorithmName()
protected void finalize() throws java.lang.Throwable
finalize
in class java.lang.Object
java.lang.Throwable
- If finalization fails.IAIK JavaSecurity Website https://jce.iaik.tugraz.at/
IAIK at Graz University of Technology, Austria, Europe
Copyright 2001-2023 IAIK, Graz University of Technology, Inffeldgasse 16a, 8010 Graz, Austria. All Rights Reserved. Version 1.9.4