using System;
using System.Runtime.InteropServices;
namespace System.Security.Cryptography
{
/// Defines the basic operations of cryptographic transformations.
// Token: 0x02000509 RID: 1289
[ComVisible(true)]
public interface ICryptoTransform : IDisposable
{
/// Gets a value indicating whether the current transform can be reused.
/// true if the current transform can be reused; otherwise, false.
// Token: 0x17000963 RID: 2403
// (get) Token: 0x06002F83 RID: 12163
bool CanReuseTransform { get; }
/// Gets a value indicating whether multiple blocks can be transformed.
/// true if multiple blocks can be transformed; otherwise, false.
// Token: 0x17000964 RID: 2404
// (get) Token: 0x06002F84 RID: 12164
bool CanTransformMultipleBlocks { get; }
/// Gets the input block size.
/// The size of the input data blocks in bytes.
// Token: 0x17000965 RID: 2405
// (get) Token: 0x06002F85 RID: 12165
int InputBlockSize { get; }
/// Gets the output block size.
/// The size of the output data blocks in bytes.
// Token: 0x17000966 RID: 2406
// (get) Token: 0x06002F86 RID: 12166
int OutputBlockSize { get; }
/// Transforms the specified region of the input byte array and copies the resulting transform to the specified region of the output byte array.
/// The number of bytes written.
/// The input for which to compute the transform.
/// The offset into the input byte array from which to begin using data.
/// The number of bytes in the input byte array to use as data.
/// The output to which to write the transform.
/// The offset into the output byte array from which to begin writing data.
// Token: 0x06002F87 RID: 12167
int TransformBlock(byte[] inputBuffer, int inputOffset, int inputCount, byte[] outputBuffer, int outputOffset);
/// Transforms the specified region of the specified byte array.
/// The computed transform.
/// The input for which to compute the transform.
/// The offset into the byte array from which to begin using data.
/// The number of bytes in the byte array to use as data.
// Token: 0x06002F88 RID: 12168
byte[] TransformFinalBlock(byte[] inputBuffer, int inputOffset, int inputCount);
}
}