Interface KeyGenerator

  • All Known Implementing Classes:
    PK11KeyGenerator

    public interface KeyGenerator
    Generates symmetric keys for encryption and decryption.
    • Method Detail

      • initialize

        void initialize​(int strength)
                 throws java.security.InvalidAlgorithmParameterException
        Parameters:
        strength - Key size in bits. Must be evenly divisible by 8.
        Throws:
        java.security.InvalidAlgorithmParameterException - If parameter is invalid.
      • initialize

        void initialize​(java.security.spec.AlgorithmParameterSpec parameters)
                 throws java.security.InvalidAlgorithmParameterException
        Throws:
        java.security.InvalidAlgorithmParameterException
      • setKeyUsages

        void setKeyUsages​(SymmetricKey.Usage[] usages)
        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

        void temporaryKeys​(boolean temp)
        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.
        Parameters:
        temp - True to generate temporary key.
      • sensitiveKeys

        void sensitiveKeys​(boolean sensitive)
        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.
        Parameters:
        sensitive - True to generate sensitive.
      • generate

        SymmetricKey generate()
                       throws java.lang.IllegalStateException,
                              TokenException,
                              java.io.CharConversionException
        Generates a symmetric key.
        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

        byte[] generatePBE_IV()
                       throws java.lang.IllegalStateException,
                              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.
        Returns:
        The initialization vector derived from the password and salt using the PBE algorithm.
        Throws:
        java.lang.IllegalStateException - If the algorithm is not a PBE algorithm, or the KeyGenerator has not been initialized with an instance of PBEKeyGenParams.
        TokenException - If an error occurs on the CryptoToken while generating the IV.
        java.io.CharConversionException - If an encoding error occurred.
      • setCharToByteConverter

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