Class OpenSSLPBEParametersGenerator

java.lang.Object
org.bouncycastle.crypto.PBEParametersGenerator
org.bouncycastle.crypto.generators.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 Details

    • 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 Details

    • 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:
      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:
      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:
      IllegalArgumentException - if the key length larger than the base hash size.