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

org.bouncycastle.crypto.generators

## Class PKCS12ParametersGenerator

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

-     public class PKCS12ParametersGenerator
      extends PBEParametersGenerator

  Generator for PBE derived keys and ivs as defined by PKCS 12 V1.0.

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

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `IV_MATERIAL`
    `static int` | `KEY_MATERIAL`
    `static int` | `MAC_MATERIAL`

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

      `iterationCount, password, salt`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PKCS12ParametersGenerator(Digest digest)` Construct a PKCS 12 Parameters generator.

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

- - ### Field Detail

    - #### KEY_MATERIAL

          public static final int KEY_MATERIAL

      See Also:
        Constant Field Values

    - #### IV_MATERIAL

          public static final int IV_MATERIAL

      See Also:
        Constant Field Values

    - #### MAC_MATERIAL

          public static final int MAC_MATERIAL

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### PKCS12ParametersGenerator

          public PKCS12ParametersGenerator(Digest digest)

      Construct a PKCS 12 Parameters generator. This constructor will accept any digest which also implements ExtendedDigest.
      Parameters:
        `digest` - the digest to be used as the source of derived keys.
      Throws:
        `java.lang.IllegalArgumentException` - if an unknown digest is passed in.

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