Class OpenSSLPBEParametersGenerator


  • public class OpenSSLPBEParametersGenerator
    extends PBEParametersGenerator
    Generator for PBE derived keys and ivs as usd by OpenSSL.

    Originally this scheme was a simple extension of PKCS 5 V2.0 Scheme 1 using MD5 with an iteration count of 1. The default digest was changed to SHA-256 with OpenSSL 1.1.0. This implementation still defaults to MD5, but the digest can now be set.

    • Constructor Detail

      • OpenSSLPBEParametersGenerator

        public OpenSSLPBEParametersGenerator()
        Construct a OpenSSL Parameters generator - digest the original MD5.
      • OpenSSLPBEParametersGenerator

        public OpenSSLPBEParametersGenerator​(Digest digest)
        Construct a OpenSSL Parameters generator - digest as specified.
        Parameters:
        digest - the digest to use as the PRF.
    • Method Detail

      • init

        public void init​(byte[] password,
                         byte[] salt)
        Initialise - note the iteration count for this algorithm is fixed at 1.
        Parameters:
        password - password to use.
        salt - salt to use.
      • generateDerivedParameters

        public CipherParameters generateDerivedParameters​(int keySize)
        Generate a key parameter derived from the password, salt, and iteration count we are currently initialised with.
        Specified by:
        generateDerivedParameters in class PBEParametersGenerator
        Parameters:
        keySize - the size of the key we want (in bits)
        Returns:
        a KeyParameter object.
        Throws:
        java.lang.IllegalArgumentException - if the key length larger than the base hash size.
      • generateDerivedParameters

        public CipherParameters generateDerivedParameters​(int keySize,
                                                          int ivSize)
        Generate a key with initialisation vector parameter derived from the password, salt, and iteration count we are currently initialised with.
        Specified by:
        generateDerivedParameters in class PBEParametersGenerator
        Parameters:
        keySize - the size of the key we want (in bits)
        ivSize - the size of the iv we want (in bits)
        Returns:
        a ParametersWithIV object.
        Throws:
        java.lang.IllegalArgumentException - if keySize + ivSize is larger than the base hash size.
      • generateDerivedMacParameters

        public CipherParameters generateDerivedMacParameters​(int keySize)
        Generate a key parameter for use with a MAC derived from the password, salt, and iteration count we are currently initialised with.
        Specified by:
        generateDerivedMacParameters in class PBEParametersGenerator
        Parameters:
        keySize - the size of the key we want (in bits)
        Returns:
        a KeyParameter object.
        Throws:
        java.lang.IllegalArgumentException - if the key length larger than the base hash size.