scripts
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
using System;
|
||||
using ICSharpCode.SharpZipLib.Checksums;
|
||||
|
||||
namespace ICSharpCode.SharpZipLib.Encryption
|
||||
{
|
||||
// Token: 0x02000021 RID: 33
|
||||
internal class PkzipClassicCryptoBase
|
||||
{
|
||||
// Token: 0x060000E2 RID: 226 RVA: 0x00007BE0 File Offset: 0x00006BE0
|
||||
protected byte TransformByte()
|
||||
{
|
||||
uint num = (this.keys[2] & 65535U) | 2U;
|
||||
return (byte)(num * (num ^ 1U) >> 8);
|
||||
}
|
||||
|
||||
// Token: 0x060000E3 RID: 227 RVA: 0x00007C08 File Offset: 0x00006C08
|
||||
protected void SetKeys(byte[] keyData)
|
||||
{
|
||||
if (keyData == null)
|
||||
{
|
||||
throw new ArgumentNullException("keyData");
|
||||
}
|
||||
if (keyData.Length != 12)
|
||||
{
|
||||
throw new InvalidOperationException("Key length is not valid");
|
||||
}
|
||||
this.keys = new uint[3];
|
||||
this.keys[0] = (uint)(((int)keyData[3] << 24) | ((int)keyData[2] << 16) | ((int)keyData[1] << 8) | (int)keyData[0]);
|
||||
this.keys[1] = (uint)(((int)keyData[7] << 24) | ((int)keyData[6] << 16) | ((int)keyData[5] << 8) | (int)keyData[4]);
|
||||
this.keys[2] = (uint)(((int)keyData[11] << 24) | ((int)keyData[10] << 16) | ((int)keyData[9] << 8) | (int)keyData[8]);
|
||||
}
|
||||
|
||||
// Token: 0x060000E4 RID: 228 RVA: 0x00007CA4 File Offset: 0x00006CA4
|
||||
protected void UpdateKeys(byte ch)
|
||||
{
|
||||
this.keys[0] = Crc32.ComputeCrc32(this.keys[0], ch);
|
||||
this.keys[1] = this.keys[1] + (uint)((byte)this.keys[0]);
|
||||
this.keys[1] = this.keys[1] * 134775813U + 1U;
|
||||
this.keys[2] = Crc32.ComputeCrc32(this.keys[2], (byte)(this.keys[1] >> 24));
|
||||
}
|
||||
|
||||
// Token: 0x060000E5 RID: 229 RVA: 0x00007D1A File Offset: 0x00006D1A
|
||||
protected void Reset()
|
||||
{
|
||||
this.keys[0] = 0U;
|
||||
this.keys[1] = 0U;
|
||||
this.keys[2] = 0U;
|
||||
}
|
||||
|
||||
// Token: 0x04000089 RID: 137
|
||||
private uint[] keys;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user