BcPBEDataDecryptorFactory
Date: 2016-06-23

org.bouncycastle.openpgp.operator.bc

## Class BcPBEDataDecryptorFactory

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

- All Implemented Interfaces:
    PGPDataDecryptorFactory

      public class BcPBEDataDecryptorFactory
      extends PBEDataDecryptorFactory

  A `PBEDataDecryptorFactory` for handling PBE decryption operations using the Bouncy Castle lightweight API to implement cryptographic primitives.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `BcPBEDataDecryptorFactory(char[] pass, BcPGPDigestCalculatorProvider calculatorProvider)` Base constructor.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `PGPDataDecryptor` | `createDataDecryptor(boolean withIntegrityPacket, int encAlgorithm, byte[] key)` Constructs a data decryptor.
    `byte[]` | `recoverSessionData(int keyAlgorithm, byte[] key, byte[] secKeyData)` Decrypts session data from an encrypted data packet.

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

      `makeKeyFromPassPhrase`

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

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

- - ### Constructor Detail

    - #### BcPBEDataDecryptorFactory

          public BcPBEDataDecryptorFactory(char[] pass,
                                   BcPGPDigestCalculatorProvider calculatorProvider)

      Base constructor.
      Parameters:
        `pass` - the passphrase to use as the primary source of key material.
        `calculatorProvider` - a digest calculator provider to provide calculators to support the key generation calculation required.

  - ### Method Detail

    - #### recoverSessionData

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

      Description copied from class: `PBEDataDecryptorFactory`
      Decrypts session data from an encrypted data packet.
      Specified by:
        `recoverSessionData` in class `PBEDataDecryptorFactory`
      Parameters:
        `keyAlgorithm` - the `encryption algorithm` used to encrypt the session data.
        `key` - the key bytes for the encryption algorithm.
        `secKeyData` - the encrypted session data to decrypt.
      Returns:
        the decrypted session data.
      Throws:
        `PGPException` - if an error occurs decrypting the session data.

    - #### createDataDecryptor

          public PGPDataDecryptor createDataDecryptor(boolean withIntegrityPacket,
                                             int encAlgorithm,
                                             byte[] key)
                                               throws PGPException

      Description copied from interface: `PGPDataDecryptorFactory`
      Constructs a data decryptor.
      Parameters:
        `withIntegrityPacket` - `true` if the packet to be decrypted has integrity checking enabled.
        `encAlgorithm` - the identifier of the `encryption algorithm` to decrypt with.
        `key` - the bytes of the key for the cipher.
      Returns:
        a data decryptor that can decrypt (and verify) streams of encrypted data.
      Throws:
        `PGPException` - if an error occurs initialising the decryption and integrity checking functions.