using System; using System.Runtime.InteropServices; using BestHTTP.SecureProtocol.Org.BouncyCastle.Security; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls { // Token: 0x02001533 RID: 5427 [Token(Token = "0x2001533")] [StructLayout(3)] internal class CombinedHash : TlsHandshakeHash, IDigest { // Token: 0x06009063 RID: 36963 RVA: 0x00200448 File Offset: 0x001FE648 [Token(Token = "0x6009063")] [Address(RVA = "0x1E78D10", Offset = "0x1E77710", VA = "0x181E78D10")] internal CombinedHash() { this.SealHashAlgorithms(); IDigest digest; this.mMd5 = digest; IDigest digest2; this.mSha1 = digest2; } // Token: 0x06009064 RID: 36964 RVA: 0x0020046C File Offset: 0x001FE66C [Token(Token = "0x6009064")] [Address(RVA = "0x1E78C60", Offset = "0x1E77660", VA = "0x181E78C60")] internal CombinedHash(CombinedHash t) { this.SealHashAlgorithms(); TlsContext tlsContext = t.mContext; this.mContext = tlsContext; IDigest digest = t.mMd5; IDigest digest2; this.mMd5 = digest2; IDigest digest3 = t.mSha1; IDigest digest4; this.mSha1 = digest4; } // Token: 0x06009065 RID: 36965 RVA: 0x002004B0 File Offset: 0x001FE6B0 [Token(Token = "0x6009065")] [Address(RVA = "0x3C39B0", Offset = "0x3C23B0", VA = "0x1803C39B0", Slot = "18")] public virtual void Init(TlsContext context) { this.mContext = context; } // Token: 0x06009066 RID: 36966 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x6009066")] [Address(RVA = "0x518E70", Offset = "0x517870", VA = "0x180518E70", Slot = "19")] public virtual TlsHandshakeHash NotifyPrfDetermined() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06009067 RID: 36967 RVA: 0x002004C4 File Offset: 0x001FE6C4 [Token(Token = "0x6009067")] [Address(RVA = "0x1E78B80", Offset = "0x1E77580", VA = "0x181E78B80", Slot = "20")] public virtual void TrackHashAlgorithm(byte hashAlgorithm) { /* An exception occurred when decompiling this method (06009067) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.CombinedHash::TrackHashAlgorithm(System.Byte) ---> System.Exception: Basic block has to end with unconditional control flow. { Block_0: stloc:InvalidOperationException(var_0_0A, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("CombinedHash only supports calculating the legacy PRF for handshake hash"))) } 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: 0x06009068 RID: 36968 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x6009068")] [Address(RVA = "0x3C9F60", Offset = "0x3C8960", VA = "0x1803C9F60", Slot = "21")] public virtual void SealHashAlgorithms() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06009069 RID: 36969 RVA: 0x002004DC File Offset: 0x001FE6DC [Token(Token = "0x6009069")] [Address(RVA = "0x1E78B20", Offset = "0x1E77520", VA = "0x181E78B20", Slot = "22")] public virtual TlsHandshakeHash StopTracking() { /* An exception occurred when decompiling this method (06009069) ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsHandshakeHash BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.CombinedHash::StopTracking() ---> System.Exception: Basic block has to end with unconditional control flow. { Block_0: stloc:CombinedHash(var_0_06, newobj:CombinedHash(CombinedHash::.ctor, ldloc:CombinedHash(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: 0x0600906A RID: 36970 RVA: 0x002004F0 File Offset: 0x001FE6F0 [Token(Token = "0x600906A")] [Address(RVA = "0x1E78750", Offset = "0x1E77150", VA = "0x181E78750", Slot = "23")] public virtual IDigest ForkPrfHash() { /* An exception occurred when decompiling this method (0600906A) ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IDigest BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.CombinedHash::ForkPrfHash() ---> System.Exception: Basic block has to end with unconditional control flow. { Block_0: stloc:CombinedHash(var_0_06, newobj:CombinedHash(CombinedHash::.ctor, ldloc:CombinedHash(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: 0x0600906B RID: 36971 RVA: 0x00200504 File Offset: 0x001FE704 [Token(Token = "0x600906B")] [Address(RVA = "0x1E788D0", Offset = "0x1E772D0", VA = "0x181E788D0", Slot = "24")] public virtual byte[] GetFinalHash(byte hashAlgorithm) { /* An exception occurred when decompiling this method (0600906B) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.CombinedHash::GetFinalHash(System.Byte) ---> System.Exception: Basic block has to end with unconditional control flow. { Block_0: stloc:InvalidOperationException(var_0_0A, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("CombinedHash doesn't support multiple hashes"))) } 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: 0x17001756 RID: 5974 // (get) Token: 0x0600906C RID: 36972 RVA: 0x0020051C File Offset: 0x001FE71C [Token(Token = "0x17001756")] public virtual string AlgorithmName { [Token(Token = "0x600906C")] [Address(RVA = "0x1E78D80", Offset = "0x1E77780", VA = "0x181E78D80", Slot = "25")] get { IDigest digest = this.mMd5; IDigest digest2 = this.mSha1; string text; return text; } } // Token: 0x0600906D RID: 36973 RVA: 0x00200540 File Offset: 0x001FE740 [Token(Token = "0x600906D")] [Address(RVA = "0x1E787B0", Offset = "0x1E771B0", VA = "0x181E787B0", Slot = "26")] public virtual int GetByteLength() { IDigest digest = this.mMd5; IDigest digest2 = this.mSha1; int num; return num; } // Token: 0x0600906E RID: 36974 RVA: 0x00200564 File Offset: 0x001FE764 [Token(Token = "0x600906E")] [Address(RVA = "0x1E78850", Offset = "0x1E77250", VA = "0x181E78850", Slot = "27")] public virtual int GetDigestSize() { IDigest digest = this.mMd5; IDigest digest2 = this.mSha1; throw new NullReferenceException(); } // Token: 0x0600906F RID: 36975 RVA: 0x00200584 File Offset: 0x001FE784 [Token(Token = "0x600906F")] [Address(RVA = "0x1E78BE0", Offset = "0x1E775E0", VA = "0x181E78BE0", Slot = "28")] public virtual void Update(byte input) { IDigest digest = this.mMd5; IDigest digest2 = this.mSha1; throw new NullReferenceException(); } // Token: 0x06009070 RID: 36976 RVA: 0x002005A4 File Offset: 0x001FE7A4 [Token(Token = "0x6009070")] [Address(RVA = "0x1E78530", Offset = "0x1E76F30", VA = "0x181E78530", Slot = "29")] public virtual void BlockUpdate(byte[] input, int inOff, int len) { IDigest digest = this.mMd5; IDigest digest2 = this.mSha1; } // Token: 0x06009071 RID: 36977 RVA: 0x002005C8 File Offset: 0x001FE7C8 [Token(Token = "0x6009071")] [Address(RVA = "0x1E785D0", Offset = "0x1E76FD0", VA = "0x181E785D0", Slot = "30")] public virtual int DoFinal(byte[] output, int outOff) { TlsContext tlsContext = this.mContext; if (tlsContext != 0 && TlsUtilities.IsSsl(tlsContext)) { this.Reset(); this.Reset(); } IDigest digest = this.mMd5; IDigest digest2 = this.mSha1; throw new NullReferenceException(); } // Token: 0x06009072 RID: 36978 RVA: 0x0020060C File Offset: 0x001FE80C [Token(Token = "0x6009072")] [Address(RVA = "0x1E78930", Offset = "0x1E77330", VA = "0x181E78930", Slot = "31")] public virtual void Reset() { IDigest digest = this.mMd5; IDigest digest2 = this.mSha1; throw new NullReferenceException(); } // Token: 0x06009073 RID: 36979 RVA: 0x0020062C File Offset: 0x001FE82C [Token(Token = "0x6009073")] [Address(RVA = "0x1E789A0", Offset = "0x1E773A0", VA = "0x181E789A0", Slot = "32")] protected virtual void Ssl3Complete(IDigest d, byte[] ipad, byte[] opad, int padLength) { TlsContext tlsContext = this.mContext; IDigest digest = this.mMd5; byte[] array = DigestUtilities.DoFinal(d); IDigest digest2 = this.mMd5; int length = array.Length; throw new NullReferenceException(); } // Token: 0x04005FF9 RID: 24569 [global::Cpp2IlInjected.FieldOffset(Offset = "0x10")] [Token(Token = "0x4005FF9")] protected TlsContext mContext; // Token: 0x04005FFA RID: 24570 [global::Cpp2IlInjected.FieldOffset(Offset = "0x18")] [Token(Token = "0x4005FFA")] protected IDigest mMd5; // Token: 0x04005FFB RID: 24571 [global::Cpp2IlInjected.FieldOffset(Offset = "0x20")] [Token(Token = "0x4005FFB")] protected IDigest mSha1; } }