JcePBEKeyEncryptionMethodGenerator
Date: 2016-06-23

org.bouncycastle.openpgp.operator.jcajce

## Class JcePBEKeyEncryptionMethodGenerator

- java.lang.Object
- - org.bouncycastle.openpgp.operator.PGPKeyEncryptionMethodGenerator
  - - org.bouncycastle.openpgp.operator.PBEKeyEncryptionMethodGenerator
    - - org.bouncycastle.openpgp.operator.jcajce.JcePBEKeyEncryptionMethodGenerator

-     public class JcePBEKeyEncryptionMethodGenerator
      extends PBEKeyEncryptionMethodGenerator

  JCE based generator for password based encryption (PBE) data protection methods.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `JcePBEKeyEncryptionMethodGenerator(char[] passPhrase)` Create a PBE encryption method generator using the default SHA-1 digest and the default S2K count for key generation.
    `JcePBEKeyEncryptionMethodGenerator(char[] passPhrase, int s2kCount)` Create a PBE encryption method generator using the default SHA-1 digest calculator and a S2K count other than the default for key generation.
    `JcePBEKeyEncryptionMethodGenerator(char[] passPhrase, PGPDigestCalculator s2kDigestCalculator)` Create a PBE encryption method generator using the provided digest and the default S2K count for key generation.
    `JcePBEKeyEncryptionMethodGenerator(char[] passPhrase, PGPDigestCalculator s2kDigestCalculator, int s2kCount)` Create a PBE encryption method generator using the provided calculator and S2K count for key generation.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected byte[]` | `encryptSessionInfo(int encAlgorithm, byte[] key, byte[] sessionInfo)`
    `JcePBEKeyEncryptionMethodGenerator` | `setProvider(java.security.Provider provider)` Sets the JCE provider to source cryptographic primitives from.
    `JcePBEKeyEncryptionMethodGenerator` | `setProvider(java.lang.String providerName)` Sets the JCE provider to source cryptographic primitives from.
    `PBEKeyEncryptionMethodGenerator` | `setSecureRandom(java.security.SecureRandom random)` Sets a user defined source of randomness.

    - ### Methods inherited from class org.bouncycastle.openpgp.operator.PBEKeyEncryptionMethodGenerator

      `generate, getKey`

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

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

- - ### Constructor Detail

    - #### JcePBEKeyEncryptionMethodGenerator

          public JcePBEKeyEncryptionMethodGenerator(char[] passPhrase,
                                            PGPDigestCalculator s2kDigestCalculator)

      Create a PBE encryption method generator using the provided digest and the default S2K count for key generation.
      Parameters:
        `passPhrase` - the passphrase to use as the primary source of key material.
        `s2kDigestCalculator` - the digest calculator to use for key calculation.

    - #### JcePBEKeyEncryptionMethodGenerator

          public JcePBEKeyEncryptionMethodGenerator(char[] passPhrase)

      Create a PBE encryption method generator using the default SHA-1 digest and the default S2K count for key generation.
      Parameters:
        `passPhrase` - the passphrase to use as the primary source of key material.

    - #### JcePBEKeyEncryptionMethodGenerator

          public JcePBEKeyEncryptionMethodGenerator(char[] passPhrase,
                                            PGPDigestCalculator s2kDigestCalculator,
                                            int s2kCount)

      Create a PBE encryption method generator using the provided calculator and S2K count for key generation.
      Parameters:
        `passPhrase` - the passphrase to use as the primary source of key material.
        `s2kDigestCalculator` - the digest calculator to use for key calculation.
        `s2kCount` - the single byte `S2K` count to use.

    - #### JcePBEKeyEncryptionMethodGenerator

          public JcePBEKeyEncryptionMethodGenerator(char[] passPhrase,
                                            int s2kCount)

      Create a PBE encryption method generator using the default SHA-1 digest calculator and a S2K count other than the default for key generation.
      Parameters:
        `passPhrase` - the passphrase to use as the primary source of key material.
        `s2kCount` - the single byte `S2K` count to use.

  - ### Method Detail

    - #### setProvider

          public JcePBEKeyEncryptionMethodGenerator setProvider(java.security.Provider provider)

      Sets the JCE provider to source cryptographic primitives from.
      Parameters:
        `provider` - the JCE provider to use.
      Returns:
        the current generator.

    - #### setProvider

          public JcePBEKeyEncryptionMethodGenerator setProvider(java.lang.String providerName)

      Sets the JCE provider to source cryptographic primitives from.
      Parameters:
        `providerName` - the name of the JCE provider to use.
      Returns:
        the current generator.

    - #### setSecureRandom

          public PBEKeyEncryptionMethodGenerator setSecureRandom(java.security.SecureRandom random)

      Description copied from class: `PBEKeyEncryptionMethodGenerator`
      Sets a user defined source of randomness.

      If no SecureRandom is configured, a default SecureRandom will be used.

      Overrides:
        `setSecureRandom` in class `PBEKeyEncryptionMethodGenerator`
      Returns:
        the current generator.

    - #### encryptSessionInfo

          protected byte[] encryptSessionInfo(int encAlgorithm,
                                  byte[] key,
                                  byte[] sessionInfo)
                                       throws PGPException

      Specified by:
        `encryptSessionInfo` in class `PBEKeyEncryptionMethodGenerator`
      Throws:
        `PGPException`