public class org.bouncycastle.jce.provider.PKIXCertPathBuilderSpi extends java.security.cert.CertPathBuilderSpi
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.jce.provider.PKIXCertPathBuilderSpi
super_class: java.security.cert.CertPathBuilderSpi
{
private java.lang.Exception certPathException;
descriptor: Ljava/lang/Exception;
flags: (0x0002) ACC_PRIVATE
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.security.cert.CertPathBuilderSpi.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/jce/provider/PKIXCertPathBuilderSpi;
public java.security.cert.CertPathBuilderResult engineBuild(java.security.cert.CertPathParameters);
descriptor: (Ljava/security/cert/CertPathParameters;)Ljava/security/cert/CertPathBuilderResult;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=9, args_size=2
start local 0 start local 1 0: aload 1
instanceof java.security.cert.PKIXBuilderParameters
ifne 8
1: aload 1
instanceof org.bouncycastle.x509.ExtendedPKIXBuilderParameters
ifne 8
2: new java.security.InvalidAlgorithmParameterException
dup
3: new java.lang.StringBuilder
dup
ldc "Parameters must be an instance of "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
4: ldc Ljava/security/cert/PKIXBuilderParameters;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " or "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
5: ldc Lorg/bouncycastle/x509/ExtendedPKIXBuilderParameters;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
6: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
7: invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
aconst_null
astore 2
start local 2 9: aload 1
instanceof org.bouncycastle.x509.ExtendedPKIXBuilderParameters
ifeq 12
10: aload 1
checkcast org.bouncycastle.x509.ExtendedPKIXBuilderParameters
astore 2
11: goto 14
12: StackMap locals: org.bouncycastle.x509.ExtendedPKIXBuilderParameters
StackMap stack:
aload 1
checkcast java.security.cert.PKIXBuilderParameters
invokestatic org.bouncycastle.x509.ExtendedPKIXBuilderParameters.getInstance:(Ljava/security/cert/PKIXParameters;)Lorg/bouncycastle/x509/ExtendedPKIXParameters;
13: checkcast org.bouncycastle.x509.ExtendedPKIXBuilderParameters
astore 2
14: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 5
start local 5 15: aload 2
invokevirtual org.bouncycastle.x509.ExtendedPKIXBuilderParameters.getTargetConstraints:()Lorg/bouncycastle/util/Selector;
astore 7
start local 7 16: aload 7
instanceof org.bouncycastle.x509.X509CertStoreSelector
ifne 23
17: new java.security.cert.CertPathBuilderException
dup
18: new java.lang.StringBuilder
dup
ldc "TargetConstraints must be an instance of "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
19: ldc Lorg/bouncycastle/x509/X509CertStoreSelector;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " for "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
20: aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " class."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
21: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
22: invokespecial java.security.cert.CertPathBuilderException.<init>:(Ljava/lang/String;)V
athrow
23: StackMap locals: org.bouncycastle.jce.provider.PKIXCertPathBuilderSpi java.security.cert.CertPathParameters org.bouncycastle.x509.ExtendedPKIXBuilderParameters top top java.util.List top org.bouncycastle.util.Selector
StackMap stack:
aload 7
checkcast org.bouncycastle.x509.X509CertStoreSelector
aload 2
invokevirtual org.bouncycastle.x509.ExtendedPKIXBuilderParameters.getStores:()Ljava/util/List;
invokestatic org.bouncycastle.jce.provider.CertPathValidatorUtilities.findCertificates:(Lorg/bouncycastle/x509/X509CertStoreSelector;Ljava/util/List;)Ljava/util/Collection;
astore 3
start local 3 24: aload 3
aload 7
checkcast org.bouncycastle.x509.X509CertStoreSelector
aload 2
invokevirtual org.bouncycastle.x509.ExtendedPKIXBuilderParameters.getCertStores:()Ljava/util/List;
invokestatic org.bouncycastle.jce.provider.CertPathValidatorUtilities.findCertificates:(Lorg/bouncycastle/x509/X509CertStoreSelector;Ljava/util/List;)Ljava/util/Collection;
invokeinterface java.util.Collection.addAll:(Ljava/util/Collection;)Z
pop
25: goto 30
end local 3 26: StackMap locals:
StackMap stack: org.bouncycastle.jce.provider.AnnotatedException
astore 8
start local 8 27: new org.bouncycastle.jce.exception.ExtCertPathBuilderException
dup
28: ldc "Error finding target certificate."
aload 8
29: invokespecial org.bouncycastle.jce.exception.ExtCertPathBuilderException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 8 start local 3 30: StackMap locals: org.bouncycastle.jce.provider.PKIXCertPathBuilderSpi java.security.cert.CertPathParameters org.bouncycastle.x509.ExtendedPKIXBuilderParameters java.util.Collection top java.util.List top org.bouncycastle.util.Selector
StackMap stack:
aload 3
invokeinterface java.util.Collection.isEmpty:()Z
ifeq 34
31: new java.security.cert.CertPathBuilderException
dup
32: ldc "No certificate found matching targetContraints."
33: invokespecial java.security.cert.CertPathBuilderException.<init>:(Ljava/lang/String;)V
athrow
34: StackMap locals:
StackMap stack:
aconst_null
astore 8
start local 8 35: aload 3
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 4
start local 4 36: goto 39
37: StackMap locals: org.bouncycastle.jce.provider.PKIXCertPathBuilderSpi java.security.cert.CertPathParameters org.bouncycastle.x509.ExtendedPKIXBuilderParameters java.util.Collection java.util.Iterator java.util.List top org.bouncycastle.util.Selector java.security.cert.CertPathBuilderResult
StackMap stack:
aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.cert.X509Certificate
astore 6
start local 6 38: aload 0
aload 6
aload 2
aload 5
invokevirtual org.bouncycastle.jce.provider.PKIXCertPathBuilderSpi.build:(Ljava/security/cert/X509Certificate;Lorg/bouncycastle/x509/ExtendedPKIXBuilderParameters;Ljava/util/List;)Ljava/security/cert/CertPathBuilderResult;
astore 8
end local 6 39: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifeq 40
aload 8
ifnull 37
40: StackMap locals:
StackMap stack:
aload 8
ifnonnull 47
aload 0
getfield org.bouncycastle.jce.provider.PKIXCertPathBuilderSpi.certPathException:Ljava/lang/Exception;
ifnull 47
41: aload 0
getfield org.bouncycastle.jce.provider.PKIXCertPathBuilderSpi.certPathException:Ljava/lang/Exception;
instanceof org.bouncycastle.jce.provider.AnnotatedException
ifeq 43
42: new java.security.cert.CertPathBuilderException
dup
aload 0
getfield org.bouncycastle.jce.provider.PKIXCertPathBuilderSpi.certPathException:Ljava/lang/Exception;
invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
aload 0
getfield org.bouncycastle.jce.provider.PKIXCertPathBuilderSpi.certPathException:Ljava/lang/Exception;
invokevirtual java.lang.Exception.getCause:()Ljava/lang/Throwable;
invokespecial java.security.cert.CertPathBuilderException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
43: StackMap locals:
StackMap stack:
new java.security.cert.CertPathBuilderException
dup
44: ldc "Possible certificate chain could not be validated."
45: aload 0
getfield org.bouncycastle.jce.provider.PKIXCertPathBuilderSpi.certPathException:Ljava/lang/Exception;
46: invokespecial java.security.cert.CertPathBuilderException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
47: StackMap locals:
StackMap stack:
aload 8
ifnonnull 51
aload 0
getfield org.bouncycastle.jce.provider.PKIXCertPathBuilderSpi.certPathException:Ljava/lang/Exception;
ifnonnull 51
48: new java.security.cert.CertPathBuilderException
dup
49: ldc "Unable to find certificate chain."
50: invokespecial java.security.cert.CertPathBuilderException.<init>:(Ljava/lang/String;)V
athrow
51: StackMap locals:
StackMap stack:
aload 8
areturn
end local 8 end local 7 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 52 0 this Lorg/bouncycastle/jce/provider/PKIXCertPathBuilderSpi;
0 52 1 params Ljava/security/cert/CertPathParameters;
9 52 2 pkixParams Lorg/bouncycastle/x509/ExtendedPKIXBuilderParameters;
24 26 3 targets Ljava/util/Collection;
30 52 3 targets Ljava/util/Collection;
36 52 4 targetIter Ljava/util/Iterator;
15 52 5 certPathList Ljava/util/List;
38 39 6 cert Ljava/security/cert/X509Certificate;
16 52 7 certSelect Lorg/bouncycastle/util/Selector;
27 30 8 e Lorg/bouncycastle/jce/provider/AnnotatedException;
35 52 8 result Ljava/security/cert/CertPathBuilderResult;
Exception table:
from to target type
23 25 26 Class org.bouncycastle.jce.provider.AnnotatedException
Exceptions:
throws java.security.cert.CertPathBuilderException, java.security.InvalidAlgorithmParameterException
MethodParameters:
Name Flags
params
protected java.security.cert.CertPathBuilderResult build(java.security.cert.X509Certificate, org.bouncycastle.x509.ExtendedPKIXBuilderParameters, java.util.List);
descriptor: (Ljava/security/cert/X509Certificate;Lorg/bouncycastle/x509/ExtendedPKIXBuilderParameters;Ljava/util/List;)Ljava/security/cert/CertPathBuilderResult;
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=10, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
aload 1
invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
ifeq 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.bouncycastle.x509.ExtendedPKIXBuilderParameters.getExcludedCerts:()Ljava/util/Set;
aload 1
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 4
3: aconst_null
areturn
4: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.bouncycastle.x509.ExtendedPKIXBuilderParameters.getMaxPathLength:()I
iconst_m1
if_icmpeq 7
5: aload 3
invokeinterface java.util.List.size:()I
iconst_1
isub
aload 2
invokevirtual org.bouncycastle.x509.ExtendedPKIXBuilderParameters.getMaxPathLength:()I
if_icmple 7
6: aconst_null
areturn
7: StackMap locals:
StackMap stack:
aload 3
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
8: aconst_null
astore 6
start local 6 9: ldc "X.509"
getstatic org.bouncycastle.jce.provider.BouncyCastleProvider.PROVIDER_NAME:Ljava/lang/String;
invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
astore 4
start local 4 10: ldc "PKIX"
getstatic org.bouncycastle.jce.provider.BouncyCastleProvider.PROVIDER_NAME:Ljava/lang/String;
invokestatic java.security.cert.CertPathValidator.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/cert/CertPathValidator;
astore 5
start local 5 11: goto 14
end local 5 end local 4 12: StackMap locals: org.bouncycastle.jce.provider.PKIXCertPathBuilderSpi java.security.cert.X509Certificate org.bouncycastle.x509.ExtendedPKIXBuilderParameters java.util.List top top java.security.cert.CertPathBuilderResult
StackMap stack: java.lang.Exception
pop
13: new java.lang.RuntimeException
dup
ldc "Exception creating support classes."
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
start local 4 start local 5 14: StackMap locals: org.bouncycastle.jce.provider.PKIXCertPathBuilderSpi java.security.cert.X509Certificate org.bouncycastle.x509.ExtendedPKIXBuilderParameters java.util.List java.security.cert.CertificateFactory java.security.cert.CertPathValidator java.security.cert.CertPathBuilderResult
StackMap stack:
aload 1
aload 2
invokevirtual org.bouncycastle.x509.ExtendedPKIXBuilderParameters.getTrustAnchors:()Ljava/util/Set;
15: aload 2
invokevirtual org.bouncycastle.x509.ExtendedPKIXBuilderParameters.getSigProvider:()Ljava/lang/String;
16: invokestatic org.bouncycastle.jce.provider.CertPathValidatorUtilities.findTrustAnchor:(Ljava/security/cert/X509Certificate;Ljava/util/Set;Ljava/lang/String;)Ljava/security/cert/TrustAnchor;
ifnull 39
17: aconst_null
astore 7
start local 7 18: aconst_null
astore 8
start local 8 19: aload 4
aload 3
invokevirtual java.security.cert.CertificateFactory.generateCertPath:(Ljava/util/List;)Ljava/security/cert/CertPath;
astore 7
20: goto 26
21: StackMap locals: org.bouncycastle.jce.provider.PKIXCertPathBuilderSpi java.security.cert.X509Certificate org.bouncycastle.x509.ExtendedPKIXBuilderParameters java.util.List java.security.cert.CertificateFactory java.security.cert.CertPathValidator java.security.cert.CertPathBuilderResult java.security.cert.CertPath java.security.cert.PKIXCertPathValidatorResult
StackMap stack: java.lang.Exception
astore 9
start local 9 22: new org.bouncycastle.jce.provider.AnnotatedException
dup
23: ldc "Certification path could not be constructed from certificate list."
24: aload 9
25: invokespecial org.bouncycastle.jce.provider.AnnotatedException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 9 26: StackMap locals:
StackMap stack:
aload 5
27: aload 7
aload 2
28: invokevirtual java.security.cert.CertPathValidator.validate:(Ljava/security/cert/CertPath;Ljava/security/cert/CertPathParameters;)Ljava/security/cert/CertPathValidatorResult;
checkcast java.security.cert.PKIXCertPathValidatorResult
astore 8
29: goto 34
30: StackMap locals:
StackMap stack: java.lang.Exception
astore 9
start local 9 31: new org.bouncycastle.jce.provider.AnnotatedException
dup
32: ldc "Certification path could not be validated."
aload 9
33: invokespecial org.bouncycastle.jce.provider.AnnotatedException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 9 34: StackMap locals:
StackMap stack:
new java.security.cert.PKIXCertPathBuilderResult
dup
aload 7
aload 8
35: invokevirtual java.security.cert.PKIXCertPathValidatorResult.getTrustAnchor:()Ljava/security/cert/TrustAnchor;
aload 8
invokevirtual java.security.cert.PKIXCertPathValidatorResult.getPolicyTree:()Ljava/security/cert/PolicyNode;
aload 8
36: invokevirtual java.security.cert.PKIXCertPathValidatorResult.getPublicKey:()Ljava/security/PublicKey;
37: invokespecial java.security.cert.PKIXCertPathBuilderResult.<init>:(Ljava/security/cert/CertPath;Ljava/security/cert/TrustAnchor;Ljava/security/cert/PolicyNode;Ljava/security/PublicKey;)V
38: areturn
end local 8 end local 7 39: StackMap locals:
StackMap stack:
aload 1
aload 2
40: invokestatic org.bouncycastle.jce.provider.CertPathValidatorUtilities.addAdditionalStoresFromAltNames:(Ljava/security/cert/X509Certificate;Lorg/bouncycastle/x509/ExtendedPKIXParameters;)V
41: goto 47
42: StackMap locals:
StackMap stack: java.security.cert.CertificateParsingException
astore 7
start local 7 43: new org.bouncycastle.jce.provider.AnnotatedException
dup
44: ldc "No additiontal X.509 stores can be added from certificate locations."
45: aload 7
46: invokespecial org.bouncycastle.jce.provider.AnnotatedException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 7 47: StackMap locals:
StackMap stack:
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 7
start local 7 48: aload 7
aload 1
aload 2
invokestatic org.bouncycastle.jce.provider.CertPathValidatorUtilities.findIssuerCerts:(Ljava/security/cert/X509Certificate;Lorg/bouncycastle/x509/ExtendedPKIXBuilderParameters;)Ljava/util/Collection;
invokeinterface java.util.Collection.addAll:(Ljava/util/Collection;)Z
pop
49: goto 55
50: StackMap locals: org.bouncycastle.jce.provider.PKIXCertPathBuilderSpi java.security.cert.X509Certificate org.bouncycastle.x509.ExtendedPKIXBuilderParameters java.util.List java.security.cert.CertificateFactory java.security.cert.CertPathValidator java.security.cert.CertPathBuilderResult java.util.Collection
StackMap stack: org.bouncycastle.jce.provider.AnnotatedException
astore 8
start local 8 51: new org.bouncycastle.jce.provider.AnnotatedException
dup
52: ldc "Cannot find issuer certificate for certificate in certification path."
53: aload 8
54: invokespecial org.bouncycastle.jce.provider.AnnotatedException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 8 55: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Collection.isEmpty:()Z
ifeq 59
56: new org.bouncycastle.jce.provider.AnnotatedException
dup
57: ldc "No issuer certificate for certificate in certification path found."
58: invokespecial org.bouncycastle.jce.provider.AnnotatedException.<init>:(Ljava/lang/String;)V
athrow
59: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 8
start local 8 60: goto 63
61: StackMap locals: java.util.Iterator
StackMap stack:
aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.cert.X509Certificate
astore 9
start local 9 62: aload 0
aload 9
aload 2
aload 3
invokevirtual org.bouncycastle.jce.provider.PKIXCertPathBuilderSpi.build:(Ljava/security/cert/X509Certificate;Lorg/bouncycastle/x509/ExtendedPKIXBuilderParameters;Ljava/util/List;)Ljava/security/cert/CertPathBuilderResult;
astore 6
end local 9 63: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifeq 67
aload 6
ifnull 61
end local 8 end local 7 64: goto 67
65: StackMap locals: org.bouncycastle.jce.provider.PKIXCertPathBuilderSpi java.security.cert.X509Certificate org.bouncycastle.x509.ExtendedPKIXBuilderParameters java.util.List java.security.cert.CertificateFactory java.security.cert.CertPathValidator java.security.cert.CertPathBuilderResult
StackMap stack: org.bouncycastle.jce.provider.AnnotatedException
astore 7
start local 7 66: aload 0
aload 7
putfield org.bouncycastle.jce.provider.PKIXCertPathBuilderSpi.certPathException:Ljava/lang/Exception;
end local 7 67: StackMap locals:
StackMap stack:
aload 6
ifnonnull 69
68: aload 3
aload 1
invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
pop
69: StackMap locals:
StackMap stack:
aload 6
areturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 70 0 this Lorg/bouncycastle/jce/provider/PKIXCertPathBuilderSpi;
0 70 1 tbvCert Ljava/security/cert/X509Certificate;
0 70 2 pkixParams Lorg/bouncycastle/x509/ExtendedPKIXBuilderParameters;
0 70 3 tbvPath Ljava/util/List;
10 12 4 cFact Ljava/security/cert/CertificateFactory;
14 70 4 cFact Ljava/security/cert/CertificateFactory;
11 12 5 validator Ljava/security/cert/CertPathValidator;
14 70 5 validator Ljava/security/cert/CertPathValidator;
9 70 6 builderResult Ljava/security/cert/CertPathBuilderResult;
18 39 7 certPath Ljava/security/cert/CertPath;
19 39 8 result Ljava/security/cert/PKIXCertPathValidatorResult;
22 26 9 e Ljava/lang/Exception;
31 34 9 e Ljava/lang/Exception;
43 47 7 e Ljava/security/cert/CertificateParsingException;
48 64 7 issuers Ljava/util/Collection;
51 55 8 e Lorg/bouncycastle/jce/provider/AnnotatedException;
60 64 8 it Ljava/util/Iterator;
62 63 9 issuer Ljava/security/cert/X509Certificate;
66 67 7 e Lorg/bouncycastle/jce/provider/AnnotatedException;
Exception table:
from to target type
9 11 12 Class java.lang.Exception
19 20 21 Class java.lang.Exception
26 29 30 Class java.lang.Exception
39 41 42 Class java.security.cert.CertificateParsingException
48 49 50 Class org.bouncycastle.jce.provider.AnnotatedException
14 38 65 Class org.bouncycastle.jce.provider.AnnotatedException
39 64 65 Class org.bouncycastle.jce.provider.AnnotatedException
MethodParameters:
Name Flags
tbvCert
pkixParams
tbvPath
}
SourceFile: "PKIXCertPathBuilderSpi.java"