org.bouncycastle.crypto

## Class PBEParametersGenerator

- java.lang.Object
- - org.bouncycastle.crypto.PBEParametersGenerator

Direct Known Subclasses:
  OpenSSLPBEParametersGenerator, PKCS12ParametersGenerator, PKCS5S1ParametersGenerator, PKCS5S2ParametersGenerator

    public abstract class PBEParametersGenerator
    extends java.lang.Object

super class for all Password Based Encryption (PBE) parameter generator classes.

### Field Summary

Fields
`protected int` `iterationCount`
`protected byte[]` `password`
`protected byte[]` `salt`

### Constructor Summary

Constructors
`protected` `PBEParametersGenerator()` base constructor.

### Method Summary

Methods
`abstract CipherParameters` `generateDerivedMacParameters(int keySize)` generate derived parameters for a key of length keySize, specifically for use with a MAC.
`abstract CipherParameters` `generateDerivedParameters(int keySize)` generate derived parameters for a key of length keySize.
`abstract CipherParameters` `generateDerivedParameters(int keySize, int ivSize)` generate derived parameters for a key of length keySize, and an initialisation vector (IV) of length ivSize.
`int` `getIterationCount()` return the iteration count.
`byte[]` `getPassword()` return the password byte array.
`byte[]` `getSalt()` return the salt byte array.
`void` `init(byte[] password, byte[] salt, int iterationCount)` initialise the PBE generator.
`static byte[]` `PKCS12PasswordToBytes(char[] password)` converts a password to a byte array according to the scheme in PKCS12 (unicode, big endian, 2 zero pad bytes at the end).
`static byte[]` `PKCS5PasswordToBytes(char[] password)` converts a password to a byte array according to the scheme in PKCS5 (ascii, no padding)
`static byte[]` `PKCS5PasswordToUTF8Bytes(char[] password)` converts a password to a byte array according to the scheme in PKCS5 (UTF-8, no padding)

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

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

### Field Detail

#### password

    protected byte[] password

#### salt

    protected byte[] salt

#### iterationCount

    protected int iterationCount

### Constructor Detail

#### PBEParametersGenerator

    protected PBEParametersGenerator()

base constructor.

### Method Detail

#### init

    public void init(byte[] password,
            byte[] salt,
            int iterationCount)

initialise the PBE generator.

Parameters:
  `password` - the password converted into bytes (see below).
  `salt` - the salt to be mixed with the password.
  `iterationCount` - the number of iterations the "mixing" function is to be applied for.

#### getPassword

    public byte[] getPassword()

return the password byte array.

Returns:
  the password byte array.

#### getSalt

    public byte[] getSalt()

return the salt byte array.

Returns:
  the salt byte array.

#### getIterationCount

    public int getIterationCount()

return the iteration count.

Returns:
  the iteration count.

#### generateDerivedParameters

    public abstract CipherParameters generateDerivedParameters(int keySize)

generate derived parameters for a key of length keySize.

Parameters:
  `keySize` - the length, in bits, of the key required.
Returns:
  a parameters object representing a key.

#### generateDerivedParameters

    public abstract CipherParameters generateDerivedParameters(int keySize,
                                             int ivSize)

generate derived parameters for a key of length keySize, and an initialisation vector (IV) of length ivSize.

Parameters:
  `keySize` - the length, in bits, of the key required.
  `ivSize` - the length, in bits, of the iv required.
Returns:
  a parameters object representing a key and an IV.

#### generateDerivedMacParameters

    public abstract CipherParameters generateDerivedMacParameters(int keySize)

generate derived parameters for a key of length keySize, specifically for use with a MAC.

Parameters:
  `keySize` - the length, in bits, of the key required.
Returns:
  a parameters object representing a key.

#### PKCS5PasswordToBytes

    public static byte[] PKCS5PasswordToBytes(char[] password)

converts a password to a byte array according to the scheme in PKCS5 (ascii, no padding)

Parameters:
  `password` - a character array reqpresenting the password.
Returns:
  a byte array representing the password.

#### PKCS5PasswordToUTF8Bytes

    public static byte[] PKCS5PasswordToUTF8Bytes(char[] password)

converts a password to a byte array according to the scheme in PKCS5 (UTF-8, no padding)

Parameters:
  `password` - a character array reqpresenting the password.
Returns:
  a byte array representing the password.

#### PKCS12PasswordToBytes

    public static byte[] PKCS12PasswordToBytes(char[] password)

converts a password to a byte array according to the scheme in PKCS12 (unicode, big endian, 2 zero pad bytes at the end).

Parameters:
  `password` - a character array representing the password.
Returns:
  a byte array representing the password.