package org.bouncycastle.operator; import java.io.OutputStream; import org.bouncycastle.asn1.x509.AlgorithmIdentifier; /** * General interface for an operator that is able to produce * an OutputStream that will output encrypted data. */ public interface OutputEncryptor { /** * Return the algorithm identifier describing the encryption * algorithm and parameters this encryptor uses. * * @return algorithm oid and parameters. */ AlgorithmIdentifier getAlgorithmIdentifier(); /** * Wrap the passed in output stream encOut, returning an output stream * that encrypts anything passed in before sending on to encOut. * * @param encOut output stream for encrypted output. * @return an encrypting OutputStream */ OutputStream getOutputStream(OutputStream encOut); /** * Return the key used for encrypting the output. * * @return the encryption key. */ GenericKey getKey(); }