package org.bouncycastle.x509; import com.google.common.primitives.UnsignedBytes; import java.io.ByteArrayInputStream; import java.io.IOException; import java.math.BigInteger; import java.net.HttpURLConnection; import java.net.InetAddress; import java.net.URL; import java.security.PublicKey; import java.security.cert.CertPath; import java.security.cert.CertPathValidatorException; import java.security.cert.Certificate; import java.security.cert.CertificateFactory; import java.security.cert.PKIXCertPathChecker; import java.security.cert.PKIXParameters; import java.security.cert.PolicyNode; import java.security.cert.TrustAnchor; import java.security.cert.X509CRL; import java.security.cert.X509CertSelector; import java.security.cert.X509Certificate; import java.util.ArrayList; import java.util.Collection; import java.util.Date; import java.util.Iterator; import java.util.List; import java.util.Set; import java.util.Vector; import javax.security.auth.x500.X500Principal; import org.bouncycastle.asn1.ASN1InputStream; import org.bouncycastle.asn1.ASN1ObjectIdentifier; import org.bouncycastle.asn1.ASN1OctetString; import org.bouncycastle.asn1.ASN1Primitive; import org.bouncycastle.asn1.ASN1Sequence; import org.bouncycastle.asn1.DERIA5String; import org.bouncycastle.asn1.DEROctetString; import org.bouncycastle.asn1.x509.AccessDescription; import org.bouncycastle.asn1.x509.AuthorityInformationAccess; import org.bouncycastle.asn1.x509.AuthorityKeyIdentifier; import org.bouncycastle.asn1.x509.BasicConstraints; import org.bouncycastle.asn1.x509.CRLDistPoint; import org.bouncycastle.asn1.x509.DistributionPoint; import org.bouncycastle.asn1.x509.DistributionPointName; import org.bouncycastle.asn1.x509.GeneralName; import org.bouncycastle.asn1.x509.GeneralNames; import org.bouncycastle.asn1.x509.GeneralSubtree; import org.bouncycastle.asn1.x509.NameConstraints; import org.bouncycastle.asn1.x509.X509Extensions; import org.bouncycastle.asn1.x509.qualified.MonetaryValue; import org.bouncycastle.asn1.x509.qualified.QCStatement; import org.bouncycastle.i18n.ErrorBundle; import org.bouncycastle.i18n.filter.TrustedInput; import org.bouncycastle.i18n.filter.UntrustedInput; import org.bouncycastle.jce.provider.AnnotatedException; import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.bouncycastle.jce.provider.PKIXNameConstraintValidator; import org.bouncycastle.jce.provider.PKIXNameConstraintValidatorException; import org.bouncycastle.util.Integers; /* loaded from: classes6.dex */ public class PKIXCertPathReviewer extends CertPathValidatorUtilities { private static final String RESOURCE_NAME = "org.bouncycastle.x509.CertPathReviewerMessages"; protected CertPath certPath; protected List certs; protected List[] errors; private boolean initialized; protected int n; protected List[] notifications; protected PKIXParameters pkixParams; protected PolicyNode policyTree; protected PublicKey subjectPublicKey; protected TrustAnchor trustAnchor; protected Date validDate; private static final String QC_STATEMENT = X509Extensions.QCStatements.getId(); private static final String CRL_DIST_POINTS = X509Extensions.CRLDistributionPoints.getId(); private static final String AUTH_INFO_ACCESS = X509Extensions.AuthorityInfoAccess.getId(); public boolean isValidCertPath() { doChecks(); int i = 0; while (true) { List[] listArr = this.errors; if (i >= listArr.length) { return true; } if (!listArr[i].isEmpty()) { return false; } i++; } } public void init(CertPath certPath, PKIXParameters pKIXParameters) throws CertPathReviewerException { if (this.initialized) { throw new IllegalStateException("object is already initialized!"); } this.initialized = true; if (certPath == null) { throw new NullPointerException("certPath was null"); } this.certPath = certPath; List certificates = certPath.getCertificates(); this.certs = certificates; this.n = certificates.size(); if (this.certs.isEmpty()) { throw new CertPathReviewerException(new ErrorBundle(RESOURCE_NAME, "CertPathReviewer.emptyCertPath")); } PKIXParameters pKIXParameters2 = (PKIXParameters) pKIXParameters.clone(); this.pkixParams = pKIXParameters2; this.validDate = getValidDate(pKIXParameters2); this.notifications = null; this.errors = null; this.trustAnchor = null; this.subjectPublicKey = null; this.policyTree = null; } protected Collection getTrustAnchors(X509Certificate x509Certificate, Set set) throws CertPathReviewerException { ArrayList arrayList = new ArrayList(); Iterator it = set.iterator(); X509CertSelector x509CertSelector = new X509CertSelector(); try { x509CertSelector.setSubject(getEncodedIssuerPrincipal(x509Certificate).getEncoded()); byte[] extensionValue = x509Certificate.getExtensionValue(X509Extensions.AuthorityKeyIdentifier.getId()); if (extensionValue != null) { AuthorityKeyIdentifier authorityKeyIdentifier = AuthorityKeyIdentifier.getInstance(ASN1Primitive.fromByteArray(((ASN1OctetString) ASN1Primitive.fromByteArray(extensionValue)).getOctets())); x509CertSelector.setSerialNumber(authorityKeyIdentifier.getAuthorityCertSerialNumber()); byte[] keyIdentifier = authorityKeyIdentifier.getKeyIdentifier(); if (keyIdentifier != null) { x509CertSelector.setSubjectKeyIdentifier(new DEROctetString(keyIdentifier).getEncoded()); } } while (it.hasNext()) { TrustAnchor trustAnchor = (TrustAnchor) it.next(); if (trustAnchor.getTrustedCert() != null) { if (x509CertSelector.match(trustAnchor.getTrustedCert())) { arrayList.add(trustAnchor); } } else if (trustAnchor.getCAName() != null && trustAnchor.getCAPublicKey() != null && getEncodedIssuerPrincipal(x509Certificate).equals(new X500Principal(trustAnchor.getCAName()))) { arrayList.add(trustAnchor); } } return arrayList; } catch (IOException unused) { throw new CertPathReviewerException(new ErrorBundle(RESOURCE_NAME, "CertPathReviewer.trustAnchorIssuerError")); } } public TrustAnchor getTrustAnchor() { doChecks(); return this.trustAnchor; } public PublicKey getSubjectPublicKey() { doChecks(); return this.subjectPublicKey; } public PolicyNode getPolicyTree() { doChecks(); return this.policyTree; } protected Vector getOCSPUrls(AuthorityInformationAccess authorityInformationAccess) { Vector vector = new Vector(); if (authorityInformationAccess != null) { AccessDescription[] accessDescriptions = authorityInformationAccess.getAccessDescriptions(); for (int i = 0; i < accessDescriptions.length; i++) { if (accessDescriptions[i].getAccessMethod().equals(AccessDescription.id_ad_ocsp)) { GeneralName accessLocation = accessDescriptions[i].getAccessLocation(); if (accessLocation.getTagNo() == 6) { vector.add(((DERIA5String) accessLocation.getName()).getString()); } } } } return vector; } public List[] getNotifications() { doChecks(); return this.notifications; } public List getNotifications(int i) { doChecks(); return this.notifications[i + 1]; } public List[] getErrors() { doChecks(); return this.errors; } public List getErrors(int i) { doChecks(); return this.errors[i + 1]; } public int getCertPathSize() { return this.n; } public CertPath getCertPath() { return this.certPath; } protected Vector getCRLDistUrls(CRLDistPoint cRLDistPoint) { Vector vector = new Vector(); if (cRLDistPoint != null) { for (DistributionPoint distributionPoint : cRLDistPoint.getDistributionPoints()) { DistributionPointName distributionPoint2 = distributionPoint.getDistributionPoint(); if (distributionPoint2.getType() == 0) { GeneralName[] names = GeneralNames.getInstance(distributionPoint2.getName()).getNames(); for (int i = 0; i < names.length; i++) { if (names[i].getTagNo() == 6) { vector.add(((DERIA5String) names[i].getName()).getString()); } } } } } return vector; } protected void doChecks() { if (!this.initialized) { throw new IllegalStateException("Object not initialized. Call init() first."); } if (this.notifications != null) { return; } int i = this.n + 1; this.notifications = new List[i]; this.errors = new List[i]; int i2 = 0; while (true) { List[] listArr = this.notifications; if (i2 >= listArr.length) { checkSignatures(); checkNameConstraints(); checkPathLength(); checkPolicy(); checkCriticalExtensions(); return; } listArr[i2] = new ArrayList(); this.errors[i2] = new ArrayList(); i2++; } } protected void checkRevocation(PKIXParameters pKIXParameters, X509Certificate x509Certificate, Date date, X509Certificate x509Certificate2, PublicKey publicKey, Vector vector, Vector vector2, int i) throws CertPathReviewerException { checkCRLs(pKIXParameters, x509Certificate, date, x509Certificate2, publicKey, vector, i); } /* JADX WARN: Removed duplicated region for block: B:100:0x02b4 */ /* JADX WARN: Removed duplicated region for block: B:186:0x02cc */ /* JADX WARN: Removed duplicated region for block: B:97:0x029f */ /* Code decompiled incorrectly, please refer to instructions dump. To view partially-correct add '--show-bad-code' argument */ protected void checkCRLs(java.security.cert.PKIXParameters r20, java.security.cert.X509Certificate r21, java.util.Date r22, java.security.cert.X509Certificate r23, java.security.PublicKey r24, java.util.Vector r25, int r26) throws org.bouncycastle.x509.CertPathReviewerException { /* Method dump skipped, instructions count: 1149 To view this dump add '--comments-level debug' option */ throw new UnsupportedOperationException("Method not decompiled: org.bouncycastle.x509.PKIXCertPathReviewer.checkCRLs(java.security.cert.PKIXParameters, java.security.cert.X509Certificate, java.util.Date, java.security.cert.X509Certificate, java.security.PublicKey, java.util.Vector, int):void"); } protected void addNotification(ErrorBundle errorBundle, int i) { if (i < -1 || i >= this.n) { throw new IndexOutOfBoundsException(); } this.notifications[i + 1].add(errorBundle); } protected void addNotification(ErrorBundle errorBundle) { this.notifications[0].add(errorBundle); } protected void addError(ErrorBundle errorBundle, int i) { if (i < -1 || i >= this.n) { throw new IndexOutOfBoundsException(); } this.errors[i + 1].add(errorBundle); } protected void addError(ErrorBundle errorBundle) { this.errors[0].add(errorBundle); } private boolean processQcStatements(X509Certificate x509Certificate, int i) { ErrorBundle errorBundle; try { ASN1Sequence aSN1Sequence = (ASN1Sequence) getExtensionValue(x509Certificate, QC_STATEMENT); boolean z = false; for (int i2 = 0; i2 < aSN1Sequence.size(); i2++) { QCStatement qCStatement = QCStatement.getInstance(aSN1Sequence.getObjectAt(i2)); if (QCStatement.id_etsi_qcs_QcCompliance.equals(qCStatement.getStatementId())) { errorBundle = new ErrorBundle(RESOURCE_NAME, "CertPathReviewer.QcEuCompliance"); } else { if (!QCStatement.id_qcs_pkixQCSyntax_v1.equals(qCStatement.getStatementId())) { if (QCStatement.id_etsi_qcs_QcSSCD.equals(qCStatement.getStatementId())) { errorBundle = new ErrorBundle(RESOURCE_NAME, "CertPathReviewer.QcSSCD"); } else if (QCStatement.id_etsi_qcs_LimiteValue.equals(qCStatement.getStatementId())) { MonetaryValue monetaryValue = MonetaryValue.getInstance(qCStatement.getStatementInfo()); monetaryValue.getCurrency(); double doubleValue = monetaryValue.getAmount().doubleValue() * Math.pow(10.0d, monetaryValue.getExponent().doubleValue()); addNotification(monetaryValue.getCurrency().isAlphabetic() ? new ErrorBundle(RESOURCE_NAME, "CertPathReviewer.QcLimitValueAlpha", new Object[]{monetaryValue.getCurrency().getAlphabetic(), new TrustedInput(new Double(doubleValue)), monetaryValue}) : new ErrorBundle(RESOURCE_NAME, "CertPathReviewer.QcLimitValueNum", new Object[]{Integers.valueOf(monetaryValue.getCurrency().getNumeric()), new TrustedInput(new Double(doubleValue)), monetaryValue}), i); } else { addNotification(new ErrorBundle(RESOURCE_NAME, "CertPathReviewer.QcUnknownStatement", new Object[]{qCStatement.getStatementId(), new UntrustedInput(qCStatement)}), i); z = true; } } } addNotification(errorBundle, i); } return !z; } catch (AnnotatedException unused) { addError(new ErrorBundle(RESOURCE_NAME, "CertPathReviewer.QcStatementExtError"), i); return false; } } private X509CRL getCRL(String str) throws CertPathReviewerException { try { URL url = new URL(str); if (!url.getProtocol().equals("http") && !url.getProtocol().equals("https")) { return null; } HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection(); httpURLConnection.setUseCaches(false); httpURLConnection.setDoInput(true); httpURLConnection.connect(); if (httpURLConnection.getResponseCode() == 200) { return (X509CRL) CertificateFactory.getInstance("X.509", BouncyCastleProvider.PROVIDER_NAME).generateCRL(httpURLConnection.getInputStream()); } throw new Exception(httpURLConnection.getResponseMessage()); } catch (Exception e) { throw new CertPathReviewerException(new ErrorBundle(RESOURCE_NAME, "CertPathReviewer.loadCrlDistPointError", new Object[]{new UntrustedInput(str), e.getMessage(), e, e.getClass().getName()})); } } /* JADX WARN: Can't wrap try/catch for region: R(13:80|81|(6:(15:83|84|85|(11:87|88|(2:91|89)|92|93|(2:96|94)|97|98|99|100|101)|108|88|(1:89)|92|93|(1:94)|97|98|99|100|101)|97|98|99|100|101)|111|84|85|(0)|108|88|(1:89)|92|93|(1:94)) */ /* JADX WARN: Can't wrap try/catch for region: R(15:28|(2:138|139)(2:30|(2:132|133)(3:32|(3:118|119|(2:121|(5:123|124|125|126|127)))|34))|(2:35|36)|37|(18:80|81|(15:83|84|85|(11:87|88|(2:91|89)|92|93|(2:96|94)|97|98|99|100|101)|108|88|(1:89)|92|93|(1:94)|97|98|99|100|101)|111|84|85|(0)|108|88|(1:89)|92|93|(1:94)|97|98|99|100|101)(1:39)|(1:43)|44|(7:46|(2:48|(1:50))(1:78)|51|52|(2:54|(1:56))(1:75)|57|(1:61))(1:79)|62|63|64|66|67|69|70) */ /* JADX WARN: Code restructure failed: missing block: B:110:0x029d, code lost: addError(new org.bouncycastle.i18n.ErrorBundle(org.bouncycastle.x509.PKIXCertPathReviewer.RESOURCE_NAME, "CertPathReviewer.crlAuthInfoAccError"), r6); */ /* JADX WARN: Code restructure failed: missing block: B:72:0x03c6, code lost: addError(new org.bouncycastle.i18n.ErrorBundle(org.bouncycastle.x509.PKIXCertPathReviewer.RESOURCE_NAME, "CertPathReviewer.pubKeyError"), r12); */ /* JADX WARN: Code restructure failed: missing block: B:74:0x03c4, code lost: r7 = r18; */ /* JADX WARN: Removed duplicated region for block: B:150:0x0163 */ /* JADX WARN: Removed duplicated region for block: B:154:0x013b */ /* JADX WARN: Removed duplicated region for block: B:21:0x013e */ /* JADX WARN: Removed duplicated region for block: B:28:0x0173 */ /* JADX WARN: Removed duplicated region for block: B:39:0x0320 */ /* JADX WARN: Removed duplicated region for block: B:41:0x032a */ /* JADX WARN: Removed duplicated region for block: B:46:0x0354 */ /* JADX WARN: Removed duplicated region for block: B:79:0x03ae */ /* JADX WARN: Removed duplicated region for block: B:80:0x0278 A[EXC_TOP_SPLITTER, SYNTHETIC] */ /* JADX WARN: Removed duplicated region for block: B:87:0x0298 A[Catch: AnnotatedException -> 0x029d, TRY_LEAVE, TryCatch #15 {AnnotatedException -> 0x029d, blocks: (B:85:0x0290, B:87:0x0298), top: B:84:0x0290 }] */ /* JADX WARN: Removed duplicated region for block: B:91:0x02ba A[LOOP:1: B:89:0x02b4->B:91:0x02ba, LOOP_END] */ /* JADX WARN: Removed duplicated region for block: B:96:0x02dd A[LOOP:2: B:94:0x02d7->B:96:0x02dd, LOOP_END] */ /* JADX WARN: Removed duplicated region for block: B:9:0x00f7 */ /* Code decompiled incorrectly, please refer to instructions dump. To view partially-correct add '--show-bad-code' argument */ private void checkSignatures() { /* Method dump skipped, instructions count: 995 To view this dump add '--comments-level debug' option */ throw new UnsupportedOperationException("Method not decompiled: org.bouncycastle.x509.PKIXCertPathReviewer.checkSignatures():void"); } /* JADX WARN: Removed duplicated region for block: B:224:0x013d A[Catch: CertPathReviewerException -> 0x0607, TRY_LEAVE, TryCatch #8 {CertPathReviewerException -> 0x0607, blocks: (B:15:0x006f, B:19:0x007f, B:22:0x008c, B:26:0x009c, B:27:0x00a7, B:29:0x00ad, B:32:0x00ce, B:33:0x00d6, B:35:0x00dc, B:41:0x00e1, B:42:0x00ed, B:48:0x00f9, B:51:0x0100, B:52:0x0109, B:54:0x010f, B:57:0x0119, B:63:0x0120, B:65:0x0124, B:69:0x0210, B:71:0x0216, B:72:0x0219, B:74:0x021f, B:76:0x022b, B:83:0x0233, B:81:0x0236, B:87:0x0239, B:89:0x023f, B:90:0x0248, B:92:0x024e, B:101:0x0271, B:102:0x027d, B:103:0x027e, B:109:0x0282, B:111:0x028a, B:112:0x028e, B:114:0x0294, B:117:0x02b6, B:119:0x02c0, B:121:0x02c5, B:122:0x02d1, B:124:0x02d2, B:125:0x02de, B:128:0x02e1, B:129:0x02ee, B:131:0x02f4, B:133:0x031a, B:135:0x0332, B:136:0x0329, B:139:0x0339, B:140:0x033f, B:142:0x0345, B:151:0x034d, B:146:0x0377, B:157:0x0355, B:158:0x0361, B:160:0x0363, B:161:0x0372, B:163:0x0380, B:172:0x039f, B:174:0x03a9, B:175:0x03ad, B:177:0x03b3, B:191:0x03c2, B:180:0x03d3, B:199:0x03e4, B:201:0x03ee, B:107:0x0430, B:208:0x03fa, B:209:0x0408, B:211:0x0409, B:212:0x0417, B:219:0x0419, B:220:0x0427, B:221:0x0133, B:222:0x0137, B:224:0x013d, B:227:0x0153, B:229:0x015d, B:230:0x0162, B:232:0x0168, B:233:0x0176, B:235:0x017c, B:261:0x0188, B:245:0x0195, B:246:0x019b, B:248:0x01a1, B:256:0x01ba, B:237:0x018b, B:244:0x018f, B:263:0x01f3, B:268:0x0203, B:269:0x020f, B:276:0x043f, B:277:0x044c, B:279:0x044d, B:284:0x045e, B:286:0x0468, B:287:0x046d, B:289:0x0473, B:292:0x0481, B:306:0x049a, B:313:0x05ed, B:314:0x05f9, B:316:0x04a5, B:317:0x04b1, B:318:0x04b2, B:320:0x04b8, B:322:0x04c0, B:324:0x04c6, B:326:0x04d0, B:327:0x04d3, B:329:0x04d9, B:331:0x04e9, B:332:0x04ed, B:334:0x04f3, B:336:0x04fb, B:339:0x04fe, B:341:0x0501, B:342:0x0505, B:344:0x050b, B:347:0x051b, B:349:0x0521, B:350:0x0526, B:352:0x052c, B:354:0x0538, B:356:0x053c, B:359:0x053f, B:361:0x0544, B:362:0x0550, B:364:0x0555, B:366:0x055f, B:367:0x0562, B:369:0x0568, B:371:0x0578, B:372:0x057c, B:374:0x0582, B:377:0x0592, B:382:0x0596, B:385:0x0599, B:387:0x059c, B:388:0x05a2, B:390:0x05a8, B:392:0x05ba, B:398:0x05c3, B:400:0x05c9, B:401:0x05cc, B:403:0x05d2, B:405:0x05de, B:407:0x05e2, B:410:0x05e5, B:414:0x05fa, B:415:0x0606), top: B:14:0x006f, inners: #0, #1, #2, #3, #4, #5, #7, #10 }] */ /* JADX WARN: Removed duplicated region for block: B:63:0x0120 A[Catch: CertPathReviewerException -> 0x0607, TryCatch #8 {CertPathReviewerException -> 0x0607, blocks: (B:15:0x006f, B:19:0x007f, B:22:0x008c, B:26:0x009c, B:27:0x00a7, B:29:0x00ad, B:32:0x00ce, B:33:0x00d6, B:35:0x00dc, B:41:0x00e1, B:42:0x00ed, B:48:0x00f9, B:51:0x0100, B:52:0x0109, B:54:0x010f, B:57:0x0119, B:63:0x0120, B:65:0x0124, B:69:0x0210, B:71:0x0216, B:72:0x0219, B:74:0x021f, B:76:0x022b, B:83:0x0233, B:81:0x0236, B:87:0x0239, B:89:0x023f, B:90:0x0248, B:92:0x024e, B:101:0x0271, B:102:0x027d, B:103:0x027e, B:109:0x0282, B:111:0x028a, B:112:0x028e, B:114:0x0294, B:117:0x02b6, B:119:0x02c0, B:121:0x02c5, B:122:0x02d1, B:124:0x02d2, B:125:0x02de, B:128:0x02e1, B:129:0x02ee, B:131:0x02f4, B:133:0x031a, B:135:0x0332, B:136:0x0329, B:139:0x0339, B:140:0x033f, B:142:0x0345, B:151:0x034d, B:146:0x0377, B:157:0x0355, B:158:0x0361, B:160:0x0363, B:161:0x0372, B:163:0x0380, B:172:0x039f, B:174:0x03a9, B:175:0x03ad, B:177:0x03b3, B:191:0x03c2, B:180:0x03d3, B:199:0x03e4, B:201:0x03ee, B:107:0x0430, B:208:0x03fa, B:209:0x0408, B:211:0x0409, B:212:0x0417, B:219:0x0419, B:220:0x0427, B:221:0x0133, B:222:0x0137, B:224:0x013d, B:227:0x0153, B:229:0x015d, B:230:0x0162, B:232:0x0168, B:233:0x0176, B:235:0x017c, B:261:0x0188, B:245:0x0195, B:246:0x019b, B:248:0x01a1, B:256:0x01ba, B:237:0x018b, B:244:0x018f, B:263:0x01f3, B:268:0x0203, B:269:0x020f, B:276:0x043f, B:277:0x044c, B:279:0x044d, B:284:0x045e, B:286:0x0468, B:287:0x046d, B:289:0x0473, B:292:0x0481, B:306:0x049a, B:313:0x05ed, B:314:0x05f9, B:316:0x04a5, B:317:0x04b1, B:318:0x04b2, B:320:0x04b8, B:322:0x04c0, B:324:0x04c6, B:326:0x04d0, B:327:0x04d3, B:329:0x04d9, B:331:0x04e9, B:332:0x04ed, B:334:0x04f3, B:336:0x04fb, B:339:0x04fe, B:341:0x0501, B:342:0x0505, B:344:0x050b, B:347:0x051b, B:349:0x0521, B:350:0x0526, B:352:0x052c, B:354:0x0538, B:356:0x053c, B:359:0x053f, B:361:0x0544, B:362:0x0550, B:364:0x0555, B:366:0x055f, B:367:0x0562, B:369:0x0568, B:371:0x0578, B:372:0x057c, B:374:0x0582, B:377:0x0592, B:382:0x0596, B:385:0x0599, B:387:0x059c, B:388:0x05a2, B:390:0x05a8, B:392:0x05ba, B:398:0x05c3, B:400:0x05c9, B:401:0x05cc, B:403:0x05d2, B:405:0x05de, B:407:0x05e2, B:410:0x05e5, B:414:0x05fa, B:415:0x0606), top: B:14:0x006f, inners: #0, #1, #2, #3, #4, #5, #7, #10 }] */ /* JADX WARN: Removed duplicated region for block: B:71:0x0216 A[Catch: CertPathReviewerException -> 0x0607, TryCatch #8 {CertPathReviewerException -> 0x0607, blocks: (B:15:0x006f, B:19:0x007f, B:22:0x008c, B:26:0x009c, B:27:0x00a7, B:29:0x00ad, B:32:0x00ce, B:33:0x00d6, B:35:0x00dc, B:41:0x00e1, B:42:0x00ed, B:48:0x00f9, B:51:0x0100, B:52:0x0109, B:54:0x010f, B:57:0x0119, B:63:0x0120, B:65:0x0124, B:69:0x0210, B:71:0x0216, B:72:0x0219, B:74:0x021f, B:76:0x022b, B:83:0x0233, B:81:0x0236, B:87:0x0239, B:89:0x023f, B:90:0x0248, B:92:0x024e, B:101:0x0271, B:102:0x027d, B:103:0x027e, B:109:0x0282, B:111:0x028a, B:112:0x028e, B:114:0x0294, B:117:0x02b6, B:119:0x02c0, B:121:0x02c5, B:122:0x02d1, B:124:0x02d2, B:125:0x02de, B:128:0x02e1, B:129:0x02ee, B:131:0x02f4, B:133:0x031a, B:135:0x0332, B:136:0x0329, B:139:0x0339, B:140:0x033f, B:142:0x0345, B:151:0x034d, B:146:0x0377, B:157:0x0355, B:158:0x0361, B:160:0x0363, B:161:0x0372, B:163:0x0380, B:172:0x039f, B:174:0x03a9, B:175:0x03ad, B:177:0x03b3, B:191:0x03c2, B:180:0x03d3, B:199:0x03e4, B:201:0x03ee, B:107:0x0430, B:208:0x03fa, B:209:0x0408, B:211:0x0409, B:212:0x0417, B:219:0x0419, B:220:0x0427, B:221:0x0133, B:222:0x0137, B:224:0x013d, B:227:0x0153, B:229:0x015d, B:230:0x0162, B:232:0x0168, B:233:0x0176, B:235:0x017c, B:261:0x0188, B:245:0x0195, B:246:0x019b, B:248:0x01a1, B:256:0x01ba, B:237:0x018b, B:244:0x018f, B:263:0x01f3, B:268:0x0203, B:269:0x020f, B:276:0x043f, B:277:0x044c, B:279:0x044d, B:284:0x045e, B:286:0x0468, B:287:0x046d, B:289:0x0473, B:292:0x0481, B:306:0x049a, B:313:0x05ed, B:314:0x05f9, B:316:0x04a5, B:317:0x04b1, B:318:0x04b2, B:320:0x04b8, B:322:0x04c0, B:324:0x04c6, B:326:0x04d0, B:327:0x04d3, B:329:0x04d9, B:331:0x04e9, B:332:0x04ed, B:334:0x04f3, B:336:0x04fb, B:339:0x04fe, B:341:0x0501, B:342:0x0505, B:344:0x050b, B:347:0x051b, B:349:0x0521, B:350:0x0526, B:352:0x052c, B:354:0x0538, B:356:0x053c, B:359:0x053f, B:361:0x0544, B:362:0x0550, B:364:0x0555, B:366:0x055f, B:367:0x0562, B:369:0x0568, B:371:0x0578, B:372:0x057c, B:374:0x0582, B:377:0x0592, B:382:0x0596, B:385:0x0599, B:387:0x059c, B:388:0x05a2, B:390:0x05a8, B:392:0x05ba, B:398:0x05c3, B:400:0x05c9, B:401:0x05cc, B:403:0x05d2, B:405:0x05de, B:407:0x05e2, B:410:0x05e5, B:414:0x05fa, B:415:0x0606), top: B:14:0x006f, inners: #0, #1, #2, #3, #4, #5, #7, #10 }] */ /* JADX WARN: Removed duplicated region for block: B:89:0x023f A[Catch: CertPathReviewerException -> 0x0607, TryCatch #8 {CertPathReviewerException -> 0x0607, blocks: (B:15:0x006f, B:19:0x007f, B:22:0x008c, B:26:0x009c, B:27:0x00a7, B:29:0x00ad, B:32:0x00ce, B:33:0x00d6, B:35:0x00dc, B:41:0x00e1, B:42:0x00ed, B:48:0x00f9, B:51:0x0100, B:52:0x0109, B:54:0x010f, B:57:0x0119, B:63:0x0120, B:65:0x0124, B:69:0x0210, B:71:0x0216, B:72:0x0219, B:74:0x021f, B:76:0x022b, B:83:0x0233, B:81:0x0236, B:87:0x0239, B:89:0x023f, B:90:0x0248, B:92:0x024e, B:101:0x0271, B:102:0x027d, B:103:0x027e, B:109:0x0282, B:111:0x028a, B:112:0x028e, B:114:0x0294, B:117:0x02b6, B:119:0x02c0, B:121:0x02c5, B:122:0x02d1, B:124:0x02d2, B:125:0x02de, B:128:0x02e1, B:129:0x02ee, B:131:0x02f4, B:133:0x031a, B:135:0x0332, B:136:0x0329, B:139:0x0339, B:140:0x033f, B:142:0x0345, B:151:0x034d, B:146:0x0377, B:157:0x0355, B:158:0x0361, B:160:0x0363, B:161:0x0372, B:163:0x0380, B:172:0x039f, B:174:0x03a9, B:175:0x03ad, B:177:0x03b3, B:191:0x03c2, B:180:0x03d3, B:199:0x03e4, B:201:0x03ee, B:107:0x0430, B:208:0x03fa, B:209:0x0408, B:211:0x0409, B:212:0x0417, B:219:0x0419, B:220:0x0427, B:221:0x0133, B:222:0x0137, B:224:0x013d, B:227:0x0153, B:229:0x015d, B:230:0x0162, B:232:0x0168, B:233:0x0176, B:235:0x017c, B:261:0x0188, B:245:0x0195, B:246:0x019b, B:248:0x01a1, B:256:0x01ba, B:237:0x018b, B:244:0x018f, B:263:0x01f3, B:268:0x0203, B:269:0x020f, B:276:0x043f, B:277:0x044c, B:279:0x044d, B:284:0x045e, B:286:0x0468, B:287:0x046d, B:289:0x0473, B:292:0x0481, B:306:0x049a, B:313:0x05ed, B:314:0x05f9, B:316:0x04a5, B:317:0x04b1, B:318:0x04b2, B:320:0x04b8, B:322:0x04c0, B:324:0x04c6, B:326:0x04d0, B:327:0x04d3, B:329:0x04d9, B:331:0x04e9, B:332:0x04ed, B:334:0x04f3, B:336:0x04fb, B:339:0x04fe, B:341:0x0501, B:342:0x0505, B:344:0x050b, B:347:0x051b, B:349:0x0521, B:350:0x0526, B:352:0x052c, B:354:0x0538, B:356:0x053c, B:359:0x053f, B:361:0x0544, B:362:0x0550, B:364:0x0555, B:366:0x055f, B:367:0x0562, B:369:0x0568, B:371:0x0578, B:372:0x057c, B:374:0x0582, B:377:0x0592, B:382:0x0596, B:385:0x0599, B:387:0x059c, B:388:0x05a2, B:390:0x05a8, B:392:0x05ba, B:398:0x05c3, B:400:0x05c9, B:401:0x05cc, B:403:0x05d2, B:405:0x05de, B:407:0x05e2, B:410:0x05e5, B:414:0x05fa, B:415:0x0606), top: B:14:0x006f, inners: #0, #1, #2, #3, #4, #5, #7, #10 }] */ /* Code decompiled incorrectly, please refer to instructions dump. To view partially-correct add '--show-bad-code' argument */ private void checkPolicy() { /* Method dump skipped, instructions count: 1556 To view this dump add '--comments-level debug' option */ throw new UnsupportedOperationException("Method not decompiled: org.bouncycastle.x509.PKIXCertPathReviewer.checkPolicy():void"); } private void checkPathLength() { BasicConstraints basicConstraints; BigInteger pathLenConstraint; int intValue; int i = this.n; int i2 = 0; for (int size = this.certs.size() - 1; size > 0; size--) { X509Certificate x509Certificate = (X509Certificate) this.certs.get(size); if (!isSelfIssued(x509Certificate)) { if (i <= 0) { addError(new ErrorBundle(RESOURCE_NAME, "CertPathReviewer.pathLengthExtended")); } i--; i2++; } try { basicConstraints = BasicConstraints.getInstance(getExtensionValue(x509Certificate, BASIC_CONSTRAINTS)); } catch (AnnotatedException unused) { addError(new ErrorBundle(RESOURCE_NAME, "CertPathReviewer.processLengthConstError"), size); basicConstraints = null; } if (basicConstraints != null && (pathLenConstraint = basicConstraints.getPathLenConstraint()) != null && (intValue = pathLenConstraint.intValue()) < i) { i = intValue; } } addNotification(new ErrorBundle(RESOURCE_NAME, "CertPathReviewer.totalPathLength", new Object[]{Integers.valueOf(i2)})); } private void checkNameConstraints() { PKIXNameConstraintValidator pKIXNameConstraintValidator = new PKIXNameConstraintValidator(); try { for (int size = this.certs.size() - 1; size > 0; size--) { X509Certificate x509Certificate = (X509Certificate) this.certs.get(size); if (!isSelfIssued(x509Certificate)) { X500Principal subjectPrincipal = getSubjectPrincipal(x509Certificate); try { ASN1Sequence aSN1Sequence = (ASN1Sequence) new ASN1InputStream(new ByteArrayInputStream(subjectPrincipal.getEncoded())).readObject(); try { pKIXNameConstraintValidator.checkPermittedDN(aSN1Sequence); try { pKIXNameConstraintValidator.checkExcludedDN(aSN1Sequence); try { ASN1Sequence aSN1Sequence2 = (ASN1Sequence) getExtensionValue(x509Certificate, SUBJECT_ALTERNATIVE_NAME); if (aSN1Sequence2 != null) { for (int i = 0; i < aSN1Sequence2.size(); i++) { GeneralName generalName = GeneralName.getInstance(aSN1Sequence2.getObjectAt(i)); try { pKIXNameConstraintValidator.checkPermitted(generalName); pKIXNameConstraintValidator.checkExcluded(generalName); } catch (PKIXNameConstraintValidatorException e) { throw new CertPathReviewerException(new ErrorBundle(RESOURCE_NAME, "CertPathReviewer.notPermittedEmail", new Object[]{new UntrustedInput(generalName)}), e, this.certPath, size); } } } } catch (AnnotatedException e2) { throw new CertPathReviewerException(new ErrorBundle(RESOURCE_NAME, "CertPathReviewer.subjAltNameExtError"), e2, this.certPath, size); } } catch (PKIXNameConstraintValidatorException e3) { throw new CertPathReviewerException(new ErrorBundle(RESOURCE_NAME, "CertPathReviewer.excludedDN", new Object[]{new UntrustedInput(subjectPrincipal.getName())}), e3, this.certPath, size); } } catch (PKIXNameConstraintValidatorException e4) { throw new CertPathReviewerException(new ErrorBundle(RESOURCE_NAME, "CertPathReviewer.notPermittedDN", new Object[]{new UntrustedInput(subjectPrincipal.getName())}), e4, this.certPath, size); } } catch (IOException e5) { throw new CertPathReviewerException(new ErrorBundle(RESOURCE_NAME, "CertPathReviewer.ncSubjectNameError", new Object[]{new UntrustedInput(subjectPrincipal)}), e5, this.certPath, size); } } try { ASN1Sequence aSN1Sequence3 = (ASN1Sequence) getExtensionValue(x509Certificate, NAME_CONSTRAINTS); if (aSN1Sequence3 != null) { NameConstraints nameConstraints = NameConstraints.getInstance(aSN1Sequence3); GeneralSubtree[] permittedSubtrees = nameConstraints.getPermittedSubtrees(); if (permittedSubtrees != null) { pKIXNameConstraintValidator.intersectPermittedSubtree(permittedSubtrees); } GeneralSubtree[] excludedSubtrees = nameConstraints.getExcludedSubtrees(); if (excludedSubtrees != null) { for (int i2 = 0; i2 != excludedSubtrees.length; i2++) { pKIXNameConstraintValidator.addExcludedSubtree(excludedSubtrees[i2]); } } } } catch (AnnotatedException e6) { throw new CertPathReviewerException(new ErrorBundle(RESOURCE_NAME, "CertPathReviewer.ncExtError"), e6, this.certPath, size); } } } catch (CertPathReviewerException e7) { addError(e7.getErrorMessage(), e7.getIndex()); } } private void checkCriticalExtensions() { List certPathCheckers = this.pkixParams.getCertPathCheckers(); Iterator it = certPathCheckers.iterator(); while (it.hasNext()) { try { try { it.next().init(false); } catch (CertPathValidatorException e) { throw new CertPathReviewerException(new ErrorBundle(RESOURCE_NAME, "CertPathReviewer.certPathCheckerError", new Object[]{e.getMessage(), e, e.getClass().getName()}), e); } } catch (CertPathReviewerException e2) { addError(e2.getErrorMessage(), e2.getIndex()); return; } } for (int size = this.certs.size() - 1; size >= 0; size--) { X509Certificate x509Certificate = (X509Certificate) this.certs.get(size); Set criticalExtensionOIDs = x509Certificate.getCriticalExtensionOIDs(); if (criticalExtensionOIDs != null && !criticalExtensionOIDs.isEmpty()) { criticalExtensionOIDs.remove(KEY_USAGE); criticalExtensionOIDs.remove(CERTIFICATE_POLICIES); criticalExtensionOIDs.remove(POLICY_MAPPINGS); criticalExtensionOIDs.remove(INHIBIT_ANY_POLICY); criticalExtensionOIDs.remove(ISSUING_DISTRIBUTION_POINT); criticalExtensionOIDs.remove(DELTA_CRL_INDICATOR); criticalExtensionOIDs.remove(POLICY_CONSTRAINTS); criticalExtensionOIDs.remove(BASIC_CONSTRAINTS); criticalExtensionOIDs.remove(SUBJECT_ALTERNATIVE_NAME); criticalExtensionOIDs.remove(NAME_CONSTRAINTS); String str = QC_STATEMENT; if (criticalExtensionOIDs.contains(str) && processQcStatements(x509Certificate, size)) { criticalExtensionOIDs.remove(str); } Iterator it2 = certPathCheckers.iterator(); while (it2.hasNext()) { try { it2.next().check(x509Certificate, criticalExtensionOIDs); } catch (CertPathValidatorException e3) { throw new CertPathReviewerException(new ErrorBundle(RESOURCE_NAME, "CertPathReviewer.criticalExtensionError", new Object[]{e3.getMessage(), e3, e3.getClass().getName()}), e3.getCause(), this.certPath, size); } } if (!criticalExtensionOIDs.isEmpty()) { Iterator it3 = criticalExtensionOIDs.iterator(); while (it3.hasNext()) { addError(new ErrorBundle(RESOURCE_NAME, "CertPathReviewer.unknownCriticalExt", new Object[]{new ASN1ObjectIdentifier(it3.next())}), size); } } } } } private String IPtoString(byte[] bArr) { try { return InetAddress.getByAddress(bArr).getHostAddress(); } catch (Exception unused) { StringBuffer stringBuffer = new StringBuffer(); for (int i = 0; i != bArr.length; i++) { stringBuffer.append(Integer.toHexString(bArr[i] & UnsignedBytes.MAX_VALUE)); stringBuffer.append(' '); } return stringBuffer.toString(); } } public PKIXCertPathReviewer(CertPath certPath, PKIXParameters pKIXParameters) throws CertPathReviewerException { init(certPath, pKIXParameters); } public PKIXCertPathReviewer() { } }