using System; using System.Security.Cryptography; namespace ICSharpCode.SharpZipLib.Encryption { // Token: 0x02000023 RID: 35 internal class PkzipClassicDecryptCryptoTransform : PkzipClassicCryptoBase, ICryptoTransform, IDisposable { // Token: 0x060000EF RID: 239 RVA: 0x00007DC4 File Offset: 0x00006DC4 internal PkzipClassicDecryptCryptoTransform(byte[] keyBlock) { base.SetKeys(keyBlock); } // Token: 0x060000F0 RID: 240 RVA: 0x00007DD4 File Offset: 0x00006DD4 public byte[] TransformFinalBlock(byte[] inputBuffer, int inputOffset, int inputCount) { byte[] array = new byte[inputCount]; this.TransformBlock(inputBuffer, inputOffset, inputCount, array, 0); return array; } // Token: 0x060000F1 RID: 241 RVA: 0x00007DF8 File Offset: 0x00006DF8 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] ^ base.TransformByte(); outputBuffer[outputOffset++] = b; base.UpdateKeys(b); } return inputCount; } // Token: 0x17000027 RID: 39 // (get) Token: 0x060000F2 RID: 242 RVA: 0x00007E32 File Offset: 0x00006E32 public bool CanReuseTransform { get { return true; } } // Token: 0x17000028 RID: 40 // (get) Token: 0x060000F3 RID: 243 RVA: 0x00007E35 File Offset: 0x00006E35 public int InputBlockSize { get { return 1; } } // Token: 0x17000029 RID: 41 // (get) Token: 0x060000F4 RID: 244 RVA: 0x00007E38 File Offset: 0x00006E38 public int OutputBlockSize { get { return 1; } } // Token: 0x1700002A RID: 42 // (get) Token: 0x060000F5 RID: 245 RVA: 0x00007E3B File Offset: 0x00006E3B public bool CanTransformMultipleBlocks { get { return true; } } // Token: 0x060000F6 RID: 246 RVA: 0x00007E3E File Offset: 0x00006E3E public void Dispose() { base.Reset(); } } }