Package org.mozilla.jss.pkcs11
Class PK11KeyPairGenerator
java.lang.Object
org.mozilla.jss.crypto.KeyPairGeneratorSpi
org.mozilla.jss.pkcs11.PK11KeyPairGenerator
A Key Pair Generator implemented using PKCS #11.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.mozilla.jss.crypto.KeyPairGeneratorSpi
KeyPairGeneratorSpi.Usage -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic org.slf4j.Loggerstatic final PQGParamsPre-cooked PQG values for 1024-bit keypairs, along with the seed, counter, and H values needed to verify them.static final PQGParamsPre-cooked PQG values for 512-bit keypairs, along with the seed, counter, and H values needed to verify them.static final PQGParamsPre-cooked PQG values for 768-bit keypairs, along with the seed, counter, and H values needed to verify them. -
Constructor Summary
ConstructorsConstructorDescriptionPK11KeyPairGenerator(PK11Token token, KeyPairAlgorithm algorithm) Constructor for PK11KeyPairGenerator. -
Method Summary
Modifier and TypeMethodDescriptionvoidextractablePairs(boolean extractable) Generates a key pair on a token.intgetCurveCodeByName(String curveName) voidinitialize(int strength, SecureRandom random) Initializes this KeyPairGenerator with the given key strength.voidinitialize(AlgorithmParameterSpec params, SecureRandom random) Initializes this KeyPairGenerator with the given algorithm-specific parameters.booleanvoidsensitivePairs(boolean sensitive) voidsetKeyPairUsages(KeyPairGeneratorSpi.Usage[] usages, KeyPairGeneratorSpi.Usage[] usages_mask) Sets the requested key usages desired for the generated key pair.voidtemporaryPairs(boolean temp)
-
Field Details
-
logger
public static org.slf4j.Logger logger -
PQG1024
Pre-cooked PQG values for 1024-bit keypairs, along with the seed, counter, and H values needed to verify them. -
PQG768
Pre-cooked PQG values for 768-bit keypairs, along with the seed, counter, and H values needed to verify them. -
PQG512
Pre-cooked PQG values for 512-bit keypairs, along with the seed, counter, and H values needed to verify them.
-
-
Constructor Details
-
PK11KeyPairGenerator
public PK11KeyPairGenerator(PK11Token token, KeyPairAlgorithm algorithm) throws NoSuchAlgorithmException, TokenException Constructor for PK11KeyPairGenerator.- Parameters:
token- The PKCS #11 token that the keypair will be generated on.algorithm- The type of key that will be generated. Currently,KeyPairAlgorithm.RSA,KeyPairAlgorithm.DSAandKeyPairAlgorithm.ECare supported.- Throws:
NoSuchAlgorithmExceptionTokenException
-
-
Method Details
-
initialize
Initializes this KeyPairGenerator with the given key strength.For DSA key generation, pre-cooked PQG values will be used be used if the key size is 512, 768, or 1024. Otherwise, an InvalidParameterException will be thrown.
- Specified by:
initializein classKeyPairGeneratorSpi- Parameters:
strength- The strength (size) of the keys that will be generated.random- Ignored- Throws:
InvalidParameterException- If the key strength is not supported by the algorithm or this implementation.
-
initialize
public void initialize(AlgorithmParameterSpec params, SecureRandom random) throws InvalidAlgorithmParameterException Initializes this KeyPairGenerator with the given algorithm-specific parameters.- Specified by:
initializein classKeyPairGeneratorSpi- Parameters:
params- The algorithm-specific parameters that will govern key pair generation.random- Ignored- Throws:
InvalidAlgorithmParameterException- If the parameters are inappropriate for the key type or are not supported by this implementation.
-
generateKeyPair
Generates a key pair on a token. Uses parameters if they were passed in through a call toinitialize, otherwise uses defaults.- Specified by:
generateKeyPairin classKeyPairGeneratorSpi- Returns:
- Throws:
TokenException
-
keygenOnInternalToken
public boolean keygenOnInternalToken()- Specified by:
keygenOnInternalTokenin classKeyPairGeneratorSpi- Returns:
- true if the keypair generation will be done on the internal token and then moved to this token.
-
temporaryPairs
public void temporaryPairs(boolean temp) - Specified by:
temporaryPairsin classKeyPairGeneratorSpi
-
sensitivePairs
public void sensitivePairs(boolean sensitive) - Specified by:
sensitivePairsin classKeyPairGeneratorSpi
-
extractablePairs
public void extractablePairs(boolean extractable) - Specified by:
extractablePairsin classKeyPairGeneratorSpi
-
setKeyPairUsages
public void setKeyPairUsages(KeyPairGeneratorSpi.Usage[] usages, KeyPairGeneratorSpi.Usage[] usages_mask) Sets the requested key usages desired for the generated key pair. This allows the caller to suggest how NSS generates the key pair.- Specified by:
setKeyPairUsagesin classKeyPairGeneratorSpi- Parameters:
usages- List of desired key usages.usages_mask- Corresponding mask for the key usages. if a usages is desired, make sure it is in the mask as well.
-
getCurveCodeByName
- Specified by:
getCurveCodeByNamein classKeyPairGeneratorSpi- Throws:
InvalidParameterException
-