OpenSSLPBEParametersGenerator (Bouncy Castle Library 1.54 API Specification)
Date: 2015-12-29

org.bouncycastle.crypto.generators

## 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.

  The scheme is a simple extension of PKCS 5 V2.0 Scheme 1 using MD5 with an iteration count of 1.

- - ### Field Summary

    - ### Fields inherited from class org.bouncycastle.crypto.PBEParametersGenerator

      `iterationCount, password, salt`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `OpenSSLPBEParametersGenerator()` Construct a OpenSSL Parameters generator.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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.
    `CipherParameters` | `generateDerivedParameters(int keySize)` Generate a key parameter derived from the password, salt, and iteration count we are currently initialised with.
    `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.
    `void` | `init(byte[] password, byte[] salt)` Initialise - note the iteration count for this algorithm is fixed at 1.

    - ### Methods inherited from class org.bouncycastle.crypto.PBEParametersGenerator

      `getIterationCount, getPassword, getSalt, init, PKCS12PasswordToBytes, PKCS5PasswordToBytes, PKCS5PasswordToUTF8Bytes`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### OpenSSLPBEParametersGenerator

          public OpenSSLPBEParametersGenerator()

      Construct a OpenSSL Parameters generator.

  - ### 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.