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; } }