package org.bouncycastle.openpgp.operator; import java.io.OutputStream; /** * A data encryptor, combining a cipher instance and an optional integrity check calculator. * <p> * {@link PGPDataEncryptor} instances are generally not constructed directly, but obtained from a * {@link PGPDataEncryptorBuilder}. * </p> */ public interface PGPDataEncryptor { /** * Constructs an encrypting output stream that encrypts data using the underlying cipher of this * encryptor. * <p> * The cipher instance in this encryptor is used for all output streams obtained from this * method, so it should only be invoked once. * </p> * @param out the stream to wrap and write encrypted data to. * @return a cipher output stream appropriate to the type of this data encryptor. */ OutputStream getOutputStream(OutputStream out); /** * Obtains the integrity check calculator configured for this encryptor instance. * * @return the integrity check calculator, or <code>null</code> if no integrity checking was * configured. */ PGPDigestCalculator getIntegrityCalculator(); /** * Gets the block size of the underlying cipher used by this encryptor. * * @return the block size in bytes. */ int getBlockSize(); }