233 lines
5.9 KiB
C#
233 lines
5.9 KiB
C#
using System;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
|
|
using Cpp2IlInjected;
|
|
|
|
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
|
|
{
|
|
// Token: 0x02001DC7 RID: 7623
|
|
[Token(Token = "0x2001DC7")]
|
|
public abstract class GeneralDigest : IDigest, IMemoable
|
|
{
|
|
// Token: 0x0600BE40 RID: 48704 RVA: 0x002A9864 File Offset: 0x002A7A64
|
|
[Token(Token = "0x600BE40")]
|
|
[Address(RVA = "0x25A4C60", Offset = "0x25A3C60", VA = "0x1825A4C60")]
|
|
internal GeneralDigest()
|
|
{
|
|
byte[] array = new byte[4];
|
|
this.xBuf = array;
|
|
}
|
|
|
|
// Token: 0x0600BE41 RID: 48705 RVA: 0x002A9888 File Offset: 0x002A7A88
|
|
[Token(Token = "0x600BE41")]
|
|
[Address(RVA = "0x25A4CB0", Offset = "0x25A3CB0", VA = "0x1825A4CB0")]
|
|
internal GeneralDigest(GeneralDigest t)
|
|
{
|
|
byte[] array = new byte[t.xBuf.Length];
|
|
this.xBuf = array;
|
|
byte[] array2 = t.xBuf;
|
|
int length = array2.Length;
|
|
int num = 0;
|
|
int num2 = 0;
|
|
Array.Copy(array2, num2, array, num, length);
|
|
int num3 = t.xBufOff;
|
|
this.xBufOff = num3;
|
|
long num4 = t.byteCount;
|
|
this.byteCount = num4;
|
|
}
|
|
|
|
// Token: 0x0600BE42 RID: 48706 RVA: 0x002A98F8 File Offset: 0x002A7AF8
|
|
[Token(Token = "0x600BE42")]
|
|
[Address(RVA = "0x25A4A10", Offset = "0x25A3A10", VA = "0x1825A4A10")]
|
|
protected void CopyIn(GeneralDigest t)
|
|
{
|
|
byte[] array = t.xBuf;
|
|
int length = array.Length;
|
|
int num = 0;
|
|
byte[] array2 = this.xBuf;
|
|
int num2 = 0;
|
|
Array.Copy(array, num2, array2, num, length);
|
|
int num3 = t.xBufOff;
|
|
this.xBufOff = num3;
|
|
long num4 = t.byteCount;
|
|
this.byteCount = num4;
|
|
}
|
|
|
|
// Token: 0x0600BE43 RID: 48707 RVA: 0x002A9950 File Offset: 0x002A7B50
|
|
[Token(Token = "0x600BE43")]
|
|
[Address(RVA = "0x25A4BE0", Offset = "0x25A3BE0", VA = "0x1825A4BE0", Slot = "7")]
|
|
public void Update(byte input)
|
|
{
|
|
byte[] array = this.xBuf;
|
|
int num = this.xBufOff + 1;
|
|
this.xBufOff = num;
|
|
int length = this.xBuf.Length;
|
|
if (this.xBufOff == length)
|
|
{
|
|
this.Reset();
|
|
this.xBufOff = (int)((ulong)0L);
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600BE44 RID: 48708 RVA: 0x002A99A0 File Offset: 0x002A7BA0
|
|
[Token(Token = "0x600BE44")]
|
|
[Address(RVA = "0x25A4820", Offset = "0x25A3820", VA = "0x1825A4820", Slot = "8")]
|
|
public void BlockUpdate(byte[] input, int inOff, int length)
|
|
{
|
|
int num = Math.Max(0, length);
|
|
int num2 = this.xBufOff;
|
|
int num3 = 0;
|
|
if (num2 != 0 && num > 0)
|
|
{
|
|
byte[] array = this.xBuf;
|
|
int num4 = num2 + 1;
|
|
this.xBufOff = num4;
|
|
num3++;
|
|
num3 += inOff;
|
|
int num5 = this.xBufOff;
|
|
if (num5 == 4)
|
|
{
|
|
this.Reset();
|
|
this.xBufOff = (int)((ulong)0L);
|
|
throw new NullReferenceException();
|
|
}
|
|
}
|
|
num -= num3;
|
|
num += num3;
|
|
if (num3 < num)
|
|
{
|
|
this.Reset();
|
|
num3 += 4;
|
|
}
|
|
if (num3 < num)
|
|
{
|
|
int num6 = this.xBufOff;
|
|
byte[] array2 = this.xBuf;
|
|
int num7 = num6 + 1;
|
|
this.xBufOff = num7;
|
|
num3++;
|
|
num3 += inOff;
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600BE45 RID: 48709 RVA: 0x002A9A48 File Offset: 0x002A7C48
|
|
[Token(Token = "0x600BE45")]
|
|
[Address(RVA = "0x25A4A70", Offset = "0x25A3A70", VA = "0x1825A4A70")]
|
|
public void Finish()
|
|
{
|
|
byte[] array = this.xBuf;
|
|
int num = this.xBufOff + 1;
|
|
this.xBufOff = num;
|
|
byte[] array2 = this.xBuf;
|
|
int num2 = this.xBufOff;
|
|
int num3 = 0;
|
|
if (num2 == array2.Length)
|
|
{
|
|
this.Reset();
|
|
this.xBufOff = num3;
|
|
}
|
|
if (num2 != 0)
|
|
{
|
|
byte[] array3 = this.xBuf;
|
|
int num4 = num2 + 1;
|
|
this.xBufOff = num4;
|
|
byte[] array4 = this.xBuf;
|
|
if (this.xBufOff == array4.Length)
|
|
{
|
|
this.Reset();
|
|
this.xBufOff = num3;
|
|
}
|
|
while (num3 != 0)
|
|
{
|
|
}
|
|
}
|
|
this.ProcessBlock();
|
|
}
|
|
|
|
// Token: 0x0600BE46 RID: 48710 RVA: 0x002A9AE8 File Offset: 0x002A7CE8
|
|
[Token(Token = "0x600BE46")]
|
|
[Address(RVA = "0x25A4BB0", Offset = "0x25A3BB0", VA = "0x1825A4BB0", Slot = "13")]
|
|
public virtual void Reset()
|
|
{
|
|
int num = 0;
|
|
this.byteCount = (long)num;
|
|
this.xBufOff = num;
|
|
byte[] array = this.xBuf;
|
|
int length = array.Length;
|
|
int num2 = 0;
|
|
Array.Clear(array, num2, length);
|
|
}
|
|
|
|
// Token: 0x0600BE47 RID: 48711 RVA: 0x002A9B24 File Offset: 0x002A7D24
|
|
[Token(Token = "0x600BE47")]
|
|
[Address(RVA = "0x8BCFC0", Offset = "0x8BBFC0", VA = "0x1808BCFC0", Slot = "6")]
|
|
public int GetByteLength()
|
|
{
|
|
return 64;
|
|
}
|
|
|
|
// Token: 0x0600BE48 RID: 48712
|
|
[Token(Token = "0x600BE48")]
|
|
[Address(Slot = "14")]
|
|
internal abstract void ProcessWord(byte[] input, int inOff);
|
|
|
|
// Token: 0x0600BE49 RID: 48713
|
|
[Token(Token = "0x600BE49")]
|
|
[Address(Slot = "15")]
|
|
internal abstract void ProcessLength(long bitLength);
|
|
|
|
// Token: 0x0600BE4A RID: 48714
|
|
[Token(Token = "0x600BE4A")]
|
|
[Address(Slot = "16")]
|
|
internal abstract void ProcessBlock();
|
|
|
|
// Token: 0x17001DAC RID: 7596
|
|
// (get) Token: 0x0600BE4B RID: 48715
|
|
[Token(Token = "0x17001DAC")]
|
|
public abstract string AlgorithmName
|
|
{
|
|
[Token(Token = "0x600BE4B")]
|
|
[Address(Slot = "17")]
|
|
get;
|
|
}
|
|
|
|
// Token: 0x0600BE4C RID: 48716
|
|
[Token(Token = "0x600BE4C")]
|
|
[Address(Slot = "18")]
|
|
public abstract int GetDigestSize();
|
|
|
|
// Token: 0x0600BE4D RID: 48717
|
|
[Token(Token = "0x600BE4D")]
|
|
[Address(Slot = "19")]
|
|
public abstract int DoFinal(byte[] output, int outOff);
|
|
|
|
// Token: 0x0600BE4E RID: 48718
|
|
[Token(Token = "0x600BE4E")]
|
|
[Address(Slot = "20")]
|
|
public abstract IMemoable Copy();
|
|
|
|
// Token: 0x0600BE4F RID: 48719
|
|
[Token(Token = "0x600BE4F")]
|
|
[Address(Slot = "21")]
|
|
public abstract void Reset(IMemoable t);
|
|
|
|
// Token: 0x0400784D RID: 30797
|
|
[Token(Token = "0x400784D")]
|
|
private const int BYTE_LENGTH = 64;
|
|
|
|
// Token: 0x0400784E RID: 30798
|
|
[FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x400784E")]
|
|
private byte[] xBuf;
|
|
|
|
// Token: 0x0400784F RID: 30799
|
|
[FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x400784F")]
|
|
private int xBufOff;
|
|
|
|
// Token: 0x04007850 RID: 30800
|
|
[FieldOffset(Offset = "0x20")]
|
|
[Token(Token = "0x4007850")]
|
|
private long byteCount;
|
|
}
|
|
}
|