#if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR) using System; namespace Org.BouncyCastle.Crypto { /// Block cipher engines are expected to conform to this interface. public interface IBufferedCipher { /// The name of the algorithm this cipher implements. string AlgorithmName { get; } /// Initialise the cipher. /// If true the cipher is initialised for encryption, /// if false for decryption. /// The key and other data required by the cipher. void Init(bool forEncryption, ICipherParameters parameters); int GetBlockSize(); int GetOutputSize(int inputLen); int GetUpdateOutputSize(int inputLen); byte[] ProcessByte(byte input); int ProcessByte(byte input, byte[] output, int outOff); byte[] ProcessBytes(byte[] input); byte[] ProcessBytes(byte[] input, int inOff, int length); int ProcessBytes(byte[] input, byte[] output, int outOff); int ProcessBytes(byte[] input, int inOff, int length, byte[] output, int outOff); byte[] DoFinal(); byte[] DoFinal(byte[] input); byte[] DoFinal(byte[] input, int inOff, int length); int DoFinal(byte[] output, int outOff); int DoFinal(byte[] input, byte[] output, int outOff); int DoFinal(byte[] input, int inOff, int length, byte[] output, int outOff); /// /// Reset the cipher. After resetting the cipher is in the same state /// as it was after the last init (if there was one). /// void Reset(); } } #endif