235 lines
6.0 KiB
C#
235 lines
6.0 KiB
C#
using System;
|
|
using System.Runtime.InteropServices;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
|
|
using Cpp2IlInjected;
|
|
|
|
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
|
|
{
|
|
// Token: 0x0200170A RID: 5898
|
|
[Token(Token = "0x200170A")]
|
|
[StructLayout(3)]
|
|
public abstract class GeneralDigest : IDigest, IMemoable
|
|
{
|
|
// Token: 0x06009E98 RID: 40600 RVA: 0x00248DA8 File Offset: 0x00246FA8
|
|
[Token(Token = "0x6009E98")]
|
|
[Address(RVA = "0x21803A0", Offset = "0x217EDA0", VA = "0x1821803A0")]
|
|
internal GeneralDigest()
|
|
{
|
|
byte[] array = new byte[4];
|
|
this.xBuf = array;
|
|
}
|
|
|
|
// Token: 0x06009E99 RID: 40601 RVA: 0x00248DCC File Offset: 0x00246FCC
|
|
[Token(Token = "0x6009E99")]
|
|
[Address(RVA = "0x21803F0", Offset = "0x217EDF0", VA = "0x1821803F0")]
|
|
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: 0x06009E9A RID: 40602 RVA: 0x00248E3C File Offset: 0x0024703C
|
|
[Token(Token = "0x6009E9A")]
|
|
[Address(RVA = "0x2180150", Offset = "0x217EB50", VA = "0x182180150")]
|
|
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: 0x06009E9B RID: 40603 RVA: 0x00248E94 File Offset: 0x00247094
|
|
[Token(Token = "0x6009E9B")]
|
|
[Address(RVA = "0x2180320", Offset = "0x217ED20", VA = "0x182180320", 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: 0x06009E9C RID: 40604 RVA: 0x00248EE4 File Offset: 0x002470E4
|
|
[Token(Token = "0x6009E9C")]
|
|
[Address(RVA = "0x217FF60", Offset = "0x217E960", VA = "0x18217FF60", 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: 0x06009E9D RID: 40605 RVA: 0x00248F8C File Offset: 0x0024718C
|
|
[Token(Token = "0x6009E9D")]
|
|
[Address(RVA = "0x21801B0", Offset = "0x217EBB0", VA = "0x1821801B0")]
|
|
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: 0x06009E9E RID: 40606 RVA: 0x0024902C File Offset: 0x0024722C
|
|
[Token(Token = "0x6009E9E")]
|
|
[Address(RVA = "0x21802F0", Offset = "0x217ECF0", VA = "0x1821802F0", 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: 0x06009E9F RID: 40607 RVA: 0x00249068 File Offset: 0x00247268
|
|
[Token(Token = "0x6009E9F")]
|
|
[Address(RVA = "0x2062AA0", Offset = "0x20614A0", VA = "0x182062AA0", Slot = "6")]
|
|
public int GetByteLength()
|
|
{
|
|
return 64;
|
|
}
|
|
|
|
// Token: 0x06009EA0 RID: 40608
|
|
[Token(Token = "0x6009EA0")]
|
|
[Address(Slot = "14")]
|
|
internal abstract void ProcessWord(byte[] input, int inOff);
|
|
|
|
// Token: 0x06009EA1 RID: 40609
|
|
[Token(Token = "0x6009EA1")]
|
|
[Address(Slot = "15")]
|
|
internal abstract void ProcessLength(long bitLength);
|
|
|
|
// Token: 0x06009EA2 RID: 40610
|
|
[Token(Token = "0x6009EA2")]
|
|
[Address(Slot = "16")]
|
|
internal abstract void ProcessBlock();
|
|
|
|
// Token: 0x1700190E RID: 6414
|
|
// (get) Token: 0x06009EA3 RID: 40611
|
|
[Token(Token = "0x1700190E")]
|
|
public abstract string AlgorithmName
|
|
{
|
|
[Token(Token = "0x6009EA3")]
|
|
[Address(Slot = "17")]
|
|
get;
|
|
}
|
|
|
|
// Token: 0x06009EA4 RID: 40612
|
|
[Token(Token = "0x6009EA4")]
|
|
[Address(Slot = "18")]
|
|
public abstract int GetDigestSize();
|
|
|
|
// Token: 0x06009EA5 RID: 40613
|
|
[Token(Token = "0x6009EA5")]
|
|
[Address(Slot = "19")]
|
|
public abstract int DoFinal(byte[] output, int outOff);
|
|
|
|
// Token: 0x06009EA6 RID: 40614
|
|
[Token(Token = "0x6009EA6")]
|
|
[Address(Slot = "20")]
|
|
public abstract IMemoable Copy();
|
|
|
|
// Token: 0x06009EA7 RID: 40615
|
|
[Token(Token = "0x6009EA7")]
|
|
[Address(Slot = "21")]
|
|
public abstract void Reset(IMemoable t);
|
|
|
|
// Token: 0x04006851 RID: 26705
|
|
[Token(Token = "0x4006851")]
|
|
private const int BYTE_LENGTH = 64;
|
|
|
|
// Token: 0x04006852 RID: 26706
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x4006852")]
|
|
private byte[] xBuf;
|
|
|
|
// Token: 0x04006853 RID: 26707
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x4006853")]
|
|
private int xBufOff;
|
|
|
|
// Token: 0x04006854 RID: 26708
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
|
[Token(Token = "0x4006854")]
|
|
private long byteCount;
|
|
}
|
|
}
|