452 lines
23 KiB
C#
452 lines
23 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Runtime.InteropServices;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
|
|
using Cpp2IlInjected;
|
|
|
|
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls
|
|
{
|
|
// Token: 0x02001540 RID: 5440
|
|
[Token(Token = "0x2001540")]
|
|
[StructLayout(3)]
|
|
internal class DeferredHash : TlsHandshakeHash, IDigest
|
|
{
|
|
// Token: 0x060090CA RID: 37066 RVA: 0x00201320 File Offset: 0x001FF520
|
|
[Token(Token = "0x60090CA")]
|
|
[Address(RVA = "0x1E7DC50", Offset = "0x1E7C650", VA = "0x181E7DC50")]
|
|
internal DeferredHash()
|
|
{
|
|
DigestInputBuffer digestInputBuffer = new DigestInputBuffer();
|
|
this.mBuf = digestInputBuffer;
|
|
IDictionary dictionary = Platform.CreateHashtable();
|
|
this.mHashes = dictionary;
|
|
this.mPrfHashAlgorithm = (int)((ulong)4294967295L);
|
|
}
|
|
|
|
// Token: 0x060090CB RID: 37067 RVA: 0x00201360 File Offset: 0x001FF560
|
|
[Token(Token = "0x60090CB")]
|
|
[Address(RVA = "0x1E7DB80", Offset = "0x1E7C580", VA = "0x181E7DB80")]
|
|
private DeferredHash(byte prfHashAlgorithm, IDigest prfHash)
|
|
{
|
|
this.mBuf = (ulong)0L;
|
|
IDictionary dictionary = Platform.CreateHashtable();
|
|
this.mHashes = dictionary;
|
|
this.mPrfHashAlgorithm = (int)prfHashAlgorithm;
|
|
}
|
|
|
|
// Token: 0x060090CC RID: 37068 RVA: 0x00201398 File Offset: 0x001FF598
|
|
[Token(Token = "0x60090CC")]
|
|
[Address(RVA = "0x3C39B0", Offset = "0x3C23B0", VA = "0x1803C39B0", Slot = "18")]
|
|
public virtual void Init(TlsContext context)
|
|
{
|
|
this.mContext = context;
|
|
}
|
|
|
|
// Token: 0x060090CD RID: 37069 RVA: 0x002013AC File Offset: 0x001FF5AC
|
|
[Token(Token = "0x60090CD")]
|
|
[Address(RVA = "0x1E7D210", Offset = "0x1E7BC10", VA = "0x181E7D210", Slot = "19")]
|
|
public virtual TlsHandshakeHash NotifyPrfDetermined()
|
|
{
|
|
TlsContext tlsContext = this.mContext;
|
|
byte b;
|
|
this.mPrfHashAlgorithm = (int)b;
|
|
this.CheckStopBuffering();
|
|
CombinedHash combinedHash;
|
|
combinedHash.SealHashAlgorithms();
|
|
IDigest digest;
|
|
combinedHash.mMd5 = digest;
|
|
IDigest digest2;
|
|
combinedHash.mSha1 = digest2;
|
|
combinedHash.Reset();
|
|
this.mBuf.UpdateDigest(combinedHash);
|
|
string algorithmName = ((IDigest)combinedHash).AlgorithmName;
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x060090CE RID: 37070 RVA: 0x00201404 File Offset: 0x001FF604
|
|
[Token(Token = "0x60090CE")]
|
|
[Address(RVA = "0x1E7D820", Offset = "0x1E7C220", VA = "0x181E7D820", Slot = "20")]
|
|
public virtual void TrackHashAlgorithm(byte hashAlgorithm)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (060090CE)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.DeferredHash::TrackHashAlgorithm(System.Byte)
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
IL_13:
|
|
stloc:InvalidOperationException(var_1_1D, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Too late to track more hash algorithms")))
|
|
}
|
|
|
|
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
|
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: 0x060090CF RID: 37071 RVA: 0x00201430 File Offset: 0x001FF630
|
|
[Token(Token = "0x60090CF")]
|
|
[Address(RVA = "0x1E7D640", Offset = "0x1E7C040", VA = "0x181E7D640", Slot = "21")]
|
|
public virtual void SealHashAlgorithms()
|
|
{
|
|
string algorithmName = ((IDigest)this).AlgorithmName;
|
|
}
|
|
|
|
// Token: 0x060090D0 RID: 37072 RVA: 0x00201444 File Offset: 0x001FF644
|
|
[Token(Token = "0x60090D0")]
|
|
[Address(RVA = "0x1E7D660", Offset = "0x1E7C060", VA = "0x181E7D660", Slot = "22")]
|
|
public virtual TlsHandshakeHash StopTracking()
|
|
{
|
|
int num = this.mPrfHashAlgorithm;
|
|
if (this.mHashes == 0)
|
|
{
|
|
}
|
|
DigestInputBuffer digestInputBuffer = this.mBuf;
|
|
if (digestInputBuffer != 0)
|
|
{
|
|
IDigest digest;
|
|
digestInputBuffer.UpdateDigest(digest);
|
|
}
|
|
DeferredHash deferredHash = new DeferredHash();
|
|
deferredHash.mBuf = (ulong)0L;
|
|
IDictionary dictionary = Platform.CreateHashtable();
|
|
deferredHash.mHashes = dictionary;
|
|
deferredHash.mPrfHashAlgorithm = num;
|
|
deferredHash.Reset();
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x060090D1 RID: 37073 RVA: 0x002014A8 File Offset: 0x001FF6A8
|
|
[Token(Token = "0x60090D1")]
|
|
[Address(RVA = "0x1E7CE70", Offset = "0x1E7B870", VA = "0x181E7CE70", Slot = "23")]
|
|
public virtual IDigest ForkPrfHash()
|
|
{
|
|
this.Reset();
|
|
int num = this.mPrfHashAlgorithm;
|
|
if (this.mBuf == (ulong)0L)
|
|
{
|
|
IDictionary dictionary = this.mHashes;
|
|
IDigest digest;
|
|
return digest;
|
|
}
|
|
IDigest digest2 = TlsUtilities.CreateHash((byte)num);
|
|
this.mBuf.UpdateDigest(digest2);
|
|
return digest2;
|
|
}
|
|
|
|
// Token: 0x060090D2 RID: 37074 RVA: 0x002014F0 File Offset: 0x001FF6F0
|
|
[Token(Token = "0x60090D2")]
|
|
[Address(RVA = "0x1E7D090", Offset = "0x1E7BA90", VA = "0x181E7D090", Slot = "24")]
|
|
public virtual byte[] GetFinalHash(byte hashAlgorithm)
|
|
{
|
|
IDictionary dictionary = this.mHashes;
|
|
DigestInputBuffer digestInputBuffer = this.mBuf;
|
|
IDigest digest;
|
|
if (digestInputBuffer != 0)
|
|
{
|
|
digestInputBuffer.UpdateDigest(digest);
|
|
}
|
|
return DigestUtilities.DoFinal(digest);
|
|
}
|
|
|
|
// Token: 0x1700175C RID: 5980
|
|
// (get) Token: 0x060090D3 RID: 37075 RVA: 0x00201540 File Offset: 0x001FF740
|
|
[Token(Token = "0x1700175C")]
|
|
public virtual string AlgorithmName
|
|
{
|
|
[Token(Token = "0x60090D3")]
|
|
[Address(RVA = "0x1E7DCE0", Offset = "0x1E7C6E0", VA = "0x181E7DCE0", Slot = "25")]
|
|
get
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (060090D3)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.String BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.DeferredHash::get_AlgorithmName()
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
Block_0:
|
|
stloc:InvalidOperationException(var_0_0A, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Use Fork() to get a definite IDigest")))
|
|
}
|
|
|
|
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: 0x060090D4 RID: 37076 RVA: 0x00201558 File Offset: 0x001FF758
|
|
[Token(Token = "0x60090D4")]
|
|
[Address(RVA = "0x1E7CFD0", Offset = "0x1E7B9D0", VA = "0x181E7CFD0", Slot = "26")]
|
|
public virtual int GetByteLength()
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (060090D4)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.DeferredHash::GetByteLength()
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
Block_0:
|
|
stloc:InvalidOperationException(var_0_0A, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Use Fork() to get a definite IDigest")))
|
|
}
|
|
|
|
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: 0x060090D5 RID: 37077 RVA: 0x00201570 File Offset: 0x001FF770
|
|
[Token(Token = "0x60090D5")]
|
|
[Address(RVA = "0x1E7D030", Offset = "0x1E7BA30", VA = "0x181E7D030", Slot = "27")]
|
|
public virtual int GetDigestSize()
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (060090D5)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.DeferredHash::GetDigestSize()
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
Block_0:
|
|
stloc:InvalidOperationException(var_0_0A, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Use Fork() to get a definite IDigest")))
|
|
}
|
|
|
|
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: 0x060090D6 RID: 37078 RVA: 0x00201588 File Offset: 0x001FF788
|
|
[Token(Token = "0x60090D6")]
|
|
[Address(RVA = "0x1E7D8B0", Offset = "0x1E7C2B0", VA = "0x181E7D8B0", Slot = "28")]
|
|
public virtual void Update(byte input)
|
|
{
|
|
int num;
|
|
do
|
|
{
|
|
num = 0;
|
|
if (this.mBuf != 0)
|
|
{
|
|
break;
|
|
}
|
|
IDictionary dictionary = this.mHashes;
|
|
num += num;
|
|
num++;
|
|
uint num2;
|
|
if (num < (int)num2)
|
|
{
|
|
num += num;
|
|
num++;
|
|
}
|
|
num++;
|
|
num += 19;
|
|
num += 3;
|
|
num += 19;
|
|
if (num != 0)
|
|
{
|
|
}
|
|
if (num != -1)
|
|
{
|
|
}
|
|
}
|
|
while (num != 0);
|
|
}
|
|
|
|
// Token: 0x060090D7 RID: 37079 RVA: 0x002015E8 File Offset: 0x001FF7E8
|
|
[Token(Token = "0x60090D7")]
|
|
[Address(RVA = "0x1E7C720", Offset = "0x1E7B120", VA = "0x181E7C720", Slot = "29")]
|
|
public virtual void BlockUpdate(byte[] input, int inOff, int len)
|
|
{
|
|
int num;
|
|
DigestInputBuffer digestInputBuffer;
|
|
do
|
|
{
|
|
num = 0;
|
|
digestInputBuffer = this.mBuf;
|
|
if (digestInputBuffer != 0)
|
|
{
|
|
break;
|
|
}
|
|
IDictionary dictionary = this.mHashes;
|
|
num += num;
|
|
num++;
|
|
uint num2;
|
|
if (num < (int)num2)
|
|
{
|
|
num += num;
|
|
num++;
|
|
}
|
|
num++;
|
|
num += 19;
|
|
num += 4;
|
|
num += 19;
|
|
if (num != 0)
|
|
{
|
|
}
|
|
if (num != -1)
|
|
{
|
|
}
|
|
}
|
|
while (num != 0);
|
|
int num3 = digestInputBuffer.ReadByte();
|
|
}
|
|
|
|
// Token: 0x060090D8 RID: 37080 RVA: 0x00201650 File Offset: 0x001FF850
|
|
[Token(Token = "0x60090D8")]
|
|
[Address(RVA = "0x1E7CE10", Offset = "0x1E7B810", VA = "0x181E7CE10", Slot = "30")]
|
|
public virtual int DoFinal(byte[] output, int outOff)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (060090D8)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.DeferredHash::DoFinal(System.Byte[],System.Int32)
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
Block_0:
|
|
stloc:InvalidOperationException(var_0_0A, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Use Fork() to get a definite IDigest")))
|
|
}
|
|
|
|
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: 0x060090D9 RID: 37081 RVA: 0x00201668 File Offset: 0x001FF868
|
|
[Token(Token = "0x60090D9")]
|
|
[Address(RVA = "0x1E7D390", Offset = "0x1E7BD90", VA = "0x181E7D390", Slot = "31")]
|
|
public virtual void Reset()
|
|
{
|
|
int num;
|
|
do
|
|
{
|
|
num = 0;
|
|
if (this.mBuf != 0)
|
|
{
|
|
break;
|
|
}
|
|
IDictionary dictionary = this.mHashes;
|
|
num += num;
|
|
num++;
|
|
uint num2;
|
|
if (num < (int)num2)
|
|
{
|
|
num += num;
|
|
num++;
|
|
}
|
|
num++;
|
|
num += 19;
|
|
num += 6;
|
|
num += 19;
|
|
if (num != 0)
|
|
{
|
|
}
|
|
if (num != -1)
|
|
{
|
|
}
|
|
}
|
|
while (num != 0);
|
|
}
|
|
|
|
// Token: 0x060090DA RID: 37082 RVA: 0x002016C8 File Offset: 0x001FF8C8
|
|
[Token(Token = "0x60090DA")]
|
|
[Address(RVA = "0x1E7CA10", Offset = "0x1E7B410", VA = "0x181E7CA10", Slot = "32")]
|
|
protected virtual void CheckStopBuffering()
|
|
{
|
|
int num;
|
|
int num2;
|
|
do
|
|
{
|
|
num = 0;
|
|
if (this.mBuf == num)
|
|
{
|
|
return;
|
|
}
|
|
IDictionary dictionary = this.mHashes;
|
|
IDictionary dictionary2 = this.mHashes;
|
|
num += num;
|
|
num++;
|
|
DigestInputBuffer digestInputBuffer = this.mBuf;
|
|
DigestInputBuffer.DigStream digStream;
|
|
digStream.d = 0;
|
|
num2 = 0;
|
|
if (digStream != 0)
|
|
{
|
|
}
|
|
if (num != -1)
|
|
{
|
|
}
|
|
}
|
|
while (num != 0);
|
|
this.mBuf = num2;
|
|
}
|
|
|
|
// Token: 0x060090DB RID: 37083 RVA: 0x00201730 File Offset: 0x001FF930
|
|
[Token(Token = "0x60090DB")]
|
|
[Address(RVA = "0x1E7CCB0", Offset = "0x1E7B6B0", VA = "0x181E7CCB0", Slot = "33")]
|
|
protected virtual void CheckTrackingHash(byte hashAlgorithm)
|
|
{
|
|
IDictionary dictionary = this.mHashes;
|
|
int num = 0;
|
|
num += num;
|
|
num++;
|
|
IDigest digest = TlsUtilities.CreateHash(hashAlgorithm);
|
|
IDictionary dictionary2 = this.mHashes;
|
|
}
|
|
|
|
// Token: 0x04006018 RID: 24600
|
|
[Token(Token = "0x4006018")]
|
|
protected const int BUFFERING_HASH_LIMIT = 4;
|
|
|
|
// Token: 0x04006019 RID: 24601
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x4006019")]
|
|
protected TlsContext mContext;
|
|
|
|
// Token: 0x0400601A RID: 24602
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x400601A")]
|
|
private DigestInputBuffer mBuf;
|
|
|
|
// Token: 0x0400601B RID: 24603
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
|
[Token(Token = "0x400601B")]
|
|
private IDictionary mHashes;
|
|
|
|
// Token: 0x0400601C RID: 24604
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
|
[Token(Token = "0x400601C")]
|
|
private int mPrfHashAlgorithm;
|
|
}
|
|
}
|