using System; using System.Collections; using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1; using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.X509; using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto; using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities; using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Collections; using BestHTTP.SecureProtocol.Org.BouncyCastle.X509; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Pkix { // Token: 0x02001A5C RID: 6748 [Token(Token = "0x2001A5C")] public class PkixCertPathValidator { // Token: 0x06009EF1 RID: 40689 RVA: 0x0020B694 File Offset: 0x00209894 [Token(Token = "0x6009EF1")] [Address(RVA = "0x652210", Offset = "0x651210", VA = "0x180652210", Slot = "4")] public virtual PkixCertPathValidatorResult Validate(PkixCertPath certPath, PkixParameters paramsPkix) { for (;;) { byte[] array; if (array != 0) { if (array == 0) { } int num = 0; TrustAnchor trustAnchor; if (array != 0 && trustAnchor != 0) { int num2 = 0; PkixCertPathValidator.CheckCertificate(trustAnchor.trustedCert); IList[] array2 = new IList[num2]; if (num < array2.Length) { break; } HashSet hashSet = new HashSet(); IList list = Platform.CreateArrayList(); HashSet hashSet2 = new HashSet(); string any_POLICY = Rfc3280CertPathUtilities.ANY_POLICY; int num3; ulong num4; PkixPolicyNode pkixPolicyNode = new PkixPolicyNode(list, num3, hashSet, num, hashSet2, any_POLICY, num4 != 0UL); num3 = 0; IList list2 = array2[0]; PkixNameConstraintValidator pkixNameConstraintValidator = new PkixNameConstraintValidator(); HashSet hashSet3 = new HashSet(); pkixNameConstraintValidator.excludedSubtreesDN = hashSet3; HashSet hashSet4 = new HashSet(); pkixNameConstraintValidator.excludedSubtreesDNS = hashSet4; HashSet hashSet5 = new HashSet(); pkixNameConstraintValidator.excludedSubtreesEmail = hashSet5; HashSet hashSet6 = new HashSet(); pkixNameConstraintValidator.excludedSubtreesURI = hashSet6; HashSet hashSet7 = new HashSet(); pkixNameConstraintValidator.excludedSubtreesIP = hashSet7; HashSet hashSet8 = new HashSet(); if (hashSet7 == 0) { } hashSet7.Clear(); PkixPolicyNode pkixPolicyNode2; if (pkixPolicyNode2 == (ulong)1L && pkixPolicyNode2 == 0) { goto IL_1F3; } int num5; if (num5 == 0) { HashSet hashSet9 = new HashSet(); } DerObjectIdentifier keyUsage = X509Extensions.KeyUsage; DerObjectIdentifier certificatePolicies = X509Extensions.CertificatePolicies; DerObjectIdentifier policyMappings = X509Extensions.PolicyMappings; DerObjectIdentifier inhibitAnyPolicy = X509Extensions.InhibitAnyPolicy; DerObjectIdentifier issuingDistributionPoint = X509Extensions.IssuingDistributionPoint; DerObjectIdentifier deltaCrlIndicator = X509Extensions.DeltaCrlIndicator; DerObjectIdentifier policyConstraints = X509Extensions.PolicyConstraints; DerObjectIdentifier basicConstraints = X509Extensions.BasicConstraints; DerObjectIdentifier subjectAlternativeName = X509Extensions.SubjectAlternativeName; DerObjectIdentifier nameConstraints = X509Extensions.NameConstraints; AsymmetricKeyParameter asymmetricKeyParameter; AlgorithmIdentifier algorithmIdentifier = PkixCertPathValidatorUtilities.GetAlgorithmIdentifier(asymmetricKeyParameter); int num6; if (num6 == 0) { HashSet hashSet10 = new HashSet(); } DerObjectIdentifier keyUsage2 = X509Extensions.KeyUsage; DerObjectIdentifier certificatePolicies2 = X509Extensions.CertificatePolicies; DerObjectIdentifier policyMappings2 = X509Extensions.PolicyMappings; DerObjectIdentifier inhibitAnyPolicy2 = X509Extensions.InhibitAnyPolicy; DerObjectIdentifier issuingDistributionPoint2 = X509Extensions.IssuingDistributionPoint; DerObjectIdentifier deltaCrlIndicator2 = X509Extensions.DeltaCrlIndicator; DerObjectIdentifier policyConstraints2 = X509Extensions.PolicyConstraints; DerObjectIdentifier basicConstraints2 = X509Extensions.BasicConstraints; DerObjectIdentifier subjectAlternativeName2 = X509Extensions.SubjectAlternativeName; DerObjectIdentifier nameConstraints2 = X509Extensions.NameConstraints; DerObjectIdentifier crlDistributionPoints = X509Extensions.CrlDistributionPoints; PkixPolicyNode pkixPolicyNode3; if (pkixPolicyNode3 != 0) { PkixCertPathValidatorResult pkixCertPathValidatorResult; return pkixCertPathValidatorResult; } } } } IList list3 = Platform.CreateArrayList(); throw new ArrayTypeMismatchException(); IL_1F3: throw new NullReferenceException(); } // Token: 0x06009EF2 RID: 40690 RVA: 0x0020B89C File Offset: 0x00209A9C [Token(Token = "0x6009EF2")] [Address(RVA = "0x652150", Offset = "0x651150", VA = "0x180652150")] internal static void CheckCertificate(X509Certificate cert) { Asn1OctetString asn1OctetString; TbsCertificateStructure instance = TbsCertificateStructure.GetInstance(asn1OctetString.str); } // Token: 0x06009EF3 RID: 40691 RVA: 0x0020B8C4 File Offset: 0x00209AC4 [Token(Token = "0x6009EF3")] [Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")] public PkixCertPathValidator() { } } }