Class PBEDataDecryptorFactory

java.lang.Object
org.bouncycastle.openpgp.operator.PBEDataDecryptorFactory
All Implemented Interfaces:
PGPDataDecryptorFactory
Direct Known Subclasses:
BcPBEDataDecryptorFactory

public abstract class PBEDataDecryptorFactory extends Object implements PGPDataDecryptorFactory
A factory for performing PBE decryption operations. The purpose of this class is to act as an abstract factory, whose subclasses can decide, which concrete implementation to use for symmetric decryption of SKESK (symmetric-key-encrypted session-key) packets.
  • Constructor Details

    • 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 Details

    • 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 a v4 SKESK packet. These are used in OpenPGP v4.
      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.
    • recoverAEADEncryptedSessionData

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