using System; using System.Security.Cryptography; namespace ICSharpCode.SharpZipLib.Encryption { // Token: 0x02000022 RID: 34 internal class PkzipClassicEncryptCryptoTransform : PkzipClassicCryptoBase, ICryptoTransform, IDisposable { // Token: 0x060000E7 RID: 231 RVA: 0x00007D3F File Offset: 0x00006D3F internal PkzipClassicEncryptCryptoTransform(byte[] keyBlock) { base.SetKeys(keyBlock); } // Token: 0x060000E8 RID: 232 RVA: 0x00007D50 File Offset: 0x00006D50 public byte[] TransformFinalBlock(byte[] inputBuffer, int inputOffset, int inputCount) { byte[] array = new byte[inputCount]; this.TransformBlock(inputBuffer, inputOffset, inputCount, array, 0); return array; } // Token: 0x060000E9 RID: 233 RVA: 0x00007D74 File Offset: 0x00006D74 public int TransformBlock(byte[] inputBuffer, int inputOffset, int inputCount, byte[] outputBuffer, int outputOffset) { for (int i = inputOffset; i < inputOffset + inputCount; i++) { byte b = inputBuffer[i]; outputBuffer[outputOffset++] = inputBuffer[i] ^ base.TransformByte(); base.UpdateKeys(b); } return inputCount; } // Token: 0x17000023 RID: 35 // (get) Token: 0x060000EA RID: 234 RVA: 0x00007DB0 File Offset: 0x00006DB0 public bool CanReuseTransform { get { return true; } } // Token: 0x17000024 RID: 36 // (get) Token: 0x060000EB RID: 235 RVA: 0x00007DB3 File Offset: 0x00006DB3 public int InputBlockSize { get { return 1; } } // Token: 0x17000025 RID: 37 // (get) Token: 0x060000EC RID: 236 RVA: 0x00007DB6 File Offset: 0x00006DB6 public int OutputBlockSize { get { return 1; } } // Token: 0x17000026 RID: 38 // (get) Token: 0x060000ED RID: 237 RVA: 0x00007DB9 File Offset: 0x00006DB9 public bool CanTransformMultipleBlocks { get { return true; } } // Token: 0x060000EE RID: 238 RVA: 0x00007DBC File Offset: 0x00006DBC public void Dispose() { base.Reset(); } } }