a
This commit is contained in:
+564
@@ -0,0 +1,564 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls
|
||||
{
|
||||
// Token: 0x02001B21 RID: 6945
|
||||
[Token(Token = "0x2001B21")]
|
||||
public class DtlsClientProtocol : DtlsProtocol
|
||||
{
|
||||
// Token: 0x0600ACC0 RID: 44224 RVA: 0x00258ED8 File Offset: 0x002570D8
|
||||
[Token(Token = "0x600ACC0")]
|
||||
[Address(RVA = "0x18B4510", Offset = "0x18B3310", VA = "0x1818B4510")]
|
||||
public DtlsClientProtocol(SecureRandom secureRandom)
|
||||
: base(secureRandom)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600ACC1 RID: 44225 RVA: 0x00258EEC File Offset: 0x002570EC
|
||||
[Token(Token = "0x600ACC1")]
|
||||
[Address(RVA = "0x18B2580", Offset = "0x18B1380", VA = "0x1818B2580", Slot = "5")]
|
||||
public virtual DtlsTransport Connect(TlsClient client, DatagramTransport transport)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600ACC1)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.DtlsTransport BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.DtlsClientProtocol::Connect(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsClient,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.DatagramTransport)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_BE:
|
||||
stloc:ArgumentNullException(var_18_C8, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldstr:string("transport")))
|
||||
}
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600ACC2 RID: 44226 RVA: 0x00258FC4 File Offset: 0x002571C4
|
||||
[Token(Token = "0x600ACC2")]
|
||||
[Address(RVA = "0x18B15E0", Offset = "0x18B03E0", VA = "0x1818B15E0", Slot = "6")]
|
||||
internal virtual void AbortClientHandshake(DtlsClientProtocol.ClientHandshakeState state, DtlsRecordLayer recordLayer, byte alertDescription)
|
||||
{
|
||||
recordLayer.Failed();
|
||||
}
|
||||
|
||||
// Token: 0x0600ACC3 RID: 44227 RVA: 0x00258FE0 File Offset: 0x002571E0
|
||||
[Token(Token = "0x600ACC3")]
|
||||
[Address(RVA = "0x18B1640", Offset = "0x18B0440", VA = "0x1818B1640", Slot = "7")]
|
||||
internal virtual DtlsTransport ClientHandshake(DtlsClientProtocol.ClientHandshakeState state, DtlsRecordLayer recordLayer)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600ACC3)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.DtlsTransport BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.DtlsClientProtocol::ClientHandshake(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.DtlsClientProtocol/ClientHandshakeState,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.DtlsRecordLayer)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_46A:
|
||||
stloc:TlsFatalAlert(var_110_471, newobj:TlsFatalAlert(TlsFatalAlert::.ctor, ldloc:uint64[exp:uint8](var_111)))
|
||||
}
|
||||
|
||||
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: 0x0600ACC4 RID: 44228 RVA: 0x00259460 File Offset: 0x00257660
|
||||
[Token(Token = "0x600ACC4")]
|
||||
[Address(RVA = "0x18B29A0", Offset = "0x18B17A0", VA = "0x1818B29A0", Slot = "8")]
|
||||
protected virtual byte[] GenerateCertificateVerify(DtlsClientProtocol.ClientHandshakeState state, DigitallySigned certificateVerify)
|
||||
{
|
||||
MemoryStream memoryStream = new MemoryStream();
|
||||
byte[] signature = certificateVerify.Signature;
|
||||
((IDisposable)memoryStream).Dispose();
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600ACC5 RID: 44229 RVA: 0x00259488 File Offset: 0x00257688
|
||||
[Token(Token = "0x600ACC5")]
|
||||
[Address(RVA = "0x18B2A30", Offset = "0x18B1830", VA = "0x1818B2A30", Slot = "9")]
|
||||
protected virtual byte[] GenerateClientHello(DtlsClientProtocol.ClientHandshakeState state, TlsClient client)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600ACC5)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.DtlsClientProtocol::GenerateClientHello(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.DtlsClientProtocol/ClientHandshakeState,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsClient)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_163:
|
||||
stloc:TlsFatalAlert(var_26_16A, newobj:TlsFatalAlert(TlsFatalAlert::.ctor, ldloc:uint64[exp:uint8](var_27)))
|
||||
}
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600ACC6 RID: 44230 RVA: 0x00259600 File Offset: 0x00257800
|
||||
[Token(Token = "0x600ACC6")]
|
||||
[Address(RVA = "0x18B2F90", Offset = "0x18B1D90", VA = "0x1818B2F90", Slot = "10")]
|
||||
protected virtual byte[] GenerateClientKeyExchange(DtlsClientProtocol.ClientHandshakeState state)
|
||||
{
|
||||
MemoryStream memoryStream = new MemoryStream();
|
||||
TlsKeyExchange keyExchange = state.keyExchange;
|
||||
((IDisposable)memoryStream).Dispose();
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600ACC7 RID: 44231 RVA: 0x00259628 File Offset: 0x00257828
|
||||
[Token(Token = "0x600ACC7")]
|
||||
[Address(RVA = "0x18B3020", Offset = "0x18B1E20", VA = "0x1818B3020", Slot = "11")]
|
||||
protected virtual void InvalidateSession(DtlsClientProtocol.ClientHandshakeState state)
|
||||
{
|
||||
SessionParameters sessionParameters = state.sessionParameters;
|
||||
if (sessionParameters != 0)
|
||||
{
|
||||
sessionParameters.Clear();
|
||||
state.sessionParameters = (ulong)0L;
|
||||
}
|
||||
if (state.tlsSession != 0)
|
||||
{
|
||||
state.tlsSession = (ulong)0L;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600ACC8 RID: 44232 RVA: 0x00259668 File Offset: 0x00257868
|
||||
[Token(Token = "0x600ACC8")]
|
||||
[Address(RVA = "0x18B31D0", Offset = "0x18B1FD0", VA = "0x1818B31D0", Slot = "12")]
|
||||
protected virtual void ProcessCertificateRequest(DtlsClientProtocol.ClientHandshakeState state, byte[] body)
|
||||
{
|
||||
while (state.authentication == (ulong)0L)
|
||||
{
|
||||
}
|
||||
int num;
|
||||
MemoryStream memoryStream = new MemoryStream(body, num != 0);
|
||||
num = 0;
|
||||
CertificateRequest certificateRequest = CertificateRequest.Parse(state.clientContext, memoryStream);
|
||||
state.certificateRequest = certificateRequest;
|
||||
TlsProtocol.AssertEmpty(memoryStream);
|
||||
TlsKeyExchange keyExchange = state.keyExchange;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600ACC9 RID: 44233 RVA: 0x002596B0 File Offset: 0x002578B0
|
||||
[Token(Token = "0x600ACC9")]
|
||||
[Address(RVA = "0x18B32B0", Offset = "0x18B20B0", VA = "0x1818B32B0", Slot = "13")]
|
||||
protected virtual void ProcessCertificateStatus(DtlsClientProtocol.ClientHandshakeState state, byte[] body)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600ACC9)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.DtlsClientProtocol::ProcessCertificateStatus(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.DtlsClientProtocol/ClientHandshakeState,System.Byte[])
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_57:
|
||||
stloc:ArgumentException(var_7_66, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("not an instance of the correct type"), ldstr:string("response")))
|
||||
}
|
||||
|
||||
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 1660
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600ACCA RID: 44234 RVA: 0x00259724 File Offset: 0x00257924
|
||||
[Token(Token = "0x600ACCA")]
|
||||
[Address(RVA = "0x18B34B0", Offset = "0x18B22B0", VA = "0x1818B34B0", Slot = "14")]
|
||||
protected virtual byte[] ProcessHelloVerifyRequest(DtlsClientProtocol.ClientHandshakeState state, byte[] body)
|
||||
{
|
||||
byte[] array;
|
||||
int version;
|
||||
int num2;
|
||||
do
|
||||
{
|
||||
int num;
|
||||
MemoryStream memoryStream = new MemoryStream(body, num != 0);
|
||||
num = 0;
|
||||
ProtocolVersion protocolVersion = TlsUtilities.ReadVersion(memoryStream);
|
||||
array = TlsUtilities.ReadOpaque8(memoryStream);
|
||||
TlsProtocol.AssertEmpty(memoryStream);
|
||||
bool isServer = state.clientContext.IsServer;
|
||||
version = protocolVersion.version;
|
||||
if (version == 254)
|
||||
{
|
||||
}
|
||||
ProtocolVersion dtlsv = ProtocolVersion.DTLSv12;
|
||||
num2 = protocolVersion.version;
|
||||
if (version != num2)
|
||||
{
|
||||
return array;
|
||||
}
|
||||
num2 -= num2;
|
||||
}
|
||||
while (version != 254);
|
||||
if (num2 > 0)
|
||||
{
|
||||
}
|
||||
return array;
|
||||
}
|
||||
|
||||
// Token: 0x0600ACCB RID: 44235 RVA: 0x002597B0 File Offset: 0x002579B0
|
||||
[Token(Token = "0x600ACCB")]
|
||||
[Address(RVA = "0x18B36C0", Offset = "0x18B24C0", VA = "0x1818B36C0", Slot = "15")]
|
||||
protected virtual void ProcessNewSessionTicket(DtlsClientProtocol.ClientHandshakeState state, byte[] body)
|
||||
{
|
||||
int num;
|
||||
MemoryStream memoryStream = new MemoryStream(body, num != 0);
|
||||
num = 0;
|
||||
long num2 = TlsUtilities.ReadUint32(memoryStream);
|
||||
byte[] array = TlsUtilities.ReadOpaque16(memoryStream);
|
||||
NewSessionTicket newSessionTicket;
|
||||
newSessionTicket.mTicketLifetimeHint = num2;
|
||||
newSessionTicket.mTicket = array;
|
||||
TlsProtocol.AssertEmpty(memoryStream);
|
||||
TlsClient client = state.client;
|
||||
int num3 = 0;
|
||||
if (num3 < num)
|
||||
{
|
||||
num3 += num3;
|
||||
num3++;
|
||||
}
|
||||
List<string> hostNames = client.HostNames;
|
||||
}
|
||||
|
||||
// Token: 0x0600ACCC RID: 44236 RVA: 0x00259820 File Offset: 0x00257A20
|
||||
[Token(Token = "0x600ACCC")]
|
||||
[Address(RVA = "0x18B3840", Offset = "0x18B2640", VA = "0x1818B3840", Slot = "16")]
|
||||
protected virtual Certificate ProcessServerCertificate(DtlsClientProtocol.ClientHandshakeState state, byte[] body)
|
||||
{
|
||||
int num;
|
||||
MemoryStream memoryStream = new MemoryStream(body, num != 0);
|
||||
num = 0;
|
||||
Certificate certificate = Certificate.Parse(memoryStream);
|
||||
TlsProtocol.AssertEmpty(memoryStream);
|
||||
TlsKeyExchange keyExchange = state.keyExchange;
|
||||
TlsClient client = state.client;
|
||||
state.authentication = certificate;
|
||||
return certificate;
|
||||
}
|
||||
|
||||
// Token: 0x0600ACCD RID: 44237 RVA: 0x00259864 File Offset: 0x00257A64
|
||||
[Token(Token = "0x600ACCD")]
|
||||
[Address(RVA = "0x18B3940", Offset = "0x18B2740", VA = "0x1818B3940", Slot = "17")]
|
||||
protected virtual void ProcessServerHello(DtlsClientProtocol.ClientHandshakeState state, byte[] body)
|
||||
{
|
||||
SecureRandom secureRandom;
|
||||
int num6;
|
||||
IDictionary dictionary2;
|
||||
for (;;)
|
||||
{
|
||||
secureRandom = state.clientContext.SecureRandom;
|
||||
int num;
|
||||
MemoryStream memoryStream = new MemoryStream(body, num != 0);
|
||||
num = 0;
|
||||
ProtocolVersion protocolVersion = TlsUtilities.ReadVersion(memoryStream);
|
||||
byte[] array = TlsUtilities.ReadFully(32, memoryStream);
|
||||
byte[] array2 = TlsUtilities.ReadOpaque8(memoryStream);
|
||||
state.selectedSessionID = array2;
|
||||
TlsClient client = state.client;
|
||||
byte[] selectedSessionID = state.selectedSessionID;
|
||||
if (selectedSessionID.Length != 0 && state.tlsSession != 0)
|
||||
{
|
||||
bool flag = Arrays.AreEqual(selectedSessionID, array2);
|
||||
}
|
||||
int num2 = 0;
|
||||
state.resumedSession = num2 != 0;
|
||||
int num3 = TlsUtilities.ReadUint16(memoryStream);
|
||||
if (Arrays.Contains(state.offeredCipherSuites, num3) && num3 != 0 && num3 != 255 && num3 != 22016)
|
||||
{
|
||||
TlsClientContextImpl clientContext = state.clientContext;
|
||||
bool flag2;
|
||||
if (flag2)
|
||||
{
|
||||
TlsClient client2 = state.client;
|
||||
byte b = TlsUtilities.ReadUint8(memoryStream);
|
||||
TlsClient client3 = state.client;
|
||||
IDictionary dictionary = TlsProtocol.ReadExtensions(memoryStream);
|
||||
state.serverExtensions = dictionary;
|
||||
bool flag3 = TlsExtensionsUtilities.HasExtendedMasterSecretExtension(dictionary);
|
||||
long num4 = secureRandom.NextLong();
|
||||
if ((state.resumedSession ? 1L : 0L) != num4)
|
||||
{
|
||||
goto IL_237;
|
||||
}
|
||||
TlsClient client4 = state.client;
|
||||
if (state.serverExtensions != 0)
|
||||
{
|
||||
long num5 = num4;
|
||||
byte[] extensionData = TlsUtilities.GetExtensionData(state.clientExtensions, (int)num5);
|
||||
if (extensionData == 0)
|
||||
{
|
||||
goto IL_231;
|
||||
}
|
||||
if (extensionData != 0)
|
||||
{
|
||||
}
|
||||
}
|
||||
byte[] extensionData2 = TlsUtilities.GetExtensionData(state.serverExtensions, 65281);
|
||||
if (extensionData2 != 0)
|
||||
{
|
||||
state.secure_renegotiation = true;
|
||||
byte[] array3 = TlsProtocol.CreateRenegotiationInfo(TlsUtilities.EmptyBytes);
|
||||
if (!Arrays.ConstantTimeAreEqual(extensionData2, array3))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
TlsClient client5 = state.client;
|
||||
if (state.resumedSession)
|
||||
{
|
||||
SessionParameters sessionParameters = state.sessionParameters;
|
||||
if (num3 != sessionParameters.mCipherSuite || b != sessionParameters.mCompressionAlgorithm)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
num6 = 0;
|
||||
dictionary2 = sessionParameters.ReadServerExtensions();
|
||||
}
|
||||
secureRandom.inextp = num3;
|
||||
secureRandom.SeedArray = b;
|
||||
if (dictionary2 == 0 || dictionary2 <= 0)
|
||||
{
|
||||
goto IL_204;
|
||||
}
|
||||
if (!TlsExtensionsUtilities.HasEncryptThenMacExtension(dictionary2))
|
||||
{
|
||||
break;
|
||||
}
|
||||
int num7;
|
||||
num3 = num7;
|
||||
if (TlsUtilities.IsBlockCipherSuite(num3))
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
bool resumedSession = state.resumedSession;
|
||||
bool flag4 = TlsExtensionsUtilities.HasTruncatedHMacExtension(dictionary2);
|
||||
if (state.resumedSession)
|
||||
{
|
||||
}
|
||||
if (state.resumedSession)
|
||||
{
|
||||
}
|
||||
IL_204:
|
||||
if (num6 != 0)
|
||||
{
|
||||
TlsClient client6 = state.client;
|
||||
}
|
||||
int num8;
|
||||
int prfAlgorithm = TlsProtocol.GetPrfAlgorithm(state.clientContext, num8);
|
||||
secureRandom.generator = (ulong)12L;
|
||||
return;
|
||||
IL_231:
|
||||
throw new NullReferenceException();
|
||||
IL_237:
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600ACCE RID: 44238 RVA: 0x00259ABC File Offset: 0x00257CBC
|
||||
[Token(Token = "0x600ACCE")]
|
||||
[Address(RVA = "0x18B42F0", Offset = "0x18B30F0", VA = "0x1818B42F0", Slot = "18")]
|
||||
protected virtual void ProcessServerKeyExchange(DtlsClientProtocol.ClientHandshakeState state, byte[] body)
|
||||
{
|
||||
int num;
|
||||
MemoryStream memoryStream = new MemoryStream(body, num != 0);
|
||||
num = 0;
|
||||
TlsKeyExchange keyExchange = state.keyExchange;
|
||||
TlsProtocol.AssertEmpty(memoryStream);
|
||||
}
|
||||
|
||||
// Token: 0x0600ACCF RID: 44239 RVA: 0x00259AE8 File Offset: 0x00257CE8
|
||||
[Token(Token = "0x600ACCF")]
|
||||
[Address(RVA = "0x18B4390", Offset = "0x18B3190", VA = "0x1818B4390", Slot = "19")]
|
||||
protected virtual void ProcessServerSupplementalData(DtlsClientProtocol.ClientHandshakeState state, byte[] body)
|
||||
{
|
||||
int num;
|
||||
MemoryStream memoryStream = new MemoryStream(body, num != 0);
|
||||
num = 0;
|
||||
IList list = TlsProtocol.ReadSupplementalDataMessage(memoryStream);
|
||||
TlsClient client = state.client;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600ACD0 RID: 44240 RVA: 0x00259B14 File Offset: 0x00257D14
|
||||
[Token(Token = "0x600ACD0")]
|
||||
[Address(RVA = "0x18B4430", Offset = "0x18B3230", VA = "0x1818B4430", Slot = "20")]
|
||||
protected virtual void ReportServerVersion(DtlsClientProtocol.ClientHandshakeState state, ProtocolVersion server_version)
|
||||
{
|
||||
TlsClientContextImpl clientContext;
|
||||
do
|
||||
{
|
||||
clientContext = state.clientContext;
|
||||
}
|
||||
while (server_version == 0);
|
||||
int version = server_version.version;
|
||||
ProtocolVersion serverVersion = clientContext.ServerVersion;
|
||||
TlsClient client = state.client;
|
||||
}
|
||||
|
||||
// Token: 0x0600ACD1 RID: 44241 RVA: 0x00259B48 File Offset: 0x00257D48
|
||||
[Token(Token = "0x600ACD1")]
|
||||
[Address(RVA = "0x18B3090", Offset = "0x18B1E90", VA = "0x1818B3090")]
|
||||
protected static byte[] PatchClientHelloWithCookie(byte[] clientHelloBody, byte[] cookie)
|
||||
{
|
||||
byte b = TlsUtilities.ReadUint8(clientHelloBody, 34);
|
||||
byte b2 = b + 1;
|
||||
byte[] array = new byte[cookie.Length];
|
||||
int num = 0;
|
||||
int num2 = 0;
|
||||
Array.Copy(clientHelloBody, num2, array, num, (int)b);
|
||||
TlsUtilities.CheckUint8(cookie.Length);
|
||||
TlsUtilities.WriteUint8((byte)cookie.Length, array, (int)b);
|
||||
int length = cookie.Length;
|
||||
int num3 = 0;
|
||||
Array.Copy(cookie, num3, array, (int)b2, length);
|
||||
int num4 = clientHelloBody.Length;
|
||||
int num5 = cookie.Length;
|
||||
num4 -= (int)b2;
|
||||
num5 += (int)b2;
|
||||
Array.Copy(clientHelloBody, (int)b2, array, num5, num4);
|
||||
return array;
|
||||
}
|
||||
|
||||
// Token: 0x02001B22 RID: 6946
|
||||
[Token(Token = "0x2001B22")]
|
||||
protected internal class ClientHandshakeState
|
||||
{
|
||||
// Token: 0x0600ACD2 RID: 44242 RVA: 0x00259BDC File Offset: 0x00257DDC
|
||||
[Token(Token = "0x600ACD2")]
|
||||
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
|
||||
public ClientHandshakeState()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x04006E63 RID: 28259
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4006E63")]
|
||||
internal TlsClient client;
|
||||
|
||||
// Token: 0x04006E64 RID: 28260
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4006E64")]
|
||||
internal TlsClientContextImpl clientContext;
|
||||
|
||||
// Token: 0x04006E65 RID: 28261
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4006E65")]
|
||||
internal TlsSession tlsSession;
|
||||
|
||||
// Token: 0x04006E66 RID: 28262
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x4006E66")]
|
||||
internal SessionParameters sessionParameters;
|
||||
|
||||
// Token: 0x04006E67 RID: 28263
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x4006E67")]
|
||||
internal SessionParameters.Builder sessionParametersBuilder;
|
||||
|
||||
// Token: 0x04006E68 RID: 28264
|
||||
[FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x4006E68")]
|
||||
internal int[] offeredCipherSuites;
|
||||
|
||||
// Token: 0x04006E69 RID: 28265
|
||||
[FieldOffset(Offset = "0x40")]
|
||||
[Token(Token = "0x4006E69")]
|
||||
internal IDictionary clientExtensions;
|
||||
|
||||
// Token: 0x04006E6A RID: 28266
|
||||
[FieldOffset(Offset = "0x48")]
|
||||
[Token(Token = "0x4006E6A")]
|
||||
internal IDictionary serverExtensions;
|
||||
|
||||
// Token: 0x04006E6B RID: 28267
|
||||
[FieldOffset(Offset = "0x50")]
|
||||
[Token(Token = "0x4006E6B")]
|
||||
internal byte[] selectedSessionID;
|
||||
|
||||
// Token: 0x04006E6C RID: 28268
|
||||
[FieldOffset(Offset = "0x58")]
|
||||
[Token(Token = "0x4006E6C")]
|
||||
internal bool resumedSession;
|
||||
|
||||
// Token: 0x04006E6D RID: 28269
|
||||
[FieldOffset(Offset = "0x59")]
|
||||
[Token(Token = "0x4006E6D")]
|
||||
internal bool secure_renegotiation;
|
||||
|
||||
// Token: 0x04006E6E RID: 28270
|
||||
[FieldOffset(Offset = "0x5A")]
|
||||
[Token(Token = "0x4006E6E")]
|
||||
internal bool allowCertificateStatus;
|
||||
|
||||
// Token: 0x04006E6F RID: 28271
|
||||
[FieldOffset(Offset = "0x5B")]
|
||||
[Token(Token = "0x4006E6F")]
|
||||
internal bool expectSessionTicket;
|
||||
|
||||
// Token: 0x04006E70 RID: 28272
|
||||
[FieldOffset(Offset = "0x60")]
|
||||
[Token(Token = "0x4006E70")]
|
||||
internal TlsKeyExchange keyExchange;
|
||||
|
||||
// Token: 0x04006E71 RID: 28273
|
||||
[FieldOffset(Offset = "0x68")]
|
||||
[Token(Token = "0x4006E71")]
|
||||
internal TlsAuthentication authentication;
|
||||
|
||||
// Token: 0x04006E72 RID: 28274
|
||||
[FieldOffset(Offset = "0x70")]
|
||||
[Token(Token = "0x4006E72")]
|
||||
internal CertificateStatus certificateStatus;
|
||||
|
||||
// Token: 0x04006E73 RID: 28275
|
||||
[FieldOffset(Offset = "0x78")]
|
||||
[Token(Token = "0x4006E73")]
|
||||
internal CertificateRequest certificateRequest;
|
||||
|
||||
// Token: 0x04006E74 RID: 28276
|
||||
[FieldOffset(Offset = "0x80")]
|
||||
[Token(Token = "0x4006E74")]
|
||||
internal TlsCredentials clientCredentials;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user