scripts
This commit is contained in:
@@ -0,0 +1,100 @@
|
||||
using System;
|
||||
|
||||
namespace ICSharpCode.SharpZipLib.Checksums
|
||||
{
|
||||
// Token: 0x0200000A RID: 10
|
||||
public sealed class Adler32 : IChecksum
|
||||
{
|
||||
// Token: 0x1700000F RID: 15
|
||||
// (get) Token: 0x0600006D RID: 109 RVA: 0x000060C1 File Offset: 0x000050C1
|
||||
public long Value
|
||||
{
|
||||
get
|
||||
{
|
||||
return (long)((ulong)this.checksum);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600006E RID: 110 RVA: 0x000060CA File Offset: 0x000050CA
|
||||
public Adler32()
|
||||
{
|
||||
this.Reset();
|
||||
}
|
||||
|
||||
// Token: 0x0600006F RID: 111 RVA: 0x000060D8 File Offset: 0x000050D8
|
||||
public void Reset()
|
||||
{
|
||||
this.checksum = 1U;
|
||||
}
|
||||
|
||||
// Token: 0x06000070 RID: 112 RVA: 0x000060E4 File Offset: 0x000050E4
|
||||
public void Update(int value)
|
||||
{
|
||||
uint num = this.checksum & 65535U;
|
||||
uint num2 = this.checksum >> 16;
|
||||
num = (num + (uint)(value & 255)) % 65521U;
|
||||
num2 = (num + num2) % 65521U;
|
||||
this.checksum = (num2 << 16) + num;
|
||||
}
|
||||
|
||||
// Token: 0x06000071 RID: 113 RVA: 0x0000612E File Offset: 0x0000512E
|
||||
public void Update(byte[] buffer)
|
||||
{
|
||||
if (buffer == null)
|
||||
{
|
||||
throw new ArgumentNullException("buffer");
|
||||
}
|
||||
this.Update(buffer, 0, buffer.Length);
|
||||
}
|
||||
|
||||
// Token: 0x06000072 RID: 114 RVA: 0x0000614C File Offset: 0x0000514C
|
||||
public void Update(byte[] buffer, int offset, int count)
|
||||
{
|
||||
if (buffer == null)
|
||||
{
|
||||
throw new ArgumentNullException("buffer");
|
||||
}
|
||||
if (offset < 0)
|
||||
{
|
||||
throw new ArgumentOutOfRangeException("offset", "cannot be negative");
|
||||
}
|
||||
if (count < 0)
|
||||
{
|
||||
throw new ArgumentOutOfRangeException("count", "cannot be negative");
|
||||
}
|
||||
if (offset >= buffer.Length)
|
||||
{
|
||||
throw new ArgumentOutOfRangeException("offset", "not a valid index into buffer");
|
||||
}
|
||||
if (offset + count > buffer.Length)
|
||||
{
|
||||
throw new ArgumentOutOfRangeException("count", "exceeds buffer size");
|
||||
}
|
||||
uint num = this.checksum & 65535U;
|
||||
uint num2 = this.checksum >> 16;
|
||||
while (count > 0)
|
||||
{
|
||||
int num3 = 3800;
|
||||
if (num3 > count)
|
||||
{
|
||||
num3 = count;
|
||||
}
|
||||
count -= num3;
|
||||
while (--num3 >= 0)
|
||||
{
|
||||
num += (uint)(buffer[offset++] & byte.MaxValue);
|
||||
num2 += num;
|
||||
}
|
||||
num %= 65521U;
|
||||
num2 %= 65521U;
|
||||
}
|
||||
this.checksum = (num2 << 16) | num;
|
||||
}
|
||||
|
||||
// Token: 0x04000066 RID: 102
|
||||
private const uint BASE = 65521U;
|
||||
|
||||
// Token: 0x04000067 RID: 103
|
||||
private uint checksum;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user