188 lines
5.2 KiB
C#
188 lines
5.2 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.IO;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.X509;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
|
|
using Cpp2IlInjected;
|
|
|
|
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls
|
|
{
|
|
// Token: 0x02001BE3 RID: 7139
|
|
[Token(Token = "0x2001BE3")]
|
|
public class CertificateRequest
|
|
{
|
|
// Token: 0x0600AFDC RID: 45020 RVA: 0x002601AC File Offset: 0x0025E3AC
|
|
[Token(Token = "0x600AFDC")]
|
|
[Address(RVA = "0x466000", Offset = "0x465000", VA = "0x180466000")]
|
|
public CertificateRequest(byte[] certificateTypes, IList supportedSignatureAlgorithms, IList certificateAuthorities)
|
|
{
|
|
this.mCertificateTypes = certificateTypes;
|
|
this.mSupportedSignatureAlgorithms = supportedSignatureAlgorithms;
|
|
this.mCertificateAuthorities = certificateAuthorities;
|
|
}
|
|
|
|
// Token: 0x17001BEB RID: 7147
|
|
// (get) Token: 0x0600AFDD RID: 45021 RVA: 0x002601D4 File Offset: 0x0025E3D4
|
|
[Token(Token = "0x17001BEB")]
|
|
public virtual byte[] CertificateTypes
|
|
{
|
|
[Token(Token = "0x600AFDD")]
|
|
[Address(RVA = "0x411530", Offset = "0x410530", VA = "0x180411530", Slot = "4")]
|
|
get
|
|
{
|
|
return this.mCertificateTypes;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17001BEC RID: 7148
|
|
// (get) Token: 0x0600AFDE RID: 45022 RVA: 0x002601E8 File Offset: 0x0025E3E8
|
|
[Token(Token = "0x17001BEC")]
|
|
public virtual IList SupportedSignatureAlgorithms
|
|
{
|
|
[Token(Token = "0x600AFDE")]
|
|
[Address(RVA = "0x4157B0", Offset = "0x4147B0", VA = "0x1804157B0", Slot = "5")]
|
|
get
|
|
{
|
|
return this.mSupportedSignatureAlgorithms;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17001BED RID: 7149
|
|
// (get) Token: 0x0600AFDF RID: 45023 RVA: 0x002601FC File Offset: 0x0025E3FC
|
|
[Token(Token = "0x17001BED")]
|
|
public virtual IList CertificateAuthorities
|
|
{
|
|
[Token(Token = "0x600AFDF")]
|
|
[Address(RVA = "0x4157C0", Offset = "0x4147C0", VA = "0x1804157C0", Slot = "6")]
|
|
get
|
|
{
|
|
return this.mCertificateAuthorities;
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600AFE0 RID: 45024 RVA: 0x00260210 File Offset: 0x0025E410
|
|
[Token(Token = "0x600AFE0")]
|
|
[Address(RVA = "0x232F640", Offset = "0x232E640", VA = "0x18232F640", Slot = "7")]
|
|
public virtual void Encode(Stream output)
|
|
{
|
|
int num;
|
|
do
|
|
{
|
|
num = 0;
|
|
byte[] array = this.mCertificateTypes;
|
|
if (array != 0 && array.Length != num)
|
|
{
|
|
TlsUtilities.WriteUint8ArrayWithUint8Length(array, output);
|
|
}
|
|
TlsUtilities.WriteUint8(0, output);
|
|
IList list = this.mSupportedSignatureAlgorithms;
|
|
if (list != 0)
|
|
{
|
|
int num2 = 0;
|
|
TlsUtilities.EncodeSupportedSignatureAlgorithms(list, num2 != 0, output);
|
|
}
|
|
if (this.mCertificateAuthorities == 0)
|
|
{
|
|
break;
|
|
}
|
|
IList list2 = this.mCertificateAuthorities;
|
|
IList list3 = this.mCertificateAuthorities;
|
|
IList list4;
|
|
if (list4 != 0)
|
|
{
|
|
if (num < list4)
|
|
{
|
|
num += num;
|
|
num++;
|
|
}
|
|
ulong num3;
|
|
list4 += num3;
|
|
if (list4 == 0 || list4 == 0)
|
|
{
|
|
goto IL_F9;
|
|
}
|
|
int num4 = 0;
|
|
if (num < num4)
|
|
{
|
|
num += num;
|
|
num++;
|
|
}
|
|
byte[] array2;
|
|
int num5 = array2.Length;
|
|
num5 += 2;
|
|
num += num5;
|
|
array2 += array2;
|
|
}
|
|
if (num != 0)
|
|
{
|
|
goto IL_105;
|
|
}
|
|
if (num == -1 || "{il2cpp array field local25->}" == (ulong)190L)
|
|
{
|
|
}
|
|
TlsUtilities.CheckUint16(num);
|
|
TlsUtilities.WriteUint16(num, output);
|
|
if (num != 0)
|
|
{
|
|
}
|
|
if (1 != 0)
|
|
{
|
|
}
|
|
}
|
|
while (num != 0);
|
|
TlsUtilities.WriteUint16(0, output);
|
|
return;
|
|
IL_F9:
|
|
throw new NullReferenceException();
|
|
IL_105:
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x0600AFE1 RID: 45025 RVA: 0x00260328 File Offset: 0x0025E528
|
|
[Token(Token = "0x600AFE1")]
|
|
[Address(RVA = "0x232FBF0", Offset = "0x232EBF0", VA = "0x18232FBF0")]
|
|
public static CertificateRequest Parse(TlsContext context, Stream input)
|
|
{
|
|
byte[] array = new byte[(int)TlsUtilities.ReadUint8(input)];
|
|
int num = 0;
|
|
byte b = TlsUtilities.ReadUint8(input);
|
|
num++;
|
|
IList list;
|
|
if (TlsUtilities.IsTlsV12(context))
|
|
{
|
|
list = TlsUtilities.ParseSupportedSignatureAlgorithms(false, input);
|
|
}
|
|
IList list2 = Platform.CreateArrayList();
|
|
int num2;
|
|
MemoryStream memoryStream = new MemoryStream(TlsUtilities.ReadOpaque16(input), num2 != 0);
|
|
num2 = 0;
|
|
long length = memoryStream.Length;
|
|
bool canWrite = memoryStream.CanWrite;
|
|
if (length < (canWrite ? 1L : 0L))
|
|
{
|
|
X509Name instance = X509Name.GetInstance(TlsUtilities.ReadDerObject(TlsUtilities.ReadOpaque16(memoryStream)));
|
|
}
|
|
CertificateRequest certificateRequest;
|
|
certificateRequest.mCertificateAuthorities = list2;
|
|
certificateRequest.mCertificateTypes = array;
|
|
certificateRequest.mSupportedSignatureAlgorithms = list;
|
|
return certificateRequest;
|
|
}
|
|
|
|
// Token: 0x04006EC3 RID: 28355
|
|
[FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x4006EC3")]
|
|
protected readonly byte[] mCertificateTypes;
|
|
|
|
// Token: 0x04006EC4 RID: 28356
|
|
[FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x4006EC4")]
|
|
protected readonly IList mSupportedSignatureAlgorithms;
|
|
|
|
// Token: 0x04006EC5 RID: 28357
|
|
[FieldOffset(Offset = "0x20")]
|
|
[Token(Token = "0x4006EC5")]
|
|
protected readonly IList mCertificateAuthorities;
|
|
}
|
|
}
|