PKCS5S2ParametersGenerator (Bouncy Castle Library 1.85 API Specification)
Date: 2026-07-12

org.bouncycastle.crypto.generators

## Class PKCS5S2ParametersGenerator

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

-     public class PKCS5S2ParametersGenerator
      extends PBEParametersGenerator

  Generator for PBE derived keys and ivs as defined by PKCS 5 V2.0 Scheme 2. This generator uses a SHA-1 HMac as the calculation function.

  The document this implementation is based on can be found at RSA's PKCS5 Page

- - ### Field Summary

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

      `iterationCount, password, salt`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PKCS5S2ParametersGenerator()` construct a PKCS5 Scheme 2 Parameters generator.
    `PKCS5S2ParametersGenerator(Digest digest)`

  - ### Method Summary

    All Methods Instance Methods Concrete 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.

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

    - #### PKCS5S2ParametersGenerator

          public PKCS5S2ParametersGenerator()

      construct a PKCS5 Scheme 2 Parameters generator.

    - #### PKCS5S2ParametersGenerator

          public PKCS5S2ParametersGenerator(Digest digest)

  - ### Method Detail

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

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

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