PBEDataDecryptorFactory
Date: 2016-06-23

org.bouncycastle.openpgp.operator

## Class PBEDataDecryptorFactory

- java.lang.Object
- - org.bouncycastle.openpgp.operator.PBEDataDecryptorFactory

- All Implemented Interfaces:
    PGPDataDecryptorFactory
  Direct Known Subclasses:
    BcPBEDataDecryptorFactory

      public abstract class PBEDataDecryptorFactory
      extends java.lang.Object
      implements PGPDataDecryptorFactory

  A factory for performing PBE decryption operations.

- - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `PBEDataDecryptorFactory(char[] passPhrase, PGPDigestCalculatorProvider calculatorProvider)` Construct a PBE data decryptor factory.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `byte[]` | `makeKeyFromPassPhrase(int keyAlgorithm, S2K s2k)` Generates an encryption key using the pass phrase and digest calculator configured for this factory.
    `abstract byte[]` | `recoverSessionData(int keyAlgorithm, byte[] key, byte[] seckKeyData)` Decrypts session data from an encrypted data packet.

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

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

    - ### Methods inherited from interface org.bouncycastle.openpgp.operator.PGPDataDecryptorFactory

      `createDataDecryptor`

- - ### Constructor Detail

    - #### PBEDataDecryptorFactory

          protected PBEDataDecryptorFactory(char[] passPhrase,
                                 PGPDigestCalculatorProvider calculatorProvider)

      Construct a PBE data decryptor factory.
      Parameters:
        `passPhrase` - the pass phrase to generate decryption keys with.
        `calculatorProvider` - the digest to use in key generation.

  - ### Method Detail

    - #### makeKeyFromPassPhrase

          public byte[] makeKeyFromPassPhrase(int keyAlgorithm,
                                     S2K s2k)
                                       throws PGPException

      Generates an encryption key using the pass phrase and digest calculator configured for this factory.
      Parameters:
        `keyAlgorithm` - the `encryption algorithm` to generate a key for.
        `s2k` - the string-to-key specification to use to generate the key.
      Returns:
        the key bytes for the encryption algorithm, generated using the pass phrase of this factory.
      Throws:
        `PGPException` - if an error occurs generating the key.

    - #### recoverSessionData

          public abstract byte[] recoverSessionData(int keyAlgorithm,
                                  byte[] key,
                                  byte[] seckKeyData)
                                             throws PGPException

      Decrypts session data from an encrypted data packet.
      Parameters:
        `keyAlgorithm` - the `encryption algorithm` used to encrypt the session data.
        `key` - the key bytes for the encryption algorithm.
        `seckKeyData` - the encrypted session data to decrypt.
      Returns:
        the decrypted session data.
      Throws:
        `PGPException` - if an error occurs decrypting the session data.