You are currently viewing a snapshot of www.mozilla.org taken on April 21, 2008. Most of this content is highly out of date (some pages haven't been updated since the project began in 1998) and exists for historical purposes only. If there are any pages on this archive site that you think should be added back to www.mozilla.org, please file a bug.




org.mozilla.jss.pkcs11
Class PK11KeyGenerator

java.lang.Object
  extended by org.mozilla.jss.pkcs11.PK11KeyGenerator
All Implemented Interfaces:
KeyGenerator

public final class PK11KeyGenerator
extends java.lang.Object
implements KeyGenerator


Nested Class Summary
 
Nested classes/interfaces inherited from interface org.mozilla.jss.crypto.KeyGenerator
KeyGenerator.CharToByteConverter
 
Method Summary
 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

setCharToByteConverter

public void setCharToByteConverter(KeyGenerator.CharToByteConverter charToByte)
Sets the character to byte converter for passwords. The default conversion is UTF8 with no null termination.

Specified by:
setCharToByteConverter in interface KeyGenerator

initialize

public void initialize(int strength)
                throws java.security.InvalidAlgorithmParameterException
Specified by:
initialize in interface KeyGenerator
Parameters:
strength - Key size in bits. Must be evenly divisible by 8.
Throws:
java.security.InvalidAlgorithmParameterException

initialize

public void initialize(java.security.spec.AlgorithmParameterSpec parameters)
                throws java.security.InvalidAlgorithmParameterException
Specified by:
initialize in interface KeyGenerator
Throws:
java.security.InvalidAlgorithmParameterException

setKeyUsages

public void setKeyUsages(SymmetricKey.Usage[] usages)
Specified by:
setKeyUsages in interface KeyGenerator
Parameters:
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.

temporaryKeys

public void temporaryKeys(boolean temp)
Description copied from interface: KeyGenerator
Tells the generator to generate temporary or permanent keys. Temporary keys are not written permanently to the token. They are destroyed by the garbage collector. If this method is not called, the default is temporary keys.

Specified by:
temporaryKeys in interface KeyGenerator

sensitiveKeys

public void sensitiveKeys(boolean sensitive)
Description copied from interface: KeyGenerator
Tells the generator to generate sensitive or insensitive keys. Certain attributes of a sensitive key cannot be revealed in plaintext outside the token. If this method is not called, the default is token dependent.

Specified by:
sensitiveKeys in interface KeyGenerator

generate

public SymmetricKey generate()
                      throws java.lang.IllegalStateException,
                             TokenException,
                             java.io.CharConversionException
Generates the key. This is the public interface, the actual work is done by native methods.

Specified by:
generate in interface KeyGenerator
Throws:
java.lang.IllegalStateException
TokenException
java.io.CharConversionException

generatePBE_IV

public byte[] generatePBE_IV()
                      throws TokenException,
                             java.io.CharConversionException
Generates an Initialization Vector using a PBE algorithm. In order to call this method, the algorithm must be a PBE algorithm, and the KeyGenerator must have been initialized with an instance of PBEKeyGenParams.

Specified by:
generatePBE_IV in interface KeyGenerator
Returns:
The initialization vector derived from the password and salt using the PBE algorithm.
Throws:
TokenException - If an error occurs on the CryptoToken while generating the IV.
java.io.CharConversionException

clone

public SymmetricKey clone(SymmetricKey key)
                   throws SymmetricKey.NotExtractableException,
                          java.security.InvalidKeyException,
                          TokenException
Allows a SymmetricKey to be cloned on a different token.

Specified by:
clone in interface KeyGenerator
Throws:
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

clone

public static SymmetricKey clone(SymmetricKey key,
                                 PK11Token token)
                          throws SymmetricKey.NotExtractableException,
                                 java.security.InvalidKeyException,
                                 TokenException
Allows a SymmetricKey to be cloned on a different token.

Parameters:
key - The key to clone.
token - The token on which to clone the key.
Throws:
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