package org.bouncycastle.openpgp.operator;
import org.bouncycastle.bcpg.SymmetricKeyAlgorithmTags;
import org.bouncycastle.openpgp.PGPException;
/**
* Base interface of factories for {@link PGPDataDecryptor}.
*/
public interface PGPDataDecryptorFactory
{
/**
* Constructs a data decryptor.
*
* @param withIntegrityPacket <code>true</code> if the packet to be decrypted has integrity
* checking enabled.
* @param encAlgorithm the identifier of the {@link SymmetricKeyAlgorithmTags encryption
* algorithm} to decrypt with.
* @param key the bytes of the key for the cipher.
* @return 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.
*/
public PGPDataDecryptor createDataDecryptor(boolean withIntegrityPacket, int encAlgorithm, byte[] key)
throws PGPException;
}