// // System.Security.Cryptography ICryptoTransform interface // // Authors: // Matthew S. Ford (Matthew.S.Ford@Rose-Hulman.Edu) // // Copyright 2001 by Matthew S. Ford. // using System.Security.Cryptography; namespace System.Security.Cryptography { /// /// Crytographic functions that can process a stream of bytes implement this interface. /// This works by stringing together one or more ICryptoTransform classes with a stream. /// Data is passed from one to the next without the need of outside buffering/intervention. /// public interface ICryptoTransform { /// /// Whether the function can transform multiple blocks at a time. /// bool CanTransformMultipleBlocks {get;} /// /// Size of input blocks for the function. /// int InputBlockSize {get;} /// /// Size of the output blocks of the function. /// int OutputBlockSize {get;} /// /// FIXME: Process some data. A block at a time? Less than a block at a time? /// int TransformBlock (byte[] inputBuffer, int inputOffset, int inputCount, byte[] outputBuffer, int outputOffset); /// /// Processes the final part of the data. Also finalizes the function if needed. /// byte[] TransformFinalBlock (byte[] inputBuffer, int inputOffset, int inputCount); } }