Package 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 | Description
    --- | --- | ---
    `protected` | `PBEDataDecryptorFactory​(char[] passPhrase, PGPDigestCalculatorProvider calculatorProvider)` | Construct a PBE data decryptor factory.

  - ### Method Summary

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