public final class PK11KeyGenerator extends java.lang.Object implements KeyGenerator
KeyGenerator.CharToByteConverter
Modifier and Type | Method and Description |
---|---|
SymmetricKey |
clone(SymmetricKey key)
Allows a SymmetricKey to be cloned on a different token.
|
static SymmetricKey |
clone(SymmetricKey key,
PK11Token token)
Allows a SymmetricKey to be cloned on a different token.
|
SymmetricKey |
generate()
Generates the key.
|
byte[] |
generatePBE_IV()
Generates an Initialization Vector using a PBE algorithm.
|
void |
initialize(java.security.spec.AlgorithmParameterSpec parameters) |
void |
initialize(int strength) |
void |
sensitiveKeys(boolean sensitive)
Tells the generator to generate sensitive or insensitive keys.
|
void |
setCharToByteConverter(KeyGenerator.CharToByteConverter charToByte)
Sets the character to byte converter for passwords.
|
void |
setKeyUsages(SymmetricKey.Usage[] usages) |
void |
temporaryKeys(boolean temp)
Tells the generator to generate temporary or permanent keys.
|
public void setCharToByteConverter(KeyGenerator.CharToByteConverter charToByte)
setCharToByteConverter
in interface KeyGenerator
charToByte
- Character-to-byte converter.public void initialize(int strength) throws java.security.InvalidAlgorithmParameterException
initialize
in interface KeyGenerator
strength
- Key size in bits. Must be evenly divisible by 8.java.security.InvalidAlgorithmParameterException
- If parameter is invalid.public void initialize(java.security.spec.AlgorithmParameterSpec parameters) throws java.security.InvalidAlgorithmParameterException
initialize
in interface KeyGenerator
java.security.InvalidAlgorithmParameterException
public void setKeyUsages(SymmetricKey.Usage[] usages)
setKeyUsages
in interface KeyGenerator
usages
- The operations the key will be used for after it is
generated. You have to specify these so that the key can be properly
marked with the operations it supports. Some PKCS #11 tokens require
that a key be marked for an operation before it can perform that
operation. The default is SymmetricKey.Usage.SIGN and
SymmetricKey.Usage.ENCRYPT.public void temporaryKeys(boolean temp)
KeyGenerator
temporaryKeys
in interface KeyGenerator
temp
- True to generate temporary key.public void sensitiveKeys(boolean sensitive)
KeyGenerator
sensitiveKeys
in interface KeyGenerator
sensitive
- True to generate sensitive.public SymmetricKey generate() throws java.lang.IllegalStateException, TokenException, java.io.CharConversionException
generate
in interface KeyGenerator
java.lang.IllegalStateException
- If key generation failed.TokenException
- If an error occurred in the token.java.io.CharConversionException
- If an encoding error occurred.public byte[] generatePBE_IV() throws TokenException, java.io.CharConversionException
PBEKeyGenParams
.generatePBE_IV
in interface KeyGenerator
TokenException
- If an error occurs on the CryptoToken while
generating the IV.java.io.CharConversionException
- If an encoding error occurred.public SymmetricKey clone(SymmetricKey key) throws SymmetricKey.NotExtractableException, java.security.InvalidKeyException, TokenException
clone
in interface KeyGenerator
key
- Symmetric key.SymmetricKey.NotExtractableException
- If the key material
cannot be extracted from the current token.java.security.InvalidKeyException
- If the owning token cannot process
the key to be cloned.TokenException
- If an error occurred in the token.public static SymmetricKey clone(SymmetricKey key, PK11Token token) throws SymmetricKey.NotExtractableException, java.security.InvalidKeyException, TokenException
key
- The key to clone.token
- The token on which to clone the key.SymmetricKey.NotExtractableException
- If the key material
cannot be extracted from the current token.java.security.InvalidKeyException
- If the owning token cannot process
the key to be cloned.TokenException