<Type Name="ICryptoTransform" FullName="System.Security.Cryptography.ICryptoTransform">
  <TypeSignature Maintainer="auto" Language="C#" Value="public interface ICryptoTransform : IDisposable" />
  <TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract ICryptoTransform implements class System.IDisposable" />
  <AssemblyInfo>
    <AssemblyName>mscorlib</AssemblyName>
    <AssemblyPublicKey>[00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00]</AssemblyPublicKey>
    <AssemblyVersion>1.0.5000.0</AssemblyVersion>
    <AssemblyVersion>2.0.0.0</AssemblyVersion>
    <AssemblyVersion>4.0.0.0</AssemblyVersion>
  </AssemblyInfo>
  <ThreadSafetyStatement>Gtk# is thread aware, but not thread safe; See the &lt;link location="node:gtk-sharp/programming/threads"&gt;Gtk# Thread Programming&lt;/link&gt; for details.</ThreadSafetyStatement>
  <Interfaces>
    <Interface>
      <InterfaceName>System.IDisposable</InterfaceName>
    </Interface>
  </Interfaces>
  <Attributes>
    <Attribute>
      <AttributeName>System.Runtime.InteropServices.ComVisible(true)</AttributeName>
    </Attribute>
  </Attributes>
  <Docs>
    <summary>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.
</summary>
    <remarks>To be added</remarks>
  </Docs>
  <Members>
    <Member MemberName="CanReuseTransform">
      <MemberSignature Language="C#" Value="public bool CanReuseTransform { get; }" />
      <MemberSignature Language="ILAsm" Value=".property instance bool CanReuseTransform" />
      <MemberType>Property</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>Specify if the current transform object can be reused.</summary>
        <value>True if the transform can be reused. False if a new transform must be created for a new operation.</value>
        <remarks>You should never assume that a specific algorithm can be reused without checking this property. A cryptographic implementation can be changed by modifying the machine.config file and by using, directly or indirectly, the <see cref="T:System.Security.Cryptography.CryptoConfig" /> class. The new implementation could behave differently than the old one.</remarks>
      </Docs>
    </Member>
    <Member MemberName="CanTransformMultipleBlocks">
      <MemberSignature Language="C#" Value="public bool CanTransformMultipleBlocks { get; }" />
      <MemberSignature Language="ILAsm" Value=".property instance bool CanTransformMultipleBlocks" />
      <MemberType>Property</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>Specify if the current transform object can process multiple blocks in a single call. </summary>
        <value>True if a single call to either <see cref="M:System.Security.Cryptography.HashAlgorithm.TransformBlock" /> or <see cref="M:System.Security.Cryptography.HashAlgorithm.TransformFinalBlock" /> can process more than one block at the time. False if the data must be processed block per block.</value>
        <remarks>You should never assume that a specific algorithm can transform multiple blocks without checking this property. A cryptographic implementation can be changed by modifying the machine.config file and by using, directly or indirectly, the <see cref="T:System.Security.Cryptography.CryptoConfig" /> class. The new implementation could behave differently than the old one.</remarks>
      </Docs>
    </Member>
    <Member MemberName="InputBlockSize">
      <MemberSignature Language="C#" Value="public int InputBlockSize { get; }" />
      <MemberSignature Language="ILAsm" Value=".property instance int32 InputBlockSize" />
      <MemberType>Property</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>Size of input blocks for the function in bytes.</summary>
        <value>To be added: an object of type 'int'</value>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="OutputBlockSize">
      <MemberSignature Language="C#" Value="public int OutputBlockSize { get; }" />
      <MemberSignature Language="ILAsm" Value=".property instance int32 OutputBlockSize" />
      <MemberType>Property</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>Size of the output blocks of the function in bytes.</summary>
        <value>To be added: an object of type 'int'</value>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="TransformBlock">
      <MemberSignature Language="C#" Value="public int TransformBlock (byte[] inputBuffer, int inputOffset, int inputCount, byte[] outputBuffer, int outputOffset);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance int32 TransformBlock(unsigned int8[] inputBuffer, int32 inputOffset, int32 inputCount, unsigned int8[] outputBuffer, int32 outputOffset) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="inputBuffer" Type="System.Byte[]" />
        <Parameter Name="inputOffset" Type="System.Int32" />
        <Parameter Name="inputCount" Type="System.Int32" />
        <Parameter Name="outputBuffer" Type="System.Byte[]" />
        <Parameter Name="outputOffset" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="inputBuffer">To be added: an object of type 'byte []'</param>
        <param name="inputOffset">To be added: an object of type 'int'</param>
        <param name="inputCount">To be added: an object of type 'int'</param>
        <param name="outputBuffer">To be added: an object of type 'byte []'</param>
        <param name="outputOffset">To be added: an object of type 'int'</param>
        <summary>Process a block of data.</summary>
        <returns>To be added: an object of type 'int'</returns>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="TransformFinalBlock">
      <MemberSignature Language="C#" Value="public byte[] TransformFinalBlock (byte[] inputBuffer, int inputOffset, int inputCount);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance unsigned int8[] TransformFinalBlock(unsigned int8[] inputBuffer, int32 inputOffset, int32 inputCount) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Byte[]</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="inputBuffer" Type="System.Byte[]" />
        <Parameter Name="inputOffset" Type="System.Int32" />
        <Parameter Name="inputCount" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="inputBuffer">To be added: an object of type 'byte []'</param>
        <param name="inputOffset">To be added: an object of type 'int'</param>
        <param name="inputCount">To be added: an object of type 'int'</param>
        <summary>Processes the final part of the data. Also finalizes the function if needed.</summary>
        <returns>To be added: an object of type 'byte []'</returns>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
  </Members>
</Type>
