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