public class org.bouncycastle.jce.provider.PKIXCertPathValidatorSpi extends java.security.cert.CertPathValidatorSpi
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.jce.provider.PKIXCertPathValidatorSpi
super_class: java.security.cert.CertPathValidatorSpi
{
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // org.bouncycastle.jce.provider.PKIXCertPathValidatorSpi this
0: .line 33
aload 0 /* this */
invokespecial java.security.cert.CertPathValidatorSpi.<init>:()V
return
end local 0 // org.bouncycastle.jce.provider.PKIXCertPathValidatorSpi this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/jce/provider/PKIXCertPathValidatorSpi;
public java.security.cert.CertPathValidatorResult engineValidate(java.security.cert.CertPath, java.security.cert.CertPathParameters);
descriptor: (Ljava/security/cert/CertPath;Ljava/security/cert/CertPathParameters;)Ljava/security/cert/CertPathValidatorResult;
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=29, args_size=3
start local 0 // org.bouncycastle.jce.provider.PKIXCertPathValidatorSpi this
start local 1 // java.security.cert.CertPath certPath
start local 2 // java.security.cert.CertPathParameters params
0: .line 43
aload 2 /* params */
instanceof java.security.cert.PKIXParameters
ifne 4
1: .line 45
new java.security.InvalidAlgorithmParameterException
dup
new java.lang.StringBuilder
dup
ldc "Parameters must be a "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc Ljava/security/cert/PKIXParameters;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
2: .line 46
ldc " instance."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: .line 45
invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
4: .line 50
StackMap locals:
StackMap stack:
aload 2 /* params */
instanceof org.bouncycastle.x509.ExtendedPKIXParameters
ifeq 7
5: .line 52
aload 2 /* params */
checkcast org.bouncycastle.x509.ExtendedPKIXParameters
astore 3 /* paramsPKIX */
start local 3 // org.bouncycastle.x509.ExtendedPKIXParameters paramsPKIX
6: .line 53
goto 8
end local 3 // org.bouncycastle.x509.ExtendedPKIXParameters paramsPKIX
7: .line 56
StackMap locals:
StackMap stack:
aload 2 /* params */
checkcast java.security.cert.PKIXParameters
invokestatic org.bouncycastle.x509.ExtendedPKIXParameters.getInstance:(Ljava/security/cert/PKIXParameters;)Lorg/bouncycastle/x509/ExtendedPKIXParameters;
astore 3 /* paramsPKIX */
start local 3 // org.bouncycastle.x509.ExtendedPKIXParameters paramsPKIX
8: .line 58
StackMap locals: org.bouncycastle.x509.ExtendedPKIXParameters
StackMap stack:
aload 3 /* paramsPKIX */
invokevirtual org.bouncycastle.x509.ExtendedPKIXParameters.getTrustAnchors:()Ljava/util/Set;
ifnonnull 12
9: .line 60
new java.security.InvalidAlgorithmParameterException
dup
10: .line 61
ldc "trustAnchors is null, this is not allowed for certification path validation."
11: .line 60
invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
12: .line 71
StackMap locals:
StackMap stack:
aload 1 /* certPath */
invokevirtual java.security.cert.CertPath.getCertificates:()Ljava/util/List;
astore 4 /* certs */
start local 4 // java.util.List certs
13: .line 72
aload 4 /* certs */
invokeinterface java.util.List.size:()I
istore 5 /* n */
start local 5 // int n
14: .line 74
aload 4 /* certs */
invokeinterface java.util.List.isEmpty:()Z
ifeq 16
15: .line 76
new java.security.cert.CertPathValidatorException
dup
ldc "Certification path is empty."
aconst_null
aload 1 /* certPath */
iconst_0
invokespecial java.security.cert.CertPathValidatorException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;Ljava/security/cert/CertPath;I)V
athrow
16: .line 87
StackMap locals: java.util.List int
StackMap stack:
aload 3 /* paramsPKIX */
invokevirtual org.bouncycastle.x509.ExtendedPKIXParameters.getInitialPolicies:()Ljava/util/Set;
astore 6 /* userInitialPolicySet */
start local 6 // java.util.Set userInitialPolicySet
17: .line 95
aload 4 /* certs */
aload 4 /* certs */
invokeinterface java.util.List.size:()I
iconst_1
isub
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.security.cert.X509Certificate
18: .line 96
aload 3 /* paramsPKIX */
invokevirtual org.bouncycastle.x509.ExtendedPKIXParameters.getTrustAnchors:()Ljava/util/Set;
aload 3 /* paramsPKIX */
invokevirtual org.bouncycastle.x509.ExtendedPKIXParameters.getSigProvider:()Ljava/lang/String;
19: .line 95
invokestatic org.bouncycastle.jce.provider.CertPathValidatorUtilities.findTrustAnchor:(Ljava/security/cert/X509Certificate;Ljava/util/Set;Ljava/lang/String;)Ljava/security/cert/TrustAnchor;
astore 7 /* trust */
start local 7 // java.security.cert.TrustAnchor trust
20: .line 97
goto 23
end local 7 // java.security.cert.TrustAnchor trust
21: .line 98
StackMap locals: org.bouncycastle.jce.provider.PKIXCertPathValidatorSpi java.security.cert.CertPath java.security.cert.CertPathParameters org.bouncycastle.x509.ExtendedPKIXParameters java.util.List int java.util.Set
StackMap stack: org.bouncycastle.jce.provider.AnnotatedException
astore 8 /* e */
start local 8 // org.bouncycastle.jce.provider.AnnotatedException e
22: .line 100
new java.security.cert.CertPathValidatorException
dup
aload 8 /* e */
invokevirtual org.bouncycastle.jce.provider.AnnotatedException.getMessage:()Ljava/lang/String;
aload 8 /* e */
aload 1 /* certPath */
aload 4 /* certs */
invokeinterface java.util.List.size:()I
iconst_1
isub
invokespecial java.security.cert.CertPathValidatorException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;Ljava/security/cert/CertPath;I)V
athrow
end local 8 // org.bouncycastle.jce.provider.AnnotatedException e
start local 7 // java.security.cert.TrustAnchor trust
23: .line 103
StackMap locals: java.security.cert.TrustAnchor
StackMap stack:
aload 7 /* trust */
ifnonnull 25
24: .line 105
new java.security.cert.CertPathValidatorException
dup
ldc "Trust anchor for certification path not found."
aconst_null
aload 1 /* certPath */
iconst_m1
invokespecial java.security.cert.CertPathValidatorException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;Ljava/security/cert/CertPath;I)V
athrow
25: .line 112
StackMap locals:
StackMap stack:
iconst_0
istore 9 /* index */
start local 9 // int index
26: .line 123
iload 5 /* n */
iconst_1
iadd
anewarray java.util.ArrayList
astore 11 /* policyNodes */
start local 11 // java.util.List[] policyNodes
27: .line 124
iconst_0
istore 12 /* j */
start local 12 // int j
28: goto 31
29: .line 126
StackMap locals: org.bouncycastle.jce.provider.PKIXCertPathValidatorSpi java.security.cert.CertPath java.security.cert.CertPathParameters org.bouncycastle.x509.ExtendedPKIXParameters java.util.List int java.util.Set java.security.cert.TrustAnchor top int top java.util.List[] int
StackMap stack:
aload 11 /* policyNodes */
iload 12 /* j */
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
aastore
30: .line 124
iinc 12 /* j */ 1
StackMap locals:
StackMap stack:
31: iload 12 /* j */
aload 11 /* policyNodes */
arraylength
if_icmplt 29
end local 12 // int j
32: .line 129
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 12 /* policySet */
start local 12 // java.util.Set policySet
33: .line 131
aload 12 /* policySet */
ldc "2.5.29.32.0"
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
34: .line 133
new org.bouncycastle.jce.provider.PKIXPolicyNode
dup
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
iconst_0
aload 12 /* policySet */
aconst_null
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
35: .line 134
ldc "2.5.29.32.0"
iconst_0
36: .line 133
invokespecial org.bouncycastle.jce.provider.PKIXPolicyNode.<init>:(Ljava/util/List;ILjava/util/Set;Ljava/security/cert/PolicyNode;Ljava/util/Set;Ljava/lang/String;Z)V
astore 13 /* validPolicyTree */
start local 13 // org.bouncycastle.jce.provider.PKIXPolicyNode validPolicyTree
37: .line 136
aload 11 /* policyNodes */
iconst_0
aaload
aload 13 /* validPolicyTree */
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
38: .line 141
new org.bouncycastle.jce.provider.PKIXNameConstraintValidator
dup
invokespecial org.bouncycastle.jce.provider.PKIXNameConstraintValidator.<init>:()V
astore 14 /* nameConstraintValidator */
start local 14 // org.bouncycastle.jce.provider.PKIXNameConstraintValidator nameConstraintValidator
39: .line 146
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 16 /* acceptablePolicies */
start local 16 // java.util.Set acceptablePolicies
40: .line 148
aload 3 /* paramsPKIX */
invokevirtual org.bouncycastle.x509.ExtendedPKIXParameters.isExplicitPolicyRequired:()Z
ifeq 43
41: .line 150
iconst_0
istore 15 /* explicitPolicy */
start local 15 // int explicitPolicy
42: .line 151
goto 44
end local 15 // int explicitPolicy
43: .line 154
StackMap locals: org.bouncycastle.jce.provider.PKIXCertPathValidatorSpi java.security.cert.CertPath java.security.cert.CertPathParameters org.bouncycastle.x509.ExtendedPKIXParameters java.util.List int java.util.Set java.security.cert.TrustAnchor top int top java.util.List[] java.util.Set org.bouncycastle.jce.provider.PKIXPolicyNode org.bouncycastle.jce.provider.PKIXNameConstraintValidator top java.util.Set
StackMap stack:
iload 5 /* n */
iconst_1
iadd
istore 15 /* explicitPolicy */
start local 15 // int explicitPolicy
44: .line 162
StackMap locals: org.bouncycastle.jce.provider.PKIXCertPathValidatorSpi java.security.cert.CertPath java.security.cert.CertPathParameters org.bouncycastle.x509.ExtendedPKIXParameters java.util.List int java.util.Set java.security.cert.TrustAnchor top int top java.util.List[] java.util.Set org.bouncycastle.jce.provider.PKIXPolicyNode org.bouncycastle.jce.provider.PKIXNameConstraintValidator int java.util.Set
StackMap stack:
aload 3 /* paramsPKIX */
invokevirtual org.bouncycastle.x509.ExtendedPKIXParameters.isAnyPolicyInhibited:()Z
ifeq 47
45: .line 164
iconst_0
istore 17 /* inhibitAnyPolicy */
start local 17 // int inhibitAnyPolicy
46: .line 165
goto 48
end local 17 // int inhibitAnyPolicy
47: .line 168
StackMap locals:
StackMap stack:
iload 5 /* n */
iconst_1
iadd
istore 17 /* inhibitAnyPolicy */
start local 17 // int inhibitAnyPolicy
48: .line 176
StackMap locals: int
StackMap stack:
aload 3 /* paramsPKIX */
invokevirtual org.bouncycastle.x509.ExtendedPKIXParameters.isPolicyMappingInhibited:()Z
ifeq 51
49: .line 178
iconst_0
istore 18 /* policyMapping */
start local 18 // int policyMapping
50: .line 179
goto 52
end local 18 // int policyMapping
51: .line 182
StackMap locals:
StackMap stack:
iload 5 /* n */
iconst_1
iadd
istore 18 /* policyMapping */
start local 18 // int policyMapping
52: .line 191
StackMap locals: int
StackMap stack:
aload 7 /* trust */
invokevirtual java.security.cert.TrustAnchor.getTrustedCert:()Ljava/security/cert/X509Certificate;
astore 21 /* sign */
start local 21 // java.security.cert.X509Certificate sign
53: .line 194
aload 21 /* sign */
ifnull 57
54: .line 196
aload 21 /* sign */
invokestatic org.bouncycastle.jce.provider.CertPathValidatorUtilities.getSubjectPrincipal:(Ljava/security/cert/X509Certificate;)Ljavax/security/auth/x500/X500Principal;
astore 20 /* workingIssuerName */
start local 20 // javax.security.auth.x500.X500Principal workingIssuerName
55: .line 197
aload 21 /* sign */
invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
astore 19 /* workingPublicKey */
start local 19 // java.security.PublicKey workingPublicKey
56: .line 198
goto 64
end local 20 // javax.security.auth.x500.X500Principal workingIssuerName
end local 19 // java.security.PublicKey workingPublicKey
57: .line 201
StackMap locals: org.bouncycastle.jce.provider.PKIXCertPathValidatorSpi java.security.cert.CertPath java.security.cert.CertPathParameters org.bouncycastle.x509.ExtendedPKIXParameters java.util.List int java.util.Set java.security.cert.TrustAnchor top int top java.util.List[] java.util.Set org.bouncycastle.jce.provider.PKIXPolicyNode org.bouncycastle.jce.provider.PKIXNameConstraintValidator int java.util.Set int int top top java.security.cert.X509Certificate
StackMap stack:
new javax.security.auth.x500.X500Principal
dup
aload 7 /* trust */
invokevirtual java.security.cert.TrustAnchor.getCAName:()Ljava/lang/String;
invokespecial javax.security.auth.x500.X500Principal.<init>:(Ljava/lang/String;)V
astore 20 /* workingIssuerName */
start local 20 // javax.security.auth.x500.X500Principal workingIssuerName
58: .line 202
aload 7 /* trust */
invokevirtual java.security.cert.TrustAnchor.getCAPublicKey:()Ljava/security/PublicKey;
astore 19 /* workingPublicKey */
start local 19 // java.security.PublicKey workingPublicKey
59: .line 204
goto 64
end local 20 // javax.security.auth.x500.X500Principal workingIssuerName
end local 19 // java.security.PublicKey workingPublicKey
60: .line 205
StackMap locals:
StackMap stack: java.lang.IllegalArgumentException
astore 22 /* ex */
start local 22 // java.lang.IllegalArgumentException ex
61: .line 207
new org.bouncycastle.jce.exception.ExtCertPathValidatorException
dup
ldc "Subject of trust anchor could not be (re)encoded."
aload 22 /* ex */
aload 1 /* certPath */
62: .line 208
iconst_m1
63: .line 207
invokespecial org.bouncycastle.jce.exception.ExtCertPathValidatorException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;Ljava/security/cert/CertPath;I)V
athrow
end local 22 // java.lang.IllegalArgumentException ex
start local 19 // java.security.PublicKey workingPublicKey
start local 20 // javax.security.auth.x500.X500Principal workingIssuerName
64: .line 211
StackMap locals: org.bouncycastle.jce.provider.PKIXCertPathValidatorSpi java.security.cert.CertPath java.security.cert.CertPathParameters org.bouncycastle.x509.ExtendedPKIXParameters java.util.List int java.util.Set java.security.cert.TrustAnchor top int top java.util.List[] java.util.Set org.bouncycastle.jce.provider.PKIXPolicyNode org.bouncycastle.jce.provider.PKIXNameConstraintValidator int java.util.Set int int java.security.PublicKey javax.security.auth.x500.X500Principal java.security.cert.X509Certificate
StackMap stack:
aconst_null
astore 22 /* workingAlgId */
start local 22 // org.bouncycastle.asn1.x509.AlgorithmIdentifier workingAlgId
65: .line 214
aload 19 /* workingPublicKey */
invokestatic org.bouncycastle.jce.provider.CertPathValidatorUtilities.getAlgorithmIdentifier:(Ljava/security/PublicKey;)Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
astore 22 /* workingAlgId */
66: .line 215
goto 71
67: .line 216
StackMap locals: org.bouncycastle.jce.provider.PKIXCertPathValidatorSpi java.security.cert.CertPath java.security.cert.CertPathParameters org.bouncycastle.x509.ExtendedPKIXParameters java.util.List int java.util.Set java.security.cert.TrustAnchor top int top java.util.List[] java.util.Set org.bouncycastle.jce.provider.PKIXPolicyNode org.bouncycastle.jce.provider.PKIXNameConstraintValidator int java.util.Set int int java.security.PublicKey javax.security.auth.x500.X500Principal java.security.cert.X509Certificate org.bouncycastle.asn1.x509.AlgorithmIdentifier
StackMap stack: java.security.cert.CertPathValidatorException
astore 23 /* e */
start local 23 // java.security.cert.CertPathValidatorException e
68: .line 218
new org.bouncycastle.jce.exception.ExtCertPathValidatorException
dup
69: .line 219
ldc "Algorithm identifier of public key of trust anchor could not be read."
aload 23 /* e */
aload 1 /* certPath */
iconst_m1
70: .line 218
invokespecial org.bouncycastle.jce.exception.ExtCertPathValidatorException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;Ljava/security/cert/CertPath;I)V
athrow
end local 23 // java.security.cert.CertPathValidatorException e
71: .line 221
StackMap locals:
StackMap stack:
aload 22 /* workingAlgId */
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getObjectId:()Lorg/bouncycastle/asn1/DERObjectIdentifier;
pop
72: .line 222
aload 22 /* workingAlgId */
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getParameters:()Lorg/bouncycastle/asn1/DEREncodable;
pop
73: .line 227
iload 5 /* n */
istore 23 /* maxPathLength */
start local 23 // int maxPathLength
74: .line 233
aload 3 /* paramsPKIX */
invokevirtual org.bouncycastle.x509.ExtendedPKIXParameters.getTargetConstraints:()Lorg/bouncycastle/util/Selector;
ifnull 79
75: .line 234
aload 3 /* paramsPKIX */
invokevirtual org.bouncycastle.x509.ExtendedPKIXParameters.getTargetConstraints:()Lorg/bouncycastle/util/Selector;
aload 4 /* certs */
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.security.cert.X509Certificate
invokeinterface org.bouncycastle.util.Selector.match:(Ljava/lang/Object;)Z
ifne 79
76: .line 236
new org.bouncycastle.jce.exception.ExtCertPathValidatorException
dup
77: .line 237
ldc "Target certificate in certification path does not match targetConstraints."
aconst_null
aload 1 /* certPath */
iconst_0
78: .line 236
invokespecial org.bouncycastle.jce.exception.ExtCertPathValidatorException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;Ljava/security/cert/CertPath;I)V
athrow
79: .line 243
StackMap locals: int
StackMap stack:
aload 3 /* paramsPKIX */
invokevirtual org.bouncycastle.x509.ExtendedPKIXParameters.getCertPathCheckers:()Ljava/util/List;
astore 24 /* pathCheckers */
start local 24 // java.util.List pathCheckers
80: .line 244
aload 24 /* pathCheckers */
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 8 /* certIter */
start local 8 // java.util.Iterator certIter
81: .line 245
goto 83
82: .line 247
StackMap locals: org.bouncycastle.jce.provider.PKIXCertPathValidatorSpi java.security.cert.CertPath java.security.cert.CertPathParameters org.bouncycastle.x509.ExtendedPKIXParameters java.util.List int java.util.Set java.security.cert.TrustAnchor java.util.Iterator int top java.util.List[] java.util.Set org.bouncycastle.jce.provider.PKIXPolicyNode org.bouncycastle.jce.provider.PKIXNameConstraintValidator int java.util.Set int int java.security.PublicKey javax.security.auth.x500.X500Principal java.security.cert.X509Certificate org.bouncycastle.asn1.x509.AlgorithmIdentifier int java.util.List
StackMap stack:
aload 8 /* certIter */
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.cert.PKIXCertPathChecker
iconst_0
invokevirtual java.security.cert.PKIXCertPathChecker.init:(Z)V
83: .line 245
StackMap locals:
StackMap stack:
aload 8 /* certIter */
invokeinterface java.util.Iterator.hasNext:()Z
ifne 82
84: .line 250
aconst_null
astore 25 /* cert */
start local 25 // java.security.cert.X509Certificate cert
85: .line 252
aload 4 /* certs */
invokeinterface java.util.List.size:()I
iconst_1
isub
istore 9 /* index */
goto 146
86: .line 259
StackMap locals: java.security.cert.X509Certificate
StackMap stack:
iload 5 /* n */
iload 9 /* index */
isub
istore 10 /* i */
start local 10 // int i
87: .line 267
aload 4 /* certs */
iload 9 /* index */
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.security.cert.X509Certificate
astore 25 /* cert */
88: .line 268
iload 9 /* index */
aload 4 /* certs */
invokeinterface java.util.List.size:()I
iconst_1
isub
if_icmpne 89
iconst_1
goto 90
StackMap locals: org.bouncycastle.jce.provider.PKIXCertPathValidatorSpi java.security.cert.CertPath java.security.cert.CertPathParameters org.bouncycastle.x509.ExtendedPKIXParameters java.util.List int java.util.Set java.security.cert.TrustAnchor java.util.Iterator int int java.util.List[] java.util.Set org.bouncycastle.jce.provider.PKIXPolicyNode org.bouncycastle.jce.provider.PKIXNameConstraintValidator int java.util.Set int int java.security.PublicKey javax.security.auth.x500.X500Principal java.security.cert.X509Certificate org.bouncycastle.asn1.x509.AlgorithmIdentifier int java.util.List java.security.cert.X509Certificate
StackMap stack:
89: iconst_0
StackMap locals:
StackMap stack: int
90: istore 26 /* verificationAlreadyPerformed */
start local 26 // boolean verificationAlreadyPerformed
91: .line 274
aload 1 /* certPath */
aload 3 /* paramsPKIX */
iload 9 /* index */
aload 19 /* workingPublicKey */
92: .line 275
iload 26 /* verificationAlreadyPerformed */
aload 20 /* workingIssuerName */
aload 21 /* sign */
93: .line 274
invokestatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.processCertA:(Ljava/security/cert/CertPath;Lorg/bouncycastle/x509/ExtendedPKIXParameters;ILjava/security/PublicKey;ZLjavax/security/auth/x500/X500Principal;Ljava/security/cert/X509Certificate;)V
94: .line 277
aload 1 /* certPath */
iload 9 /* index */
aload 14 /* nameConstraintValidator */
invokestatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.processCertBC:(Ljava/security/cert/CertPath;ILorg/bouncycastle/jce/provider/PKIXNameConstraintValidator;)V
95: .line 279
aload 1 /* certPath */
iload 9 /* index */
aload 16 /* acceptablePolicies */
96: .line 280
aload 13 /* validPolicyTree */
aload 11 /* policyNodes */
iload 17 /* inhibitAnyPolicy */
97: .line 279
invokestatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.processCertD:(Ljava/security/cert/CertPath;ILjava/util/Set;Lorg/bouncycastle/jce/provider/PKIXPolicyNode;[Ljava/util/List;I)Lorg/bouncycastle/jce/provider/PKIXPolicyNode;
astore 13 /* validPolicyTree */
98: .line 282
aload 1 /* certPath */
iload 9 /* index */
aload 13 /* validPolicyTree */
invokestatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.processCertE:(Ljava/security/cert/CertPath;ILorg/bouncycastle/jce/provider/PKIXPolicyNode;)Lorg/bouncycastle/jce/provider/PKIXPolicyNode;
astore 13 /* validPolicyTree */
99: .line 284
aload 1 /* certPath */
iload 9 /* index */
aload 13 /* validPolicyTree */
iload 15 /* explicitPolicy */
invokestatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.processCertF:(Ljava/security/cert/CertPath;ILorg/bouncycastle/jce/provider/PKIXPolicyNode;I)V
100: .line 290
iload 10 /* i */
iload 5 /* n */
if_icmpeq 145
101: .line 292
aload 25 /* cert */
ifnull 105
aload 25 /* cert */
invokevirtual java.security.cert.X509Certificate.getVersion:()I
iconst_1
if_icmpne 105
102: .line 294
new java.security.cert.CertPathValidatorException
dup
ldc "Version 1 certificates can't be used as CA ones."
aconst_null
103: .line 295
aload 1 /* certPath */
iload 9 /* index */
104: .line 294
invokespecial java.security.cert.CertPathValidatorException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;Ljava/security/cert/CertPath;I)V
athrow
105: .line 298
StackMap locals: int
StackMap stack:
aload 1 /* certPath */
iload 9 /* index */
invokestatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.prepareNextCertA:(Ljava/security/cert/CertPath;I)V
106: .line 300
aload 1 /* certPath */
iload 9 /* index */
aload 11 /* policyNodes */
aload 13 /* validPolicyTree */
107: .line 301
iload 18 /* policyMapping */
108: .line 300
invokestatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.prepareCertB:(Ljava/security/cert/CertPath;I[Ljava/util/List;Lorg/bouncycastle/jce/provider/PKIXPolicyNode;I)Lorg/bouncycastle/jce/provider/PKIXPolicyNode;
astore 13 /* validPolicyTree */
109: .line 303
aload 1 /* certPath */
iload 9 /* index */
aload 14 /* nameConstraintValidator */
invokestatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.prepareNextCertG:(Ljava/security/cert/CertPath;ILorg/bouncycastle/jce/provider/PKIXNameConstraintValidator;)V
110: .line 306
aload 1 /* certPath */
iload 9 /* index */
iload 15 /* explicitPolicy */
invokestatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.prepareNextCertH1:(Ljava/security/cert/CertPath;II)I
istore 15 /* explicitPolicy */
111: .line 307
aload 1 /* certPath */
iload 9 /* index */
iload 18 /* policyMapping */
invokestatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.prepareNextCertH2:(Ljava/security/cert/CertPath;II)I
istore 18 /* policyMapping */
112: .line 308
aload 1 /* certPath */
iload 9 /* index */
iload 17 /* inhibitAnyPolicy */
invokestatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.prepareNextCertH3:(Ljava/security/cert/CertPath;II)I
istore 17 /* inhibitAnyPolicy */
113: .line 313
aload 1 /* certPath */
iload 9 /* index */
iload 15 /* explicitPolicy */
invokestatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.prepareNextCertI1:(Ljava/security/cert/CertPath;II)I
istore 15 /* explicitPolicy */
114: .line 314
aload 1 /* certPath */
iload 9 /* index */
iload 18 /* policyMapping */
invokestatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.prepareNextCertI2:(Ljava/security/cert/CertPath;II)I
istore 18 /* policyMapping */
115: .line 317
aload 1 /* certPath */
iload 9 /* index */
iload 17 /* inhibitAnyPolicy */
invokestatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.prepareNextCertJ:(Ljava/security/cert/CertPath;II)I
istore 17 /* inhibitAnyPolicy */
116: .line 320
aload 1 /* certPath */
iload 9 /* index */
invokestatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.prepareNextCertK:(Ljava/security/cert/CertPath;I)V
117: .line 323
aload 1 /* certPath */
iload 9 /* index */
iload 23 /* maxPathLength */
invokestatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.prepareNextCertL:(Ljava/security/cert/CertPath;II)I
istore 23 /* maxPathLength */
118: .line 326
aload 1 /* certPath */
iload 9 /* index */
iload 23 /* maxPathLength */
invokestatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.prepareNextCertM:(Ljava/security/cert/CertPath;II)I
istore 23 /* maxPathLength */
119: .line 329
aload 1 /* certPath */
iload 9 /* index */
invokestatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.prepareNextCertN:(Ljava/security/cert/CertPath;I)V
120: .line 331
aload 25 /* cert */
invokevirtual java.security.cert.X509Certificate.getCriticalExtensionOIDs:()Ljava/util/Set;
astore 27 /* criticalExtensions */
start local 27 // java.util.Set criticalExtensions
121: .line 332
aload 27 /* criticalExtensions */
ifnull 134
122: .line 334
new java.util.HashSet
dup
aload 27 /* criticalExtensions */
invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
astore 27 /* criticalExtensions */
123: .line 337
aload 27 /* criticalExtensions */
getstatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.KEY_USAGE:Ljava/lang/String;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
124: .line 338
aload 27 /* criticalExtensions */
getstatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.CERTIFICATE_POLICIES:Ljava/lang/String;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
125: .line 339
aload 27 /* criticalExtensions */
getstatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.POLICY_MAPPINGS:Ljava/lang/String;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
126: .line 340
aload 27 /* criticalExtensions */
getstatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.INHIBIT_ANY_POLICY:Ljava/lang/String;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
127: .line 341
aload 27 /* criticalExtensions */
getstatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.ISSUING_DISTRIBUTION_POINT:Ljava/lang/String;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
128: .line 342
aload 27 /* criticalExtensions */
getstatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.DELTA_CRL_INDICATOR:Ljava/lang/String;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
129: .line 343
aload 27 /* criticalExtensions */
getstatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.POLICY_CONSTRAINTS:Ljava/lang/String;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
130: .line 344
aload 27 /* criticalExtensions */
getstatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.BASIC_CONSTRAINTS:Ljava/lang/String;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
131: .line 345
aload 27 /* criticalExtensions */
getstatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.SUBJECT_ALTERNATIVE_NAME:Ljava/lang/String;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
132: .line 346
aload 27 /* criticalExtensions */
getstatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.NAME_CONSTRAINTS:Ljava/lang/String;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
133: .line 347
goto 135
134: .line 350
StackMap locals: java.util.Set
StackMap stack:
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 27 /* criticalExtensions */
135: .line 354
StackMap locals:
StackMap stack:
aload 1 /* certPath */
iload 9 /* index */
aload 27 /* criticalExtensions */
aload 24 /* pathCheckers */
invokestatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.prepareNextCertO:(Ljava/security/cert/CertPath;ILjava/util/Set;Ljava/util/List;)V
136: .line 357
aload 25 /* cert */
astore 21 /* sign */
137: .line 360
aload 21 /* sign */
invokestatic org.bouncycastle.jce.provider.CertPathValidatorUtilities.getSubjectPrincipal:(Ljava/security/cert/X509Certificate;)Ljavax/security/auth/x500/X500Principal;
astore 20 /* workingIssuerName */
138: .line 365
aload 1 /* certPath */
invokevirtual java.security.cert.CertPath.getCertificates:()Ljava/util/List;
iload 9 /* index */
invokestatic org.bouncycastle.jce.provider.CertPathValidatorUtilities.getNextWorkingKey:(Ljava/util/List;I)Ljava/security/PublicKey;
astore 19 /* workingPublicKey */
139: .line 366
goto 142
140: .line 367
StackMap locals:
StackMap stack: java.security.cert.CertPathValidatorException
astore 28 /* e */
start local 28 // java.security.cert.CertPathValidatorException e
141: .line 369
new java.security.cert.CertPathValidatorException
dup
ldc "Next working key could not be retrieved."
aload 28 /* e */
aload 1 /* certPath */
iload 9 /* index */
invokespecial java.security.cert.CertPathValidatorException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;Ljava/security/cert/CertPath;I)V
athrow
end local 28 // java.security.cert.CertPathValidatorException e
142: .line 372
StackMap locals:
StackMap stack:
aload 19 /* workingPublicKey */
invokestatic org.bouncycastle.jce.provider.CertPathValidatorUtilities.getAlgorithmIdentifier:(Ljava/security/PublicKey;)Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
astore 22 /* workingAlgId */
143: .line 374
aload 22 /* workingAlgId */
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getObjectId:()Lorg/bouncycastle/asn1/DERObjectIdentifier;
pop
144: .line 376
aload 22 /* workingAlgId */
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getParameters:()Lorg/bouncycastle/asn1/DEREncodable;
pop
end local 27 // java.util.Set criticalExtensions
end local 26 // boolean verificationAlreadyPerformed
145: .line 252
StackMap locals:
StackMap stack:
iinc 9 /* index */ -1
end local 10 // int i
StackMap locals: org.bouncycastle.jce.provider.PKIXCertPathValidatorSpi java.security.cert.CertPath java.security.cert.CertPathParameters org.bouncycastle.x509.ExtendedPKIXParameters java.util.List int java.util.Set java.security.cert.TrustAnchor java.util.Iterator int top java.util.List[] java.util.Set org.bouncycastle.jce.provider.PKIXPolicyNode org.bouncycastle.jce.provider.PKIXNameConstraintValidator int java.util.Set int int java.security.PublicKey javax.security.auth.x500.X500Principal java.security.cert.X509Certificate org.bouncycastle.asn1.x509.AlgorithmIdentifier int java.util.List java.security.cert.X509Certificate
StackMap stack:
146: iload 9 /* index */
ifge 86
147: .line 384
iload 15 /* explicitPolicy */
aload 25 /* cert */
invokestatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.wrapupCertA:(ILjava/security/cert/X509Certificate;)I
istore 15 /* explicitPolicy */
148: .line 386
aload 1 /* certPath */
iload 9 /* index */
iconst_1
iadd
iload 15 /* explicitPolicy */
invokestatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.wrapupCertB:(Ljava/security/cert/CertPath;II)I
istore 15 /* explicitPolicy */
149: .line 395
aload 25 /* cert */
invokevirtual java.security.cert.X509Certificate.getCriticalExtensionOIDs:()Ljava/util/Set;
astore 26 /* criticalExtensions */
start local 26 // java.util.Set criticalExtensions
150: .line 397
aload 26 /* criticalExtensions */
ifnull 164
151: .line 399
new java.util.HashSet
dup
aload 26 /* criticalExtensions */
invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
astore 26 /* criticalExtensions */
152: .line 401
aload 26 /* criticalExtensions */
getstatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.KEY_USAGE:Ljava/lang/String;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
153: .line 402
aload 26 /* criticalExtensions */
getstatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.CERTIFICATE_POLICIES:Ljava/lang/String;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
154: .line 403
aload 26 /* criticalExtensions */
getstatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.POLICY_MAPPINGS:Ljava/lang/String;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
155: .line 404
aload 26 /* criticalExtensions */
getstatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.INHIBIT_ANY_POLICY:Ljava/lang/String;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
156: .line 405
aload 26 /* criticalExtensions */
getstatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.ISSUING_DISTRIBUTION_POINT:Ljava/lang/String;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
157: .line 406
aload 26 /* criticalExtensions */
getstatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.DELTA_CRL_INDICATOR:Ljava/lang/String;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
158: .line 407
aload 26 /* criticalExtensions */
getstatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.POLICY_CONSTRAINTS:Ljava/lang/String;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
159: .line 408
aload 26 /* criticalExtensions */
getstatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.BASIC_CONSTRAINTS:Ljava/lang/String;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
160: .line 409
aload 26 /* criticalExtensions */
getstatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.SUBJECT_ALTERNATIVE_NAME:Ljava/lang/String;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
161: .line 410
aload 26 /* criticalExtensions */
getstatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.NAME_CONSTRAINTS:Ljava/lang/String;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
162: .line 411
aload 26 /* criticalExtensions */
getstatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.CRL_DISTRIBUTION_POINTS:Ljava/lang/String;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
163: .line 412
goto 165
164: .line 415
StackMap locals: java.util.Set
StackMap stack:
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 26 /* criticalExtensions */
165: .line 418
StackMap locals:
StackMap stack:
aload 1 /* certPath */
iload 9 /* index */
iconst_1
iadd
aload 24 /* pathCheckers */
aload 26 /* criticalExtensions */
invokestatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.wrapupCertF:(Ljava/security/cert/CertPath;ILjava/util/List;Ljava/util/Set;)V
166: .line 420
aload 1 /* certPath */
aload 3 /* paramsPKIX */
aload 6 /* userInitialPolicySet */
167: .line 421
iload 9 /* index */
iconst_1
iadd
aload 11 /* policyNodes */
aload 13 /* validPolicyTree */
aload 16 /* acceptablePolicies */
168: .line 420
invokestatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.wrapupCertG:(Ljava/security/cert/CertPath;Lorg/bouncycastle/x509/ExtendedPKIXParameters;Ljava/util/Set;I[Ljava/util/List;Lorg/bouncycastle/jce/provider/PKIXPolicyNode;Ljava/util/Set;)Lorg/bouncycastle/jce/provider/PKIXPolicyNode;
astore 27 /* intersection */
start local 27 // org.bouncycastle.jce.provider.PKIXPolicyNode intersection
169: .line 423
iload 15 /* explicitPolicy */
ifgt 170
aload 27 /* intersection */
ifnull 171
170: .line 425
StackMap locals: org.bouncycastle.jce.provider.PKIXPolicyNode
StackMap stack:
new java.security.cert.PKIXCertPathValidatorResult
dup
aload 7 /* trust */
aload 27 /* intersection */
aload 25 /* cert */
invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
invokespecial java.security.cert.PKIXCertPathValidatorResult.<init>:(Ljava/security/cert/TrustAnchor;Ljava/security/cert/PolicyNode;Ljava/security/PublicKey;)V
areturn
171: .line 428
StackMap locals:
StackMap stack:
new java.security.cert.CertPathValidatorException
dup
ldc "Path processing failed on policy."
aconst_null
aload 1 /* certPath */
iload 9 /* index */
invokespecial java.security.cert.CertPathValidatorException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;Ljava/security/cert/CertPath;I)V
athrow
end local 27 // org.bouncycastle.jce.provider.PKIXPolicyNode intersection
end local 26 // java.util.Set criticalExtensions
end local 25 // java.security.cert.X509Certificate cert
end local 24 // java.util.List pathCheckers
end local 23 // int maxPathLength
end local 22 // org.bouncycastle.asn1.x509.AlgorithmIdentifier workingAlgId
end local 21 // java.security.cert.X509Certificate sign
end local 20 // javax.security.auth.x500.X500Principal workingIssuerName
end local 19 // java.security.PublicKey workingPublicKey
end local 18 // int policyMapping
end local 17 // int inhibitAnyPolicy
end local 16 // java.util.Set acceptablePolicies
end local 15 // int explicitPolicy
end local 14 // org.bouncycastle.jce.provider.PKIXNameConstraintValidator nameConstraintValidator
end local 13 // org.bouncycastle.jce.provider.PKIXPolicyNode validPolicyTree
end local 12 // java.util.Set policySet
end local 11 // java.util.List[] policyNodes
end local 9 // int index
end local 8 // java.util.Iterator certIter
end local 7 // java.security.cert.TrustAnchor trust
end local 6 // java.util.Set userInitialPolicySet
end local 5 // int n
end local 4 // java.util.List certs
end local 3 // org.bouncycastle.x509.ExtendedPKIXParameters paramsPKIX
end local 2 // java.security.cert.CertPathParameters params
end local 1 // java.security.cert.CertPath certPath
end local 0 // org.bouncycastle.jce.provider.PKIXCertPathValidatorSpi this
LocalVariableTable:
Start End Slot Name Signature
0 172 0 this Lorg/bouncycastle/jce/provider/PKIXCertPathValidatorSpi;
0 172 1 certPath Ljava/security/cert/CertPath;
0 172 2 params Ljava/security/cert/CertPathParameters;
6 7 3 paramsPKIX Lorg/bouncycastle/x509/ExtendedPKIXParameters;
8 172 3 paramsPKIX Lorg/bouncycastle/x509/ExtendedPKIXParameters;
13 172 4 certs Ljava/util/List;
14 172 5 n I
17 172 6 userInitialPolicySet Ljava/util/Set;
20 21 7 trust Ljava/security/cert/TrustAnchor;
23 172 7 trust Ljava/security/cert/TrustAnchor;
22 23 8 e Lorg/bouncycastle/jce/provider/AnnotatedException;
81 172 8 certIter Ljava/util/Iterator;
26 172 9 index I
87 146 10 i I
27 172 11 policyNodes [Ljava/util/List;
28 32 12 j I
33 172 12 policySet Ljava/util/Set;
37 172 13 validPolicyTree Lorg/bouncycastle/jce/provider/PKIXPolicyNode;
39 172 14 nameConstraintValidator Lorg/bouncycastle/jce/provider/PKIXNameConstraintValidator;
42 43 15 explicitPolicy I
44 172 15 explicitPolicy I
40 172 16 acceptablePolicies Ljava/util/Set;
46 47 17 inhibitAnyPolicy I
48 172 17 inhibitAnyPolicy I
50 51 18 policyMapping I
52 172 18 policyMapping I
56 57 19 workingPublicKey Ljava/security/PublicKey;
59 60 19 workingPublicKey Ljava/security/PublicKey;
64 172 19 workingPublicKey Ljava/security/PublicKey;
55 57 20 workingIssuerName Ljavax/security/auth/x500/X500Principal;
58 60 20 workingIssuerName Ljavax/security/auth/x500/X500Principal;
64 172 20 workingIssuerName Ljavax/security/auth/x500/X500Principal;
53 172 21 sign Ljava/security/cert/X509Certificate;
61 64 22 ex Ljava/lang/IllegalArgumentException;
65 172 22 workingAlgId Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
68 71 23 e Ljava/security/cert/CertPathValidatorException;
74 172 23 maxPathLength I
80 172 24 pathCheckers Ljava/util/List;
85 172 25 cert Ljava/security/cert/X509Certificate;
91 145 26 verificationAlreadyPerformed Z
121 145 27 criticalExtensions Ljava/util/Set;
141 142 28 e Ljava/security/cert/CertPathValidatorException;
150 172 26 criticalExtensions Ljava/util/Set;
169 172 27 intersection Lorg/bouncycastle/jce/provider/PKIXPolicyNode;
Exception table:
from to target type
17 20 21 Class org.bouncycastle.jce.provider.AnnotatedException
53 59 60 Class java.lang.IllegalArgumentException
65 66 67 Class java.security.cert.CertPathValidatorException
138 139 140 Class java.security.cert.CertPathValidatorException
Exceptions:
throws java.security.cert.CertPathValidatorException, java.security.InvalidAlgorithmParameterException
MethodParameters:
Name Flags
certPath
params
}
SourceFile: "PKIXCertPathValidatorSpi.java"