Class PK11KeyGenerator

  • All Implemented Interfaces:
    KeyGenerator

    public final class PK11KeyGenerator
    extends java.lang.Object
    implements KeyGenerator
    • 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
        Parameters:
        charToByte - Character-to-byte converter.
      • 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 - If parameter is invalid.
      • 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.
      • setKeyUsages

        public void setKeyUsages​(long opFlags)
      • 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
        Parameters:
        temp - True to generate temporary key.
      • 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
        Parameters:
        sensitive - True to generate sensitive.
      • 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
        Returns:
        Symmetric key.
        Throws:
        java.lang.IllegalStateException - If key generation failed.
        TokenException - If an error occurred in the token.
        java.io.CharConversionException - If an encoding error occurred.
      • 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 - If an encoding error occurred.