Files
Jan2021-Cpp2Il-Dump/Assembly-CSharp/BestHTTP/SecureProtocol/Org/BouncyCastle/Crypto/Tls/DtlsClientProtocol.cs
T
2026-04-08 23:40:05 +02:00

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