<PackageReference Include="BouncyCastle.Cryptography" Version="2.4.0" />

ICipher

public interface ICipher
Base interface for a ciphers that do not require data to be block aligned.

Note: In cases where the underlying algorithm is block based, these ciphers may add or remove padding as needed.

Stream Stream { get; }

Gets the stream for reading/writing data processed/to be processed.

int GetMaxOutputSize(int inputLen)

Return the size of the output buffer required for a Write() plus a close() with the write() being passed inputLen bytes.

The returned size may be dependent on the initialisation of this cipher and may not be accurate once subsequent input data is processed as the cipher may add, add or remove padding, as it sees fit.

int GetUpdateOutputSize(int inputLen)

Return the size of the output buffer required for a write() with the write() being passed inputLen bytes and just updating the cipher output.