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 Details

    • BcPBEDataDecryptorFactory

      public BcPBEDataDecryptorFactory(char[] pass, PGPDigestCalculatorProvider 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 Details

    • recoverSessionData

      public byte[] recoverSessionData(int keyAlgorithm, byte[] key, byte[] secKeyData) throws PGPException
      Recover the session key from a version 4 SKESK packet used in OpenPGP v4.
      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:
      session key
      Throws:
      PGPException
    • recoverAEADEncryptedSessionData

      public byte[] recoverAEADEncryptedSessionData(SymmetricKeyEncSessionPacket keyData, byte[] ikm) throws PGPException
      Description copied from class: PBEDataDecryptorFactory
      Recover the session data of a v5 SKESK or v6 SKESK packet. These are used in OpenPGP v5 and v6.
      Specified by:
      recoverAEADEncryptedSessionData in class PBEDataDecryptorFactory
      Parameters:
      keyData - v5 or v6 SKESK packet
      ikm - initial keying material (e.g. S2K result)
      Returns:
      session key
      Throws:
      PGPException
    • createDataDecryptor

      public PGPDataDecryptor createDataDecryptor(boolean withIntegrityPacket, int encAlgorithm, byte[] key) throws PGPException
      Description copied from interface: PGPDataDecryptorFactory
      Constructs a data decryptor for SED or v1 SEIPD packets.
      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.
    • createDataDecryptor

      public PGPDataDecryptor createDataDecryptor(AEADEncDataPacket aeadEncDataPacket, PGPSessionKey sessionKey) throws PGPException
      Description copied from interface: PGPDataDecryptorFactory
      Constructs a data decryptor for AEAD Encrypted Data packets. This method is used with OpenPGP v5 AEAD.
      Parameters:
      aeadEncDataPacket - AEAD encrypted data packet
      sessionKey - decrypted session key
      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.
    • createDataDecryptor

      public PGPDataDecryptor createDataDecryptor(SymmetricEncIntegrityPacket seipd, PGPSessionKey sessionKey) throws PGPException
      Description copied from interface: PGPDataDecryptorFactory
      Constructs a data decryptor for v2 SEIPD packets. This method is used with OpenPGP v6 AEAD.
      Parameters:
      seipd - version 2 symmetrically encrypted integrity-protected data packet using AEAD.
      sessionKey - decrypted session key
      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.