346 lines
11 KiB
C#
346 lines
11 KiB
C#
using System;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
|
|
using Cpp2IlInjected;
|
|
|
|
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
|
|
{
|
|
// Token: 0x02001DCC RID: 7628
|
|
[Token(Token = "0x2001DCC")]
|
|
public class MD5Digest : GeneralDigest
|
|
{
|
|
// Token: 0x0600BEA0 RID: 48800 RVA: 0x002ABAD0 File Offset: 0x002A9CD0
|
|
[Token(Token = "0x600BEA0")]
|
|
[Address(RVA = "0x2900810", Offset = "0x28FF810", VA = "0x182900810")]
|
|
public MD5Digest()
|
|
{
|
|
uint[] array = new uint[16];
|
|
this.X = array;
|
|
base..ctor();
|
|
IMemoable memoable = ((IMemoable)this).Copy();
|
|
}
|
|
|
|
// Token: 0x0600BEA1 RID: 48801 RVA: 0x002ABAFC File Offset: 0x002A9CFC
|
|
[Token(Token = "0x600BEA1")]
|
|
[Address(RVA = "0x2900870", Offset = "0x28FF870", VA = "0x182900870")]
|
|
public MD5Digest(MD5Digest t)
|
|
{
|
|
uint[] array = new uint[16];
|
|
this.X = array;
|
|
base..ctor(t);
|
|
this.CopyIn(t);
|
|
}
|
|
|
|
// Token: 0x0600BEA2 RID: 48802 RVA: 0x002ABB28 File Offset: 0x002A9D28
|
|
[Token(Token = "0x600BEA2")]
|
|
[Address(RVA = "0x28FE130", Offset = "0x28FD130", VA = "0x1828FE130")]
|
|
private void CopyIn(MD5Digest t)
|
|
{
|
|
base.CopyIn(t);
|
|
uint h = t.H1;
|
|
this.H1 = h;
|
|
uint h2 = t.H2;
|
|
this.H2 = h2;
|
|
uint h3 = t.H3;
|
|
this.H3 = h3;
|
|
uint h4 = t.H4;
|
|
this.H4 = h4;
|
|
uint[] x = t.X;
|
|
int length = x.Length;
|
|
int num = 0;
|
|
uint[] x2 = this.X;
|
|
int num2 = 0;
|
|
Array.Copy(x, num2, x2, num, length);
|
|
int num3 = t.xOff;
|
|
this.xOff = num3;
|
|
}
|
|
|
|
// Token: 0x17001DB1 RID: 7601
|
|
// (get) Token: 0x0600BEA3 RID: 48803 RVA: 0x002ABBB8 File Offset: 0x002A9DB8
|
|
[Token(Token = "0x17001DB1")]
|
|
public override string AlgorithmName
|
|
{
|
|
[Token(Token = "0x600BEA3")]
|
|
[Address(RVA = "0x29008E0", Offset = "0x28FF8E0", VA = "0x1829008E0", Slot = "17")]
|
|
get
|
|
{
|
|
return "MD5";
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600BEA4 RID: 48804 RVA: 0x002ABBCC File Offset: 0x002A9DCC
|
|
[Token(Token = "0x600BEA4")]
|
|
[Address(RVA = "0x8BB9C0", Offset = "0x8BA9C0", VA = "0x1808BB9C0", Slot = "18")]
|
|
public override int GetDigestSize()
|
|
{
|
|
return 16;
|
|
}
|
|
|
|
// Token: 0x0600BEA5 RID: 48805 RVA: 0x002ABBDC File Offset: 0x002A9DDC
|
|
[Token(Token = "0x600BEA5")]
|
|
[Address(RVA = "0x2900560", Offset = "0x28FF560", VA = "0x182900560", Slot = "14")]
|
|
internal override void ProcessWord(byte[] input, int inOff)
|
|
{
|
|
uint[] x = this.X;
|
|
int num = this.xOff;
|
|
x[0] = (uint)inOff;
|
|
int num2 = this.xOff;
|
|
num2++;
|
|
this.xOff = num2;
|
|
if (num2 == 16)
|
|
{
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600BEA6 RID: 48806 RVA: 0x002ABC1C File Offset: 0x002A9E1C
|
|
[Token(Token = "0x600BEA6")]
|
|
[Address(RVA = "0x2900470", Offset = "0x28FF470", VA = "0x182900470", Slot = "15")]
|
|
internal override void ProcessLength(long bitLength)
|
|
{
|
|
int num = this.xOff;
|
|
int num2 = 0;
|
|
if (num > 14 && num == 15)
|
|
{
|
|
this.X[7] = (uint)num2;
|
|
}
|
|
int num3 = this.xOff;
|
|
if (num3 < 14)
|
|
{
|
|
uint[] x = this.X;
|
|
num3++;
|
|
x[0] = (uint)num2;
|
|
}
|
|
this.X[7] = (uint)bitLength;
|
|
this.X[7] = (uint)bitLength;
|
|
}
|
|
|
|
// Token: 0x0600BEA7 RID: 48807 RVA: 0x002ABC8C File Offset: 0x002A9E8C
|
|
[Token(Token = "0x600BEA7")]
|
|
[Address(RVA = "0x28FF380", Offset = "0x28FE380", VA = "0x1828FF380", Slot = "19")]
|
|
public override int DoFinal(byte[] output, int outOff)
|
|
{
|
|
base.Finish();
|
|
Ed25519.Encode32(this.H1, output, outOff);
|
|
Ed25519.Encode32(this.H2, output, outOff);
|
|
Ed25519.Encode32(this.H3, output, outOff);
|
|
Ed25519.Encode32(this.H4, output, outOff);
|
|
return 16;
|
|
}
|
|
|
|
// Token: 0x0600BEA8 RID: 48808 RVA: 0x002ABCD8 File Offset: 0x002A9ED8
|
|
[Token(Token = "0x600BEA8")]
|
|
[Address(RVA = "0x28FF010", Offset = "0x28FE010", VA = "0x1828FF010", Slot = "13")]
|
|
public override void Reset()
|
|
{
|
|
base.Reset();
|
|
uint[] x = this.X;
|
|
int num = 0;
|
|
this.H1 = (uint)((ulong)1732584193L);
|
|
this.H2 = (uint)((ulong)4023233417L);
|
|
this.H3 = (uint)((ulong)2562383102L);
|
|
this.H4 = (uint)((ulong)271733878L);
|
|
this.xOff = num;
|
|
if (num != x.Length)
|
|
{
|
|
num++;
|
|
x[0] = (uint)num;
|
|
uint[] x2 = this.X;
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600BEA9 RID: 48809 RVA: 0x002ABD58 File Offset: 0x002A9F58
|
|
[Token(Token = "0x600BEA9")]
|
|
[Address(RVA = "0x273A370", Offset = "0x2739370", VA = "0x18273A370")]
|
|
private static uint RotateLeft(uint x, int n)
|
|
{
|
|
return x;
|
|
}
|
|
|
|
// Token: 0x0600BEAA RID: 48810 RVA: 0x002ABD68 File Offset: 0x002A9F68
|
|
[Token(Token = "0x600BEAA")]
|
|
[Address(RVA = "0x101E210", Offset = "0x101D210", VA = "0x18101E210")]
|
|
private static uint F(uint u, uint v, uint w)
|
|
{
|
|
return u;
|
|
}
|
|
|
|
// Token: 0x0600BEAB RID: 48811 RVA: 0x002ABD78 File Offset: 0x002A9F78
|
|
[Token(Token = "0x600BEAB")]
|
|
[Address(RVA = "0x101E250", Offset = "0x101D250", VA = "0x18101E250")]
|
|
private static uint G(uint u, uint v, uint w)
|
|
{
|
|
return w;
|
|
}
|
|
|
|
// Token: 0x0600BEAC RID: 48812 RVA: 0x002ABD88 File Offset: 0x002A9F88
|
|
[Token(Token = "0x600BEAC")]
|
|
[Address(RVA = "0x101E200", Offset = "0x101D200", VA = "0x18101E200")]
|
|
private static uint H(uint u, uint v, uint w)
|
|
{
|
|
return u;
|
|
}
|
|
|
|
// Token: 0x0600BEAD RID: 48813 RVA: 0x002ABD98 File Offset: 0x002A9F98
|
|
[Token(Token = "0x600BEAD")]
|
|
[Address(RVA = "0x28FF410", Offset = "0x28FE410", VA = "0x1828FF410")]
|
|
private static uint K(uint u, uint v, uint w)
|
|
{
|
|
return w;
|
|
}
|
|
|
|
// Token: 0x0600BEAE RID: 48814 RVA: 0x002ABDA8 File Offset: 0x002A9FA8
|
|
[Token(Token = "0x600BEAE")]
|
|
[Address(RVA = "0x28FF420", Offset = "0x28FE420", VA = "0x1828FF420", Slot = "16")]
|
|
internal override void ProcessBlock()
|
|
{
|
|
uint h = this.H2;
|
|
uint[] x = this.X;
|
|
int length = x.Length;
|
|
int num = MD5Digest.S21;
|
|
uint num2 = x[7];
|
|
num += -2022574463;
|
|
}
|
|
|
|
// Token: 0x0600BEAF RID: 48815 RVA: 0x002ABDE8 File Offset: 0x002A9FE8
|
|
[Token(Token = "0x600BEAF")]
|
|
[Address(RVA = "0x28FF2E0", Offset = "0x28FE2E0", VA = "0x1828FF2E0", Slot = "20")]
|
|
public override IMemoable Copy()
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (0600BEAF)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.MD5Digest::Copy()
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
Block_0:
|
|
stloc:MD5Digest(var_0_06, newobj:MD5Digest(MD5Digest::.ctor, ldloc:MD5Digest(this)))
|
|
stloc:uint32[](var_1_0E, newarr:uint32[]([mscorlib]System.UInt32, ldc.i4:int32(16)))
|
|
stfld:uint32[](MD5Digest::X, ldloc:MD5Digest(var_0_06), ldloc:uint32[](var_1_0E))
|
|
call:void(MD5Digest::CopyIn, ldloc:MD5Digest(var_0_06), ldloc:MD5Digest(this))
|
|
}
|
|
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
|
--- End of inner exception stack trace ---
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
|
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
|
*/;
|
|
}
|
|
|
|
// Token: 0x0600BEB0 RID: 48816 RVA: 0x002ABE14 File Offset: 0x002AA014
|
|
[Token(Token = "0x600BEB0")]
|
|
[Address(RVA = "0x29005F0", Offset = "0x28FF5F0", VA = "0x1829005F0", Slot = "21")]
|
|
public override void Reset(IMemoable other)
|
|
{
|
|
do
|
|
{
|
|
if (other == 0)
|
|
{
|
|
}
|
|
}
|
|
while (other == 0);
|
|
}
|
|
|
|
// Token: 0x04007884 RID: 30852
|
|
[Token(Token = "0x4007884")]
|
|
private const int DigestLength = 16;
|
|
|
|
// Token: 0x04007885 RID: 30853
|
|
[FieldOffset(Offset = "0x28")]
|
|
[Token(Token = "0x4007885")]
|
|
private uint H1;
|
|
|
|
// Token: 0x04007886 RID: 30854
|
|
[FieldOffset(Offset = "0x2C")]
|
|
[Token(Token = "0x4007886")]
|
|
private uint H2;
|
|
|
|
// Token: 0x04007887 RID: 30855
|
|
[FieldOffset(Offset = "0x30")]
|
|
[Token(Token = "0x4007887")]
|
|
private uint H3;
|
|
|
|
// Token: 0x04007888 RID: 30856
|
|
[FieldOffset(Offset = "0x34")]
|
|
[Token(Token = "0x4007888")]
|
|
private uint H4;
|
|
|
|
// Token: 0x04007889 RID: 30857
|
|
[FieldOffset(Offset = "0x38")]
|
|
[Token(Token = "0x4007889")]
|
|
private uint[] X;
|
|
|
|
// Token: 0x0400788A RID: 30858
|
|
[FieldOffset(Offset = "0x40")]
|
|
[Token(Token = "0x400788A")]
|
|
private int xOff;
|
|
|
|
// Token: 0x0400788B RID: 30859
|
|
[Token(Token = "0x400788B")]
|
|
private static readonly int S11;
|
|
|
|
// Token: 0x0400788C RID: 30860
|
|
[Token(Token = "0x400788C")]
|
|
private static readonly int S12;
|
|
|
|
// Token: 0x0400788D RID: 30861
|
|
[Token(Token = "0x400788D")]
|
|
private static readonly int S13;
|
|
|
|
// Token: 0x0400788E RID: 30862
|
|
[Token(Token = "0x400788E")]
|
|
private static readonly int S14;
|
|
|
|
// Token: 0x0400788F RID: 30863
|
|
[Token(Token = "0x400788F")]
|
|
private static readonly int S21;
|
|
|
|
// Token: 0x04007890 RID: 30864
|
|
[Token(Token = "0x4007890")]
|
|
private static readonly int S22;
|
|
|
|
// Token: 0x04007891 RID: 30865
|
|
[Token(Token = "0x4007891")]
|
|
private static readonly int S23;
|
|
|
|
// Token: 0x04007892 RID: 30866
|
|
[Token(Token = "0x4007892")]
|
|
private static readonly int S24;
|
|
|
|
// Token: 0x04007893 RID: 30867
|
|
[Token(Token = "0x4007893")]
|
|
private static readonly int S31;
|
|
|
|
// Token: 0x04007894 RID: 30868
|
|
[Token(Token = "0x4007894")]
|
|
private static readonly int S32;
|
|
|
|
// Token: 0x04007895 RID: 30869
|
|
[Token(Token = "0x4007895")]
|
|
private static readonly int S33;
|
|
|
|
// Token: 0x04007896 RID: 30870
|
|
[Token(Token = "0x4007896")]
|
|
private static readonly int S34;
|
|
|
|
// Token: 0x04007897 RID: 30871
|
|
[Token(Token = "0x4007897")]
|
|
private static readonly int S41;
|
|
|
|
// Token: 0x04007898 RID: 30872
|
|
[Token(Token = "0x4007898")]
|
|
private static readonly int S42;
|
|
|
|
// Token: 0x04007899 RID: 30873
|
|
[Token(Token = "0x4007899")]
|
|
private static readonly int S43;
|
|
|
|
// Token: 0x0400789A RID: 30874
|
|
[Token(Token = "0x400789A")]
|
|
private static readonly int S44;
|
|
}
|
|
}
|