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 // org.bouncycastle.jce.provider.PKIXCertPathBuilderSpi this
         0: .line 32
            aload 0 /* this */
            invokespecial java.security.cert.CertPathBuilderSpi.<init>:()V
            return
        end local 0 // org.bouncycastle.jce.provider.PKIXCertPathBuilderSpi this
      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 // org.bouncycastle.jce.provider.PKIXCertPathBuilderSpi this
        start local 1 // java.security.cert.CertPathParameters params
         0: .line 44
            aload 1 /* params */
            instanceof java.security.cert.PKIXBuilderParameters
            ifne 8
         1: .line 45
            aload 1 /* params */
            instanceof org.bouncycastle.x509.ExtendedPKIXBuilderParameters
            ifne 8
         2: .line 47
            new java.security.InvalidAlgorithmParameterException
            dup
         3: .line 48
            new java.lang.StringBuilder
            dup
            ldc "Parameters must be an instance of "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         4: .line 49
            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: .line 50
            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: .line 48
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 47
            invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 53
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* pkixParams */
        start local 2 // org.bouncycastle.x509.ExtendedPKIXBuilderParameters pkixParams
         9: .line 54
            aload 1 /* params */
            instanceof org.bouncycastle.x509.ExtendedPKIXBuilderParameters
            ifeq 12
        10: .line 56
            aload 1 /* params */
            checkcast org.bouncycastle.x509.ExtendedPKIXBuilderParameters
            astore 2 /* pkixParams */
        11: .line 57
            goto 14
        12: .line 61
      StackMap locals: org.bouncycastle.x509.ExtendedPKIXBuilderParameters
      StackMap stack:
            aload 1 /* params */
            checkcast java.security.cert.PKIXBuilderParameters
            invokestatic org.bouncycastle.x509.ExtendedPKIXBuilderParameters.getInstance:(Ljava/security/cert/PKIXParameters;)Lorg/bouncycastle/x509/ExtendedPKIXParameters;
        13: .line 60
            checkcast org.bouncycastle.x509.ExtendedPKIXBuilderParameters
            astore 2 /* pkixParams */
        14: .line 66
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 5 /* certPathList */
        start local 5 // java.util.List certPathList
        15: .line 71
            aload 2 /* pkixParams */
            invokevirtual org.bouncycastle.x509.ExtendedPKIXBuilderParameters.getTargetConstraints:()Lorg/bouncycastle/util/Selector;
            astore 7 /* certSelect */
        start local 7 // org.bouncycastle.util.Selector certSelect
        16: .line 72
            aload 7 /* certSelect */
            instanceof org.bouncycastle.x509.X509CertStoreSelector
            ifne 23
        17: .line 74
            new java.security.cert.CertPathBuilderException
            dup
        18: .line 75
            new java.lang.StringBuilder
            dup
            ldc "TargetConstraints must be an instance of "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        19: .line 76
            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: .line 77
            aload 0 /* this */
            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: .line 75
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        22: .line 74
            invokespecial java.security.cert.CertPathBuilderException.<init>:(Ljava/lang/String;)V
            athrow
        23: .line 82
      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 /* certSelect */
            checkcast org.bouncycastle.x509.X509CertStoreSelector
            aload 2 /* pkixParams */
            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 /* targets */
        start local 3 // java.util.Collection targets
        24: .line 83
            aload 3 /* targets */
            aload 7 /* certSelect */
            checkcast org.bouncycastle.x509.X509CertStoreSelector
            aload 2 /* pkixParams */
            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: .line 84
            goto 30
        end local 3 // java.util.Collection targets
        26: .line 85
      StackMap locals:
      StackMap stack: org.bouncycastle.jce.provider.AnnotatedException
            astore 8 /* e */
        start local 8 // org.bouncycastle.jce.provider.AnnotatedException e
        27: .line 87
            new org.bouncycastle.jce.exception.ExtCertPathBuilderException
            dup
        28: .line 88
            ldc "Error finding target certificate."
            aload 8 /* e */
        29: .line 87
            invokespecial org.bouncycastle.jce.exception.ExtCertPathBuilderException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 8 // org.bouncycastle.jce.provider.AnnotatedException e
        start local 3 // java.util.Collection targets
        30: .line 91
      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 /* targets */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifeq 34
        31: .line 94
            new java.security.cert.CertPathBuilderException
            dup
        32: .line 95
            ldc "No certificate found matching targetContraints."
        33: .line 94
            invokespecial java.security.cert.CertPathBuilderException.<init>:(Ljava/lang/String;)V
            athrow
        34: .line 98
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 8 /* result */
        start local 8 // java.security.cert.CertPathBuilderResult result
        35: .line 101
            aload 3 /* targets */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4 /* targetIter */
        start local 4 // java.util.Iterator targetIter
        36: .line 102
            goto 39
        37: .line 104
      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 /* targetIter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.security.cert.X509Certificate
            astore 6 /* cert */
        start local 6 // java.security.cert.X509Certificate cert
        38: .line 105
            aload 0 /* this */
            aload 6 /* cert */
            aload 2 /* pkixParams */
            aload 5 /* certPathList */
            invokevirtual org.bouncycastle.jce.provider.PKIXCertPathBuilderSpi.build:(Ljava/security/cert/X509Certificate;Lorg/bouncycastle/x509/ExtendedPKIXBuilderParameters;Ljava/util/List;)Ljava/security/cert/CertPathBuilderResult;
            astore 8 /* result */
        end local 6 // java.security.cert.X509Certificate cert
        39: .line 102
      StackMap locals:
      StackMap stack:
            aload 4 /* targetIter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifeq 40
            aload 8 /* result */
            ifnull 37
        40: .line 108
      StackMap locals:
      StackMap stack:
            aload 8 /* result */
            ifnonnull 47
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.PKIXCertPathBuilderSpi.certPathException:Ljava/lang/Exception;
            ifnull 47
        41: .line 110
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.PKIXCertPathBuilderSpi.certPathException:Ljava/lang/Exception;
            instanceof org.bouncycastle.jce.provider.AnnotatedException
            ifeq 43
        42: .line 112
            new java.security.cert.CertPathBuilderException
            dup
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.PKIXCertPathBuilderSpi.certPathException:Ljava/lang/Exception;
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            aload 0 /* this */
            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: .line 114
      StackMap locals:
      StackMap stack:
            new java.security.cert.CertPathBuilderException
            dup
        44: .line 115
            ldc "Possible certificate chain could not be validated."
        45: .line 116
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.PKIXCertPathBuilderSpi.certPathException:Ljava/lang/Exception;
        46: .line 114
            invokespecial java.security.cert.CertPathBuilderException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        47: .line 119
      StackMap locals:
      StackMap stack:
            aload 8 /* result */
            ifnonnull 51
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.PKIXCertPathBuilderSpi.certPathException:Ljava/lang/Exception;
            ifnonnull 51
        48: .line 121
            new java.security.cert.CertPathBuilderException
            dup
        49: .line 122
            ldc "Unable to find certificate chain."
        50: .line 121
            invokespecial java.security.cert.CertPathBuilderException.<init>:(Ljava/lang/String;)V
            athrow
        51: .line 125
      StackMap locals:
      StackMap stack:
            aload 8 /* result */
            areturn
        end local 8 // java.security.cert.CertPathBuilderResult result
        end local 7 // org.bouncycastle.util.Selector certSelect
        end local 5 // java.util.List certPathList
        end local 4 // java.util.Iterator targetIter
        end local 3 // java.util.Collection targets
        end local 2 // org.bouncycastle.x509.ExtendedPKIXBuilderParameters pkixParams
        end local 1 // java.security.cert.CertPathParameters params
        end local 0 // org.bouncycastle.jce.provider.PKIXCertPathBuilderSpi this
      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 // org.bouncycastle.jce.provider.PKIXCertPathBuilderSpi this
        start local 1 // java.security.cert.X509Certificate tbvCert
        start local 2 // org.bouncycastle.x509.ExtendedPKIXBuilderParameters pkixParams
        start local 3 // java.util.List tbvPath
         0: .line 136
            aload 3 /* tbvPath */
            aload 1 /* tbvCert */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 138
            aconst_null
            areturn
         2: .line 142
      StackMap locals:
      StackMap stack:
            aload 2 /* pkixParams */
            invokevirtual org.bouncycastle.x509.ExtendedPKIXBuilderParameters.getExcludedCerts:()Ljava/util/Set;
            aload 1 /* tbvCert */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 144
            aconst_null
            areturn
         4: .line 147
      StackMap locals:
      StackMap stack:
            aload 2 /* pkixParams */
            invokevirtual org.bouncycastle.x509.ExtendedPKIXBuilderParameters.getMaxPathLength:()I
            iconst_m1
            if_icmpeq 7
         5: .line 149
            aload 3 /* tbvPath */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            aload 2 /* pkixParams */
            invokevirtual org.bouncycastle.x509.ExtendedPKIXBuilderParameters.getMaxPathLength:()I
            if_icmple 7
         6: .line 151
            aconst_null
            areturn
         7: .line 155
      StackMap locals:
      StackMap stack:
            aload 3 /* tbvPath */
            aload 1 /* tbvCert */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         8: .line 159
            aconst_null
            astore 6 /* builderResult */
        start local 6 // java.security.cert.CertPathBuilderResult builderResult
         9: .line 163
            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 /* cFact */
        start local 4 // java.security.cert.CertificateFactory cFact
        10: .line 164
            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 /* validator */
        start local 5 // java.security.cert.CertPathValidator validator
        11: .line 165
            goto 14
        end local 5 // java.security.cert.CertPathValidator validator
        end local 4 // java.security.cert.CertificateFactory cFact
        12: .line 166
      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: .line 169
            new java.lang.RuntimeException
            dup
            ldc "Exception creating support classes."
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        start local 4 // java.security.cert.CertificateFactory cFact
        start local 5 // java.security.cert.CertPathValidator validator
        14: .line 175
      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 /* tbvCert */
            aload 2 /* pkixParams */
            invokevirtual org.bouncycastle.x509.ExtendedPKIXBuilderParameters.getTrustAnchors:()Ljava/util/Set;
        15: .line 176
            aload 2 /* pkixParams */
            invokevirtual org.bouncycastle.x509.ExtendedPKIXBuilderParameters.getSigProvider:()Ljava/lang/String;
        16: .line 175
            invokestatic org.bouncycastle.jce.provider.CertPathValidatorUtilities.findTrustAnchor:(Ljava/security/cert/X509Certificate;Ljava/util/Set;Ljava/lang/String;)Ljava/security/cert/TrustAnchor;
            ifnull 39
        17: .line 180
            aconst_null
            astore 7 /* certPath */
        start local 7 // java.security.cert.CertPath certPath
        18: .line 181
            aconst_null
            astore 8 /* result */
        start local 8 // java.security.cert.PKIXCertPathValidatorResult result
        19: .line 184
            aload 4 /* cFact */
            aload 3 /* tbvPath */
            invokevirtual java.security.cert.CertificateFactory.generateCertPath:(Ljava/util/List;)Ljava/security/cert/CertPath;
            astore 7 /* certPath */
        20: .line 185
            goto 26
        21: .line 186
      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 /* e */
        start local 9 // java.lang.Exception e
        22: .line 188
            new org.bouncycastle.jce.provider.AnnotatedException
            dup
        23: .line 189
            ldc "Certification path could not be constructed from certificate list."
        24: .line 190
            aload 9 /* e */
        25: .line 188
            invokespecial org.bouncycastle.jce.provider.AnnotatedException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 9 // java.lang.Exception e
        26: .line 195
      StackMap locals:
      StackMap stack:
            aload 5 /* validator */
        27: .line 196
            aload 7 /* certPath */
            aload 2 /* pkixParams */
        28: .line 195
            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 /* result */
        29: .line 197
            goto 34
        30: .line 198
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 9 /* e */
        start local 9 // java.lang.Exception e
        31: .line 200
            new org.bouncycastle.jce.provider.AnnotatedException
            dup
        32: .line 201
            ldc "Certification path could not be validated."
            aload 9 /* e */
        33: .line 200
            invokespecial org.bouncycastle.jce.provider.AnnotatedException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 9 // java.lang.Exception e
        34: .line 204
      StackMap locals:
      StackMap stack:
            new java.security.cert.PKIXCertPathBuilderResult
            dup
            aload 7 /* certPath */
            aload 8 /* result */
        35: .line 205
            invokevirtual java.security.cert.PKIXCertPathValidatorResult.getTrustAnchor:()Ljava/security/cert/TrustAnchor;
            aload 8 /* result */
            invokevirtual java.security.cert.PKIXCertPathValidatorResult.getPolicyTree:()Ljava/security/cert/PolicyNode;
            aload 8 /* result */
        36: .line 206
            invokevirtual java.security.cert.PKIXCertPathValidatorResult.getPublicKey:()Ljava/security/PublicKey;
        37: .line 204
            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 // java.security.cert.PKIXCertPathValidatorResult result
        end local 7 // java.security.cert.CertPath certPath
        39: .line 215
      StackMap locals:
      StackMap stack:
            aload 1 /* tbvCert */
            aload 2 /* pkixParams */
        40: .line 214
            invokestatic org.bouncycastle.jce.provider.CertPathValidatorUtilities.addAdditionalStoresFromAltNames:(Ljava/security/cert/X509Certificate;Lorg/bouncycastle/x509/ExtendedPKIXParameters;)V
        41: .line 216
            goto 47
        42: .line 217
      StackMap locals:
      StackMap stack: java.security.cert.CertificateParsingException
            astore 7 /* e */
        start local 7 // java.security.cert.CertificateParsingException e
        43: .line 219
            new org.bouncycastle.jce.provider.AnnotatedException
            dup
        44: .line 220
            ldc "No additiontal X.509 stores can be added from certificate locations."
        45: .line 221
            aload 7 /* e */
        46: .line 219
            invokespecial org.bouncycastle.jce.provider.AnnotatedException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 7 // java.security.cert.CertificateParsingException e
        47: .line 223
      StackMap locals:
      StackMap stack:
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 7 /* issuers */
        start local 7 // java.util.Collection issuers
        48: .line 228
            aload 7 /* issuers */
            aload 1 /* tbvCert */
            aload 2 /* pkixParams */
            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: .line 229
            goto 55
        50: .line 230
      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 /* e */
        start local 8 // org.bouncycastle.jce.provider.AnnotatedException e
        51: .line 232
            new org.bouncycastle.jce.provider.AnnotatedException
            dup
        52: .line 233
            ldc "Cannot find issuer certificate for certificate in certification path."
        53: .line 234
            aload 8 /* e */
        54: .line 232
            invokespecial org.bouncycastle.jce.provider.AnnotatedException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 8 // org.bouncycastle.jce.provider.AnnotatedException e
        55: .line 236
      StackMap locals:
      StackMap stack:
            aload 7 /* issuers */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifeq 59
        56: .line 238
            new org.bouncycastle.jce.provider.AnnotatedException
            dup
        57: .line 239
            ldc "No issuer certificate for certificate in certification path found."
        58: .line 238
            invokespecial org.bouncycastle.jce.provider.AnnotatedException.<init>:(Ljava/lang/String;)V
            athrow
        59: .line 241
      StackMap locals:
      StackMap stack:
            aload 7 /* issuers */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 8 /* it */
        start local 8 // java.util.Iterator it
        60: .line 243
            goto 63
        61: .line 245
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 8 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.security.cert.X509Certificate
            astore 9 /* issuer */
        start local 9 // java.security.cert.X509Certificate issuer
        62: .line 246
            aload 0 /* this */
            aload 9 /* issuer */
            aload 2 /* pkixParams */
            aload 3 /* tbvPath */
            invokevirtual org.bouncycastle.jce.provider.PKIXCertPathBuilderSpi.build:(Ljava/security/cert/X509Certificate;Lorg/bouncycastle/x509/ExtendedPKIXBuilderParameters;Ljava/util/List;)Ljava/security/cert/CertPathBuilderResult;
            astore 6 /* builderResult */
        end local 9 // java.security.cert.X509Certificate issuer
        63: .line 243
      StackMap locals:
      StackMap stack:
            aload 8 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifeq 67
            aload 6 /* builderResult */
            ifnull 61
        end local 8 // java.util.Iterator it
        end local 7 // java.util.Collection issuers
        64: .line 249
            goto 67
        65: .line 250
      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 /* e */
        start local 7 // org.bouncycastle.jce.provider.AnnotatedException e
        66: .line 252
            aload 0 /* this */
            aload 7 /* e */
            putfield org.bouncycastle.jce.provider.PKIXCertPathBuilderSpi.certPathException:Ljava/lang/Exception;
        end local 7 // org.bouncycastle.jce.provider.AnnotatedException e
        67: .line 254
      StackMap locals:
      StackMap stack:
            aload 6 /* builderResult */
            ifnonnull 69
        68: .line 256
            aload 3 /* tbvPath */
            aload 1 /* tbvCert */
            invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
            pop
        69: .line 258
      StackMap locals:
      StackMap stack:
            aload 6 /* builderResult */
            areturn
        end local 6 // java.security.cert.CertPathBuilderResult builderResult
        end local 5 // java.security.cert.CertPathValidator validator
        end local 4 // java.security.cert.CertificateFactory cFact
        end local 3 // java.util.List tbvPath
        end local 2 // org.bouncycastle.x509.ExtendedPKIXBuilderParameters pkixParams
        end local 1 // java.security.cert.X509Certificate tbvCert
        end local 0 // org.bouncycastle.jce.provider.PKIXCertPathBuilderSpi this
      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"