Package 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
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected int` | `iterationCount` |
    `protected byte[]` | `password` |
    `protected byte[]` | `salt` |

  - ### Constructor Summary

    Constructors
    Modifier | Constructor | Description
    --- | --- | ---
    `protected` | `PBEParametersGenerator()` | base constructor.

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `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 representing 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 representing 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.