562 lines
29 KiB
C#
562 lines
29 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Runtime.InteropServices;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
|
|
using Cpp2IlInjected;
|
|
using Hjg.Pngcs;
|
|
|
|
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls
|
|
{
|
|
// Token: 0x02001544 RID: 5444
|
|
[Token(Token = "0x2001544")]
|
|
[StructLayout(3)]
|
|
public class DtlsClientProtocol : DtlsProtocol
|
|
{
|
|
// Token: 0x060090E6 RID: 37094 RVA: 0x0020189C File Offset: 0x001FFA9C
|
|
[Token(Token = "0x60090E6")]
|
|
[Address(RVA = "0x1E80F30", Offset = "0x1E7F930", VA = "0x181E80F30")]
|
|
public DtlsClientProtocol(SecureRandom secureRandom)
|
|
: base(secureRandom)
|
|
{
|
|
}
|
|
|
|
// Token: 0x060090E7 RID: 37095 RVA: 0x002018B0 File Offset: 0x001FFAB0
|
|
[Token(Token = "0x60090E7")]
|
|
[Address(RVA = "0x1E7F010", Offset = "0x1E7DA10", VA = "0x181E7F010", Slot = "5")]
|
|
public virtual DtlsTransport Connect(TlsClient client, DatagramTransport transport)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (060090E7)
|
|
|
|
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_C2:
|
|
stloc:ArgumentNullException(var_18_CC, 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 1663
|
|
*/;
|
|
}
|
|
|
|
// Token: 0x060090E8 RID: 37096 RVA: 0x0020198C File Offset: 0x001FFB8C
|
|
[Token(Token = "0x60090E8")]
|
|
[Address(RVA = "0x1E7E0B0", Offset = "0x1E7CAB0", VA = "0x181E7E0B0", Slot = "6")]
|
|
internal virtual void AbortClientHandshake(DtlsClientProtocol.ClientHandshakeState state, DtlsRecordLayer recordLayer, byte alertDescription)
|
|
{
|
|
recordLayer.Failed();
|
|
}
|
|
|
|
// Token: 0x060090E9 RID: 37097 RVA: 0x002019A8 File Offset: 0x001FFBA8
|
|
[Token(Token = "0x60090E9")]
|
|
[Address(RVA = "0x1E7E110", Offset = "0x1E7CB10", VA = "0x181E7E110", Slot = "7")]
|
|
internal virtual DtlsTransport ClientHandshake(DtlsClientProtocol.ClientHandshakeState state, DtlsRecordLayer recordLayer)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (060090E9)
|
|
|
|
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_462:
|
|
stloc:TlsFatalAlert(var_109_469, newobj:TlsFatalAlert(TlsFatalAlert::.ctor, ldloc:uint64[exp:uint8](var_110)))
|
|
}
|
|
|
|
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: 0x060090EA RID: 37098 RVA: 0x00201E20 File Offset: 0x00200020
|
|
[Token(Token = "0x60090EA")]
|
|
[Address(RVA = "0x1E7F460", Offset = "0x1E7DE60", VA = "0x181E7F460", 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: 0x060090EB RID: 37099 RVA: 0x00201E48 File Offset: 0x00200048
|
|
[Token(Token = "0x60090EB")]
|
|
[Address(RVA = "0x1E7F4F0", Offset = "0x1E7DEF0", VA = "0x181E7F4F0", Slot = "9")]
|
|
protected virtual byte[] GenerateClientHello(DtlsClientProtocol.ClientHandshakeState state, TlsClient client)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (060090EB)
|
|
|
|
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_160:
|
|
stloc:TlsFatalAlert(var_27_167, newobj:TlsFatalAlert(TlsFatalAlert::.ctor, ldloc:uint64[exp:uint8](var_28)))
|
|
}
|
|
|
|
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: 0x060090EC RID: 37100 RVA: 0x00201FC0 File Offset: 0x002001C0
|
|
[Token(Token = "0x60090EC")]
|
|
[Address(RVA = "0x1E7FA50", Offset = "0x1E7E450", VA = "0x181E7FA50", Slot = "10")]
|
|
protected virtual byte[] GenerateClientKeyExchange(DtlsClientProtocol.ClientHandshakeState state)
|
|
{
|
|
MemoryStream memoryStream = new MemoryStream();
|
|
TlsKeyExchange keyExchange = state.keyExchange;
|
|
((IDisposable)memoryStream).Dispose();
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x060090ED RID: 37101 RVA: 0x00201FE8 File Offset: 0x002001E8
|
|
[Token(Token = "0x60090ED")]
|
|
[Address(RVA = "0x1E7FAE0", Offset = "0x1E7E4E0", VA = "0x181E7FAE0", 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: 0x060090EE RID: 37102 RVA: 0x00202028 File Offset: 0x00200228
|
|
[Token(Token = "0x60090EE")]
|
|
[Address(RVA = "0x1E7FC90", Offset = "0x1E7E690", VA = "0x181E7FC90", 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: 0x060090EF RID: 37103 RVA: 0x00202070 File Offset: 0x00200270
|
|
[Token(Token = "0x60090EF")]
|
|
[Address(RVA = "0x1E7FD70", Offset = "0x1E7E770", VA = "0x181E7FD70", Slot = "13")]
|
|
protected virtual void ProcessCertificateStatus(DtlsClientProtocol.ClientHandshakeState state, byte[] body)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (060090EF)
|
|
|
|
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 1663
|
|
*/;
|
|
}
|
|
|
|
// Token: 0x060090F0 RID: 37104 RVA: 0x002020E4 File Offset: 0x002002E4
|
|
[Token(Token = "0x60090F0")]
|
|
[Address(RVA = "0x1E7FF70", Offset = "0x1E7E970", VA = "0x181E7FF70", Slot = "14")]
|
|
protected virtual byte[] ProcessHelloVerifyRequest(DtlsClientProtocol.ClientHandshakeState state, byte[] body)
|
|
{
|
|
ProtocolVersion protocolVersion;
|
|
byte[] array;
|
|
bool flag;
|
|
do
|
|
{
|
|
int num;
|
|
MemoryStream memoryStream = new MemoryStream(body, num != 0);
|
|
num = 0;
|
|
protocolVersion = TlsUtilities.ReadVersion(memoryStream);
|
|
array = TlsUtilities.ReadOpaque8(memoryStream);
|
|
TlsProtocol.AssertEmpty(memoryStream);
|
|
bool isServer = state.clientContext.IsServer;
|
|
}
|
|
while (!flag);
|
|
if (!ProtocolVersion.DTLSv12.IsEqualOrEarlierVersionOf(protocolVersion))
|
|
{
|
|
}
|
|
return array;
|
|
}
|
|
|
|
// Token: 0x060090F1 RID: 37105 RVA: 0x00202138 File Offset: 0x00200338
|
|
[Token(Token = "0x60090F1")]
|
|
[Address(RVA = "0x1E80120", Offset = "0x1E7EB20", VA = "0x181E80120", Slot = "15")]
|
|
protected virtual void ProcessNewSessionTicket(DtlsClientProtocol.ClientHandshakeState state, byte[] body)
|
|
{
|
|
int num;
|
|
MemoryStream memoryStream = new MemoryStream(body, num != 0);
|
|
num = 0;
|
|
NewSessionTicket newSessionTicket = NewSessionTicket.Parse(memoryStream);
|
|
TlsProtocol.AssertEmpty(memoryStream);
|
|
TlsClient client = state.client;
|
|
int num2 = 0;
|
|
if (num2 < num)
|
|
{
|
|
num2 += num2;
|
|
num2++;
|
|
}
|
|
List<string> hostNames = client.HostNames;
|
|
}
|
|
|
|
// Token: 0x060090F2 RID: 37106 RVA: 0x0020218C File Offset: 0x0020038C
|
|
[Token(Token = "0x60090F2")]
|
|
[Address(RVA = "0x1E80230", Offset = "0x1E7EC30", VA = "0x181E80230", 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: 0x060090F3 RID: 37107 RVA: 0x002021D0 File Offset: 0x002003D0
|
|
[Token(Token = "0x60090F3")]
|
|
[Address(RVA = "0x1E80330", Offset = "0x1E7ED30", VA = "0x181E80330", Slot = "17")]
|
|
protected virtual void ProcessServerHello(DtlsClientProtocol.ClientHandshakeState state, byte[] body)
|
|
{
|
|
SecureRandom secureRandom;
|
|
int num7;
|
|
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_247;
|
|
}
|
|
TlsClient client4 = state.client;
|
|
if (state.serverExtensions != 0)
|
|
{
|
|
long num5 = num4;
|
|
byte[] extensionData = TlsUtilities.GetExtensionData(state.clientExtensions, (int)num5);
|
|
if (extensionData == 0)
|
|
{
|
|
goto IL_241;
|
|
}
|
|
int num6 = 0;
|
|
if (extensionData != 0)
|
|
{
|
|
}
|
|
if (num6 != -1)
|
|
{
|
|
}
|
|
if (num6 != 0)
|
|
{
|
|
continue;
|
|
}
|
|
}
|
|
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;
|
|
}
|
|
num7 = 0;
|
|
dictionary2 = sessionParameters.ReadServerExtensions();
|
|
}
|
|
secureRandom.inextp = num3;
|
|
secureRandom.SeedArray = b;
|
|
if (dictionary2 == 0 || dictionary2 <= 0)
|
|
{
|
|
goto IL_214;
|
|
}
|
|
if (!TlsExtensionsUtilities.HasEncryptThenMacExtension(dictionary2))
|
|
{
|
|
break;
|
|
}
|
|
int num8;
|
|
num3 = num8;
|
|
if (TlsUtilities.IsBlockCipherSuite(num3))
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
bool resumedSession = state.resumedSession;
|
|
bool flag4 = TlsExtensionsUtilities.HasTruncatedHMacExtension(dictionary2);
|
|
if (state.resumedSession)
|
|
{
|
|
}
|
|
if (state.resumedSession)
|
|
{
|
|
}
|
|
IL_214:
|
|
if (num7 != 0)
|
|
{
|
|
TlsClient client6 = state.client;
|
|
}
|
|
int num9;
|
|
int prfAlgorithm = TlsProtocol.GetPrfAlgorithm(state.clientContext, num9);
|
|
secureRandom.generator = (ulong)12L;
|
|
return;
|
|
IL_241:
|
|
throw new NullReferenceException();
|
|
IL_247:
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x060090F4 RID: 37108 RVA: 0x00202438 File Offset: 0x00200638
|
|
[Token(Token = "0x60090F4")]
|
|
[Address(RVA = "0x1E80D10", Offset = "0x1E7F710", VA = "0x181E80D10", 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: 0x060090F5 RID: 37109 RVA: 0x00202464 File Offset: 0x00200664
|
|
[Token(Token = "0x60090F5")]
|
|
[Address(RVA = "0x1E80DB0", Offset = "0x1E7F7B0", VA = "0x181E80DB0", 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: 0x060090F6 RID: 37110 RVA: 0x00202490 File Offset: 0x00200690
|
|
[Token(Token = "0x60090F6")]
|
|
[Address(RVA = "0x1E80E50", Offset = "0x1E7F850", VA = "0x181E80E50", Slot = "20")]
|
|
protected virtual void ReportServerVersion(DtlsClientProtocol.ClientHandshakeState state, ProtocolVersion server_version)
|
|
{
|
|
TlsClientContextImpl clientContext;
|
|
bool flag;
|
|
do
|
|
{
|
|
clientContext = state.clientContext;
|
|
}
|
|
while (!flag);
|
|
ProtocolVersion serverVersion = clientContext.ServerVersion;
|
|
TlsClient client = state.client;
|
|
}
|
|
|
|
// Token: 0x060090F7 RID: 37111 RVA: 0x002024BC File Offset: 0x002006BC
|
|
[Token(Token = "0x60090F7")]
|
|
[Address(RVA = "0x1E7FB50", Offset = "0x1E7E550", VA = "0x181E7FB50")]
|
|
protected static byte[] PatchClientHelloWithCookie(byte[] clientHelloBody, byte[] cookie)
|
|
{
|
|
int num = PngHelperInternal.ReadInt1fromByte(clientHelloBody, 34);
|
|
num += 35;
|
|
int num2 = num + 1;
|
|
byte[] array = new byte[cookie.Length];
|
|
int num3 = 0;
|
|
int num4 = 0;
|
|
Array.Copy(clientHelloBody, num4, array, num3, num);
|
|
TlsUtilities.CheckUint8(cookie.Length);
|
|
TlsUtilities.WriteUint8((byte)cookie.Length, array, num);
|
|
int length = cookie.Length;
|
|
int num5 = 0;
|
|
Array.Copy(cookie, num5, array, num2, length);
|
|
int num6 = clientHelloBody.Length;
|
|
int num7 = cookie.Length;
|
|
num6 -= num2;
|
|
num7 += num2;
|
|
Array.Copy(clientHelloBody, num2, array, num7, num6);
|
|
return array;
|
|
}
|
|
|
|
// Token: 0x02001545 RID: 5445
|
|
[Token(Token = "0x2001545")]
|
|
protected internal class ClientHandshakeState
|
|
{
|
|
// Token: 0x060090F8 RID: 37112 RVA: 0x00202558 File Offset: 0x00200758
|
|
[Token(Token = "0x60090F8")]
|
|
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
|
|
public ClientHandshakeState()
|
|
{
|
|
}
|
|
|
|
// Token: 0x04006020 RID: 24608
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x4006020")]
|
|
internal TlsClient client;
|
|
|
|
// Token: 0x04006021 RID: 24609
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x4006021")]
|
|
internal TlsClientContextImpl clientContext;
|
|
|
|
// Token: 0x04006022 RID: 24610
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
|
[Token(Token = "0x4006022")]
|
|
internal TlsSession tlsSession;
|
|
|
|
// Token: 0x04006023 RID: 24611
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
|
[Token(Token = "0x4006023")]
|
|
internal SessionParameters sessionParameters;
|
|
|
|
// Token: 0x04006024 RID: 24612
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
|
|
[Token(Token = "0x4006024")]
|
|
internal SessionParameters.Builder sessionParametersBuilder;
|
|
|
|
// Token: 0x04006025 RID: 24613
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
|
|
[Token(Token = "0x4006025")]
|
|
internal int[] offeredCipherSuites;
|
|
|
|
// Token: 0x04006026 RID: 24614
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
|
|
[Token(Token = "0x4006026")]
|
|
internal IDictionary clientExtensions;
|
|
|
|
// Token: 0x04006027 RID: 24615
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
|
|
[Token(Token = "0x4006027")]
|
|
internal IDictionary serverExtensions;
|
|
|
|
// Token: 0x04006028 RID: 24616
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x50")]
|
|
[Token(Token = "0x4006028")]
|
|
internal byte[] selectedSessionID;
|
|
|
|
// Token: 0x04006029 RID: 24617
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x58")]
|
|
[Token(Token = "0x4006029")]
|
|
internal bool resumedSession;
|
|
|
|
// Token: 0x0400602A RID: 24618
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x59")]
|
|
[Token(Token = "0x400602A")]
|
|
internal bool secure_renegotiation;
|
|
|
|
// Token: 0x0400602B RID: 24619
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x5A")]
|
|
[Token(Token = "0x400602B")]
|
|
internal bool allowCertificateStatus;
|
|
|
|
// Token: 0x0400602C RID: 24620
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x5B")]
|
|
[Token(Token = "0x400602C")]
|
|
internal bool expectSessionTicket;
|
|
|
|
// Token: 0x0400602D RID: 24621
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x60")]
|
|
[Token(Token = "0x400602D")]
|
|
internal TlsKeyExchange keyExchange;
|
|
|
|
// Token: 0x0400602E RID: 24622
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x68")]
|
|
[Token(Token = "0x400602E")]
|
|
internal TlsAuthentication authentication;
|
|
|
|
// Token: 0x0400602F RID: 24623
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x70")]
|
|
[Token(Token = "0x400602F")]
|
|
internal CertificateStatus certificateStatus;
|
|
|
|
// Token: 0x04006030 RID: 24624
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x78")]
|
|
[Token(Token = "0x4006030")]
|
|
internal CertificateRequest certificateRequest;
|
|
|
|
// Token: 0x04006031 RID: 24625
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x80")]
|
|
[Token(Token = "0x4006031")]
|
|
internal TlsCredentials clientCredentials;
|
|
}
|
|
}
|
|
}
|