470 lines
13 KiB
C#
470 lines
13 KiB
C#
using System;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
|
|
using Cpp2IlInjected;
|
|
|
|
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
|
|
{
|
|
// Token: 0x02001CEB RID: 7403
|
|
[Token(Token = "0x2001CEB")]
|
|
public class MD4Digest : GeneralDigest
|
|
{
|
|
// Token: 0x0600BAC1 RID: 47809 RVA: 0x002A2BC4 File Offset: 0x002A0DC4
|
|
[Token(Token = "0x600BAC1")]
|
|
[Address(RVA = "0x1B446E0", Offset = "0x1B434E0", VA = "0x181B446E0")]
|
|
public MD4Digest()
|
|
{
|
|
int[] array = new int[16];
|
|
this.X = array;
|
|
base..ctor();
|
|
byte[] array2 = new byte[4];
|
|
this.xBuf = array2;
|
|
IMemoable memoable = ((IMemoable)this).Copy();
|
|
}
|
|
|
|
// Token: 0x0600BAC2 RID: 47810 RVA: 0x002A2BFC File Offset: 0x002A0DFC
|
|
[Token(Token = "0x600BAC2")]
|
|
[Address(RVA = "0x1B44670", Offset = "0x1B43470", VA = "0x181B44670")]
|
|
public MD4Digest(MD4Digest t)
|
|
{
|
|
int[] array = new int[16];
|
|
this.X = array;
|
|
base..ctor(t);
|
|
this.CopyIn(t);
|
|
}
|
|
|
|
// Token: 0x0600BAC3 RID: 47811 RVA: 0x002A2C28 File Offset: 0x002A0E28
|
|
[Token(Token = "0x600BAC3")]
|
|
[Address(RVA = "0x1B43550", Offset = "0x1B42350", VA = "0x181B43550")]
|
|
private void CopyIn(MD4Digest t)
|
|
{
|
|
byte[] xBuf = t.xBuf;
|
|
int length = xBuf.Length;
|
|
int num = 0;
|
|
byte[] xBuf2 = this.xBuf;
|
|
int num2 = 0;
|
|
Array.Copy(xBuf, num2, xBuf2, num, length);
|
|
int xBufOff = t.xBufOff;
|
|
this.xBufOff = xBufOff;
|
|
long byteCount = t.byteCount;
|
|
this.byteCount = byteCount;
|
|
int h = t.H1;
|
|
this.H1 = h;
|
|
int h2 = t.H2;
|
|
this.H2 = h2;
|
|
int h3 = t.H3;
|
|
this.H3 = h3;
|
|
int h4 = t.H4;
|
|
this.H4 = h4;
|
|
int[] x = t.X;
|
|
int length2 = x.Length;
|
|
int num3 = 0;
|
|
int[] x2 = this.X;
|
|
int num4 = 0;
|
|
Array.Copy(x, num4, x2, num3, length2);
|
|
int num5 = t.xOff;
|
|
this.xOff = num5;
|
|
}
|
|
|
|
// Token: 0x17001D13 RID: 7443
|
|
// (get) Token: 0x0600BAC4 RID: 47812 RVA: 0x002A2D00 File Offset: 0x002A0F00
|
|
[Token(Token = "0x17001D13")]
|
|
public override string AlgorithmName
|
|
{
|
|
[Token(Token = "0x600BAC4")]
|
|
[Address(RVA = "0x1B44770", Offset = "0x1B43570", VA = "0x181B44770", Slot = "17")]
|
|
get
|
|
{
|
|
return "MD4";
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600BAC5 RID: 47813 RVA: 0x002A2D14 File Offset: 0x002A0F14
|
|
[Token(Token = "0x600BAC5")]
|
|
[Address(RVA = "0x4B6B10", Offset = "0x4B5910", VA = "0x1804B6B10", Slot = "18")]
|
|
public override int GetDigestSize()
|
|
{
|
|
return 16;
|
|
}
|
|
|
|
// Token: 0x0600BAC6 RID: 47814 RVA: 0x002A2D24 File Offset: 0x002A0F24
|
|
[Token(Token = "0x600BAC6")]
|
|
[Address(RVA = "0x1B44340", Offset = "0x1B43140", VA = "0x181B44340", Slot = "14")]
|
|
internal override void ProcessWord(byte[] input, int inOff)
|
|
{
|
|
int num = this.xOff;
|
|
int[] x = this.X;
|
|
int num2 = num + 1;
|
|
this.xOff = num2;
|
|
int length = input.Length;
|
|
int num3 = inOff + 1;
|
|
byte b;
|
|
x[0] = (int)b;
|
|
if (this.xOff == 16)
|
|
{
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600BAC7 RID: 47815 RVA: 0x002A2D70 File Offset: 0x002A0F70
|
|
[Token(Token = "0x600BAC7")]
|
|
[Address(RVA = "0x1B442C0", Offset = "0x1B430C0", VA = "0x181B442C0", Slot = "15")]
|
|
internal override void ProcessLength(long bitLength)
|
|
{
|
|
if (this.xOff > 14)
|
|
{
|
|
}
|
|
this.X[7] = (int)bitLength;
|
|
this.X[7] = (int)bitLength;
|
|
}
|
|
|
|
// Token: 0x0600BAC8 RID: 47816 RVA: 0x002A2DA8 File Offset: 0x002A0FA8
|
|
[Token(Token = "0x600BAC8")]
|
|
[Address(RVA = "0x1B445D0", Offset = "0x1B433D0", VA = "0x181B445D0")]
|
|
private void UnpackWord(int word, byte[] outBytes, int outOff)
|
|
{
|
|
int num = outOff + 1;
|
|
}
|
|
|
|
// Token: 0x0600BAC9 RID: 47817 RVA: 0x002A2DC0 File Offset: 0x002A0FC0
|
|
[Token(Token = "0x600BAC9")]
|
|
[Address(RVA = "0x1B436A0", Offset = "0x1B424A0", VA = "0x181B436A0", Slot = "19")]
|
|
public override int DoFinal(byte[] output, int outOff)
|
|
{
|
|
base.Finish();
|
|
int h = this.H1;
|
|
this.UnpackWord(h, output, outOff);
|
|
int num = this.H2;
|
|
output[0] = (byte)num;
|
|
output[0] = (byte)num;
|
|
int h2 = this.H3;
|
|
num = h2;
|
|
output[0] = (byte)num;
|
|
num = h2;
|
|
output[0] = (byte)num;
|
|
int h3 = this.H4;
|
|
num = h3;
|
|
output[0] = (byte)num;
|
|
num = h3;
|
|
output[0] = (byte)num;
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x0600BACA RID: 47818 RVA: 0x002A2E38 File Offset: 0x002A1038
|
|
[Token(Token = "0x600BACA")]
|
|
[Address(RVA = "0x1B44460", Offset = "0x1B43260", VA = "0x181B44460", Slot = "13")]
|
|
public override void Reset()
|
|
{
|
|
int num = 0;
|
|
this.byteCount = (long)num;
|
|
this.xBufOff = num;
|
|
byte[] xBuf = this.xBuf;
|
|
int length = xBuf.Length;
|
|
int num2 = 0;
|
|
Array.Clear(xBuf, num2, length);
|
|
int[] x = this.X;
|
|
this.H1 = (int)((ulong)1732584193L);
|
|
this.H2 = (int)((ulong)4023233417L);
|
|
this.H3 = (int)((ulong)2562383102L);
|
|
this.H4 = (int)((ulong)271733878L);
|
|
this.xOff = num;
|
|
if (num != x.Length)
|
|
{
|
|
num++;
|
|
x[0] = num;
|
|
int[] x2 = this.X;
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600BACB RID: 47819 RVA: 0x002A2EDC File Offset: 0x002A10DC
|
|
[Token(Token = "0x600BACB")]
|
|
[Address(RVA = "0x1B445B0", Offset = "0x1B433B0", VA = "0x181B445B0")]
|
|
private int RotateLeft(int x, int n)
|
|
{
|
|
return x;
|
|
}
|
|
|
|
// Token: 0x0600BACC RID: 47820 RVA: 0x002A2EEC File Offset: 0x002A10EC
|
|
[Token(Token = "0x600BACC")]
|
|
[Address(RVA = "0x63B3A0", Offset = "0x63A1A0", VA = "0x18063B3A0")]
|
|
private int F(int u, int v, int w)
|
|
{
|
|
return u;
|
|
}
|
|
|
|
// Token: 0x0600BACD RID: 47821 RVA: 0x002A2EFC File Offset: 0x002A10FC
|
|
[Token(Token = "0x600BACD")]
|
|
[Address(RVA = "0x63B400", Offset = "0x63A200", VA = "0x18063B400")]
|
|
private int G(int u, int v, int w)
|
|
{
|
|
return v;
|
|
}
|
|
|
|
// Token: 0x0600BACE RID: 47822 RVA: 0x002A2F0C File Offset: 0x002A110C
|
|
[Token(Token = "0x600BACE")]
|
|
[Address(RVA = "0x63B460", Offset = "0x63A260", VA = "0x18063B460")]
|
|
private int H(int u, int v, int w)
|
|
{
|
|
return u;
|
|
}
|
|
|
|
// Token: 0x0600BACF RID: 47823 RVA: 0x002A2F1C File Offset: 0x002A111C
|
|
[Token(Token = "0x600BACF")]
|
|
[Address(RVA = "0x1B438E0", Offset = "0x1B426E0", VA = "0x181B438E0", Slot = "16")]
|
|
internal override void ProcessBlock()
|
|
{
|
|
int[] x = this.X;
|
|
int num = this.H2;
|
|
int num2 = this.H3;
|
|
int h = this.H4;
|
|
int h2 = this.H1;
|
|
int num3 = x.Length;
|
|
num += h2;
|
|
num += h;
|
|
num2 = num;
|
|
num += num2;
|
|
num += num;
|
|
num += num;
|
|
num += num;
|
|
num += num;
|
|
num += num;
|
|
num += num;
|
|
num += num;
|
|
num += num;
|
|
num += num;
|
|
int num4 = x[6];
|
|
num += num4;
|
|
num += num;
|
|
num += num;
|
|
num += num;
|
|
num += num;
|
|
num2 = num;
|
|
num2 += num;
|
|
num2 = num;
|
|
num2 += num;
|
|
num = num2;
|
|
num2 = num;
|
|
num2 += num;
|
|
num = num2;
|
|
num2 = num;
|
|
num2 += 1518500249;
|
|
num2 += num4;
|
|
num2 += num;
|
|
num = num2;
|
|
num2 = num;
|
|
num2 += num;
|
|
num2 = num;
|
|
num2 += num;
|
|
num = num2;
|
|
num2 = num;
|
|
num2 += num;
|
|
num = num2;
|
|
num2 = num;
|
|
num2 += num;
|
|
num = num2;
|
|
num2 = num;
|
|
num2 += num;
|
|
num2 = num;
|
|
num2 += 1518500249;
|
|
num2 += num;
|
|
num = num2;
|
|
num2 = num;
|
|
num2 += 1518500249;
|
|
num2 += num;
|
|
num4 = num2;
|
|
num2 = num;
|
|
num2 += num;
|
|
num = num2;
|
|
num2 = num4;
|
|
num2 += num;
|
|
num = num2;
|
|
num2 = num;
|
|
num2 += num;
|
|
num = num2;
|
|
num2 = num;
|
|
num2 += 1518500249;
|
|
num2 += num4;
|
|
num3 = num2;
|
|
num2 = num;
|
|
num += 1859775393;
|
|
num2 += num;
|
|
num = num2;
|
|
num2 = num;
|
|
num2 += num;
|
|
num = num2;
|
|
num2 = num3;
|
|
num += num2;
|
|
num2 = num;
|
|
num3 = num;
|
|
num += num2;
|
|
num2 = num3;
|
|
num += num2;
|
|
num2 += num3;
|
|
num = num2;
|
|
num2 = num;
|
|
num += num2;
|
|
num2 = num;
|
|
num3 = num;
|
|
num += num2;
|
|
num2 = num3;
|
|
num += num2;
|
|
num2 += num3;
|
|
num = num2;
|
|
num2 = num;
|
|
num += num2;
|
|
num4 = num;
|
|
num2 = num4;
|
|
num3 = num4;
|
|
num += num2;
|
|
num = num3;
|
|
num += 1859775393;
|
|
num += num;
|
|
num2 += num3;
|
|
num = num2;
|
|
num += 1859775393;
|
|
num += num4;
|
|
num2 = num;
|
|
num += num2;
|
|
num += 1859775393;
|
|
this.H1 = num2;
|
|
num += num;
|
|
num2 = num;
|
|
num2 += num;
|
|
this.H2 = num2;
|
|
this.H3 = num2;
|
|
int num5 = 0;
|
|
this.H4 = num2;
|
|
this.xOff = num5;
|
|
if (num5 != x.Length)
|
|
{
|
|
num5++;
|
|
x[0] = num5;
|
|
int[] x2 = this.X;
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600BAD0 RID: 47824 RVA: 0x002A315C File Offset: 0x002A135C
|
|
[Token(Token = "0x600BAD0")]
|
|
[Address(RVA = "0x1B43600", Offset = "0x1B42400", VA = "0x181B43600", Slot = "20")]
|
|
public override IMemoable Copy()
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (0600BAD0)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.MD4Digest::Copy()
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
Block_0:
|
|
stloc:MD4Digest(var_0_06, newobj:MD4Digest(MD4Digest::.ctor, ldloc:MD4Digest(this)))
|
|
stloc:int32[](var_1_0E, newarr:int32[]([mscorlib]System.Int32, ldc.i4:int32(16)))
|
|
stfld:int32[](MD4Digest::X, ldloc:MD4Digest(var_0_06), ldloc:int32[](var_1_0E))
|
|
call:void(MD4Digest::CopyIn, ldloc:MD4Digest(var_0_06), ldloc:MD4Digest(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 1660
|
|
*/;
|
|
}
|
|
|
|
// Token: 0x0600BAD1 RID: 47825 RVA: 0x002A3188 File Offset: 0x002A1388
|
|
[Token(Token = "0x600BAD1")]
|
|
[Address(RVA = "0x1B44510", Offset = "0x1B43310", VA = "0x181B44510", Slot = "21")]
|
|
public override void Reset(IMemoable other)
|
|
{
|
|
do
|
|
{
|
|
if (other == 0)
|
|
{
|
|
}
|
|
}
|
|
while (other == 0);
|
|
}
|
|
|
|
// Token: 0x040076B8 RID: 30392
|
|
[Token(Token = "0x40076B8")]
|
|
private const int DigestLength = 16;
|
|
|
|
// Token: 0x040076B9 RID: 30393
|
|
[FieldOffset(Offset = "0x28")]
|
|
[Token(Token = "0x40076B9")]
|
|
private int H1;
|
|
|
|
// Token: 0x040076BA RID: 30394
|
|
[FieldOffset(Offset = "0x2C")]
|
|
[Token(Token = "0x40076BA")]
|
|
private int H2;
|
|
|
|
// Token: 0x040076BB RID: 30395
|
|
[FieldOffset(Offset = "0x30")]
|
|
[Token(Token = "0x40076BB")]
|
|
private int H3;
|
|
|
|
// Token: 0x040076BC RID: 30396
|
|
[FieldOffset(Offset = "0x34")]
|
|
[Token(Token = "0x40076BC")]
|
|
private int H4;
|
|
|
|
// Token: 0x040076BD RID: 30397
|
|
[FieldOffset(Offset = "0x38")]
|
|
[Token(Token = "0x40076BD")]
|
|
private int[] X;
|
|
|
|
// Token: 0x040076BE RID: 30398
|
|
[FieldOffset(Offset = "0x40")]
|
|
[Token(Token = "0x40076BE")]
|
|
private int xOff;
|
|
|
|
// Token: 0x040076BF RID: 30399
|
|
[Token(Token = "0x40076BF")]
|
|
private const int S11 = 3;
|
|
|
|
// Token: 0x040076C0 RID: 30400
|
|
[Token(Token = "0x40076C0")]
|
|
private const int S12 = 7;
|
|
|
|
// Token: 0x040076C1 RID: 30401
|
|
[Token(Token = "0x40076C1")]
|
|
private const int S13 = 11;
|
|
|
|
// Token: 0x040076C2 RID: 30402
|
|
[Token(Token = "0x40076C2")]
|
|
private const int S14 = 19;
|
|
|
|
// Token: 0x040076C3 RID: 30403
|
|
[Token(Token = "0x40076C3")]
|
|
private const int S21 = 3;
|
|
|
|
// Token: 0x040076C4 RID: 30404
|
|
[Token(Token = "0x40076C4")]
|
|
private const int S22 = 5;
|
|
|
|
// Token: 0x040076C5 RID: 30405
|
|
[Token(Token = "0x40076C5")]
|
|
private const int S23 = 9;
|
|
|
|
// Token: 0x040076C6 RID: 30406
|
|
[Token(Token = "0x40076C6")]
|
|
private const int S24 = 13;
|
|
|
|
// Token: 0x040076C7 RID: 30407
|
|
[Token(Token = "0x40076C7")]
|
|
private const int S31 = 3;
|
|
|
|
// Token: 0x040076C8 RID: 30408
|
|
[Token(Token = "0x40076C8")]
|
|
private const int S32 = 9;
|
|
|
|
// Token: 0x040076C9 RID: 30409
|
|
[Token(Token = "0x40076C9")]
|
|
private const int S33 = 11;
|
|
|
|
// Token: 0x040076CA RID: 30410
|
|
[Token(Token = "0x40076CA")]
|
|
private const int S34 = 15;
|
|
}
|
|
}
|