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