public class org.bouncycastle.jce.provider.PKIXCertPath extends java.security.cert.CertPath
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bouncycastle.jce.provider.PKIXCertPath
  super_class: java.security.cert.CertPath
{
  static final java.util.List certPathEncodings;
    descriptor: Ljava/util/List;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  private java.util.List certificates;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=0
         0: .line 49
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 0 /* encodings */
        start local 0 // java.util.List encodings
         1: .line 50
            aload 0 /* encodings */
            ldc "PkiPath"
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 51
            aload 0 /* encodings */
            ldc "PEM"
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 52
            aload 0 /* encodings */
            ldc "PKCS7"
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         4: .line 53
            aload 0 /* encodings */
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
            putstatic org.bouncycastle.jce.provider.PKIXCertPath.certPathEncodings:Ljava/util/List;
        end local 0 // java.util.List encodings
         5: .line 54
            return
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            1    5     0  encodings  Ljava/util/List;

  private java.util.List sortCerts(java.util.List);
    descriptor: (Ljava/util/List;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=12, args_size=2
        start local 0 // org.bouncycastle.jce.provider.PKIXCertPath this
        start local 1 // java.util.List certs
         0: .line 64
            aload 1 /* certs */
            invokeinterface java.util.List.size:()I
            iconst_2
            if_icmpge 2
         1: .line 66
            aload 1 /* certs */
            areturn
         2: .line 69
      StackMap locals:
      StackMap stack:
            aload 1 /* certs */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.security.cert.X509Certificate
            invokevirtual java.security.cert.X509Certificate.getIssuerX500Principal:()Ljavax/security/auth/x500/X500Principal;
            astore 2 /* issuer */
        start local 2 // javax.security.auth.x500.X500Principal issuer
         3: .line 70
            iconst_1
            istore 3 /* okay */
        start local 3 // boolean okay
         4: .line 72
            iconst_1
            istore 4 /* i */
        start local 4 // int i
         5: goto 13
         6: .line 74
      StackMap locals: javax.security.auth.x500.X500Principal int int
      StackMap stack:
            aload 1 /* certs */
            iload 4 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.security.cert.X509Certificate
            astore 5 /* cert */
        start local 5 // java.security.cert.X509Certificate cert
         7: .line 76
            aload 2 /* issuer */
            aload 5 /* cert */
            invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
            invokevirtual javax.security.auth.x500.X500Principal.equals:(Ljava/lang/Object;)Z
            ifeq 10
         8: .line 78
            aload 1 /* certs */
            iload 4 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.security.cert.X509Certificate
            invokevirtual java.security.cert.X509Certificate.getIssuerX500Principal:()Ljavax/security/auth/x500/X500Principal;
            astore 2 /* issuer */
         9: .line 79
            goto 12
        10: .line 82
      StackMap locals: java.security.cert.X509Certificate
      StackMap stack:
            iconst_0
            istore 3 /* okay */
        11: .line 83
            goto 14
        end local 5 // java.security.cert.X509Certificate cert
        12: .line 72
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 4 /* i */
            aload 1 /* certs */
            invokeinterface java.util.List.size:()I
            if_icmpne 6
        end local 4 // int i
        14: .line 87
      StackMap locals:
      StackMap stack:
            iload 3 /* okay */
            ifeq 16
        15: .line 89
            aload 1 /* certs */
            areturn
        16: .line 93
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            aload 1 /* certs */
            invokeinterface java.util.List.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 4 /* retList */
        start local 4 // java.util.List retList
        17: .line 94
            new java.util.ArrayList
            dup
            aload 1 /* certs */
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 5 /* orig */
        start local 5 // java.util.List orig
        18: .line 96
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        19: goto 35
        20: .line 98
      StackMap locals: java.util.List java.util.List int
      StackMap stack:
            aload 1 /* certs */
            iload 6 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.security.cert.X509Certificate
            astore 7 /* cert */
        start local 7 // java.security.cert.X509Certificate cert
        21: .line 99
            iconst_0
            istore 8 /* found */
        start local 8 // boolean found
        22: .line 101
            aload 7 /* cert */
            invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
            astore 9 /* subject */
        start local 9 // javax.security.auth.x500.X500Principal subject
        23: .line 103
            iconst_0
            istore 10 /* j */
        start local 10 // int j
        24: goto 30
        25: .line 105
      StackMap locals: org.bouncycastle.jce.provider.PKIXCertPath java.util.List javax.security.auth.x500.X500Principal int java.util.List java.util.List int java.security.cert.X509Certificate int javax.security.auth.x500.X500Principal int
      StackMap stack:
            aload 1 /* certs */
            iload 10 /* j */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.security.cert.X509Certificate
            astore 11 /* c */
        start local 11 // java.security.cert.X509Certificate c
        26: .line 106
            aload 11 /* c */
            invokevirtual java.security.cert.X509Certificate.getIssuerX500Principal:()Ljavax/security/auth/x500/X500Principal;
            aload 9 /* subject */
            invokevirtual javax.security.auth.x500.X500Principal.equals:(Ljava/lang/Object;)Z
            ifeq 29
        27: .line 108
            iconst_1
            istore 8 /* found */
        28: .line 109
            goto 31
        end local 11 // java.security.cert.X509Certificate c
        29: .line 103
      StackMap locals:
      StackMap stack:
            iinc 10 /* j */ 1
      StackMap locals:
      StackMap stack:
        30: iload 10 /* j */
            aload 1 /* certs */
            invokeinterface java.util.List.size:()I
            if_icmpne 25
        end local 10 // int j
        31: .line 113
      StackMap locals:
      StackMap stack:
            iload 8 /* found */
            ifne 34
        32: .line 115
            aload 4 /* retList */
            aload 7 /* cert */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        33: .line 116
            aload 1 /* certs */
            iload 6 /* i */
            invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
            pop
        end local 9 // javax.security.auth.x500.X500Principal subject
        end local 8 // boolean found
        end local 7 // java.security.cert.X509Certificate cert
        34: .line 96
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        35: iload 6 /* i */
            aload 1 /* certs */
            invokeinterface java.util.List.size:()I
            if_icmplt 20
        end local 6 // int i
        36: .line 121
            aload 4 /* retList */
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmple 38
        37: .line 123
            aload 5 /* orig */
            areturn
        38: .line 126
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        39: goto 51
        40: .line 128
      StackMap locals: int
      StackMap stack:
            aload 4 /* retList */
            iload 6 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.security.cert.X509Certificate
            invokevirtual java.security.cert.X509Certificate.getIssuerX500Principal:()Ljavax/security/auth/x500/X500Principal;
            astore 2 /* issuer */
        41: .line 130
            iconst_0
            istore 7 /* j */
        start local 7 // int j
        42: goto 49
        43: .line 132
      StackMap locals: int
      StackMap stack:
            aload 1 /* certs */
            iload 7 /* j */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.security.cert.X509Certificate
            astore 8 /* c */
        start local 8 // java.security.cert.X509Certificate c
        44: .line 133
            aload 2 /* issuer */
            aload 8 /* c */
            invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
            invokevirtual javax.security.auth.x500.X500Principal.equals:(Ljava/lang/Object;)Z
            ifeq 48
        45: .line 135
            aload 4 /* retList */
            aload 8 /* c */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        46: .line 136
            aload 1 /* certs */
            iload 7 /* j */
            invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
            pop
        47: .line 137
            goto 50
        end local 8 // java.security.cert.X509Certificate c
        48: .line 130
      StackMap locals:
      StackMap stack:
            iinc 7 /* j */ 1
      StackMap locals:
      StackMap stack:
        49: iload 7 /* j */
            aload 1 /* certs */
            invokeinterface java.util.List.size:()I
            if_icmplt 43
        end local 7 // int j
        50: .line 126
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        51: iload 6 /* i */
            aload 4 /* retList */
            invokeinterface java.util.List.size:()I
            if_icmpne 40
        end local 6 // int i
        52: .line 143
            aload 1 /* certs */
            invokeinterface java.util.List.size:()I
            ifle 54
        53: .line 145
            aload 5 /* orig */
            areturn
        54: .line 148
      StackMap locals:
      StackMap stack:
            aload 4 /* retList */
            areturn
        end local 5 // java.util.List orig
        end local 4 // java.util.List retList
        end local 3 // boolean okay
        end local 2 // javax.security.auth.x500.X500Principal issuer
        end local 1 // java.util.List certs
        end local 0 // org.bouncycastle.jce.provider.PKIXCertPath this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   55     0     this  Lorg/bouncycastle/jce/provider/PKIXCertPath;
            0   55     1    certs  Ljava/util/List;
            3   55     2   issuer  Ljavax/security/auth/x500/X500Principal;
            4   55     3     okay  Z
            5   14     4        i  I
            7   12     5     cert  Ljava/security/cert/X509Certificate;
           17   55     4  retList  Ljava/util/List;
           18   55     5     orig  Ljava/util/List;
           19   36     6        i  I
           21   34     7     cert  Ljava/security/cert/X509Certificate;
           22   34     8    found  Z
           23   34     9  subject  Ljavax/security/auth/x500/X500Principal;
           24   31    10        j  I
           26   29    11        c  Ljava/security/cert/X509Certificate;
           39   52     6        i  I
           42   50     7        j  I
           44   48     8        c  Ljava/security/cert/X509Certificate;
    MethodParameters:
       Name  Flags
      certs  

  void <init>(java.util.List);
    descriptor: (Ljava/util/List;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.bouncycastle.jce.provider.PKIXCertPath this
        start local 1 // java.util.List certificates
         0: .line 153
            aload 0 /* this */
            ldc "X.509"
            invokespecial java.security.cert.CertPath.<init>:(Ljava/lang/String;)V
         1: .line 154
            aload 0 /* this */
            aload 0 /* this */
            new java.util.ArrayList
            dup
            aload 1 /* certificates */
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            invokevirtual org.bouncycastle.jce.provider.PKIXCertPath.sortCerts:(Ljava/util/List;)Ljava/util/List;
            putfield org.bouncycastle.jce.provider.PKIXCertPath.certificates:Ljava/util/List;
         2: .line 155
            return
        end local 1 // java.util.List certificates
        end local 0 // org.bouncycastle.jce.provider.PKIXCertPath this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lorg/bouncycastle/jce/provider/PKIXCertPath;
            0    3     1  certificates  Ljava/util/List;
    MethodParameters:
              Name  Flags
      certificates  

  void <init>(java.io.InputStream, java.lang.String);
    descriptor: (Ljava/io/InputStream;Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=6, locals=9, args_size=3
        start local 0 // org.bouncycastle.jce.provider.PKIXCertPath this
        start local 1 // java.io.InputStream inStream
        start local 2 // java.lang.String encoding
         0: .line 167
            aload 0 /* this */
            ldc "X.509"
            invokespecial java.security.cert.CertPath.<init>:(Ljava/lang/String;)V
         1: .line 170
            aload 2 /* encoding */
            ldc "PkiPath"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 17
         2: .line 172
            new org.bouncycastle.asn1.ASN1InputStream
            dup
            aload 1 /* inStream */
            invokespecial org.bouncycastle.asn1.ASN1InputStream.<init>:(Ljava/io/InputStream;)V
            astore 3 /* derInStream */
        start local 3 // org.bouncycastle.asn1.ASN1InputStream derInStream
         3: .line 173
            aload 3 /* derInStream */
            invokevirtual org.bouncycastle.asn1.ASN1InputStream.readObject:()Lorg/bouncycastle/asn1/DERObject;
            astore 4 /* derObject */
        start local 4 // org.bouncycastle.asn1.DERObject derObject
         4: .line 174
            aload 4 /* derObject */
            instanceof org.bouncycastle.asn1.ASN1Sequence
            ifne 6
         5: .line 176
            new java.security.cert.CertificateException
            dup
            ldc "input stream does not contain a ASN1 SEQUENCE while reading PkiPath encoded data to load CertPath"
            invokespecial java.security.cert.CertificateException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 178
      StackMap locals: org.bouncycastle.jce.provider.PKIXCertPath java.io.InputStream java.lang.String org.bouncycastle.asn1.ASN1InputStream org.bouncycastle.asn1.DERObject
      StackMap stack:
            aload 4 /* derObject */
            checkcast org.bouncycastle.asn1.ASN1Sequence
            invokevirtual org.bouncycastle.asn1.ASN1Sequence.getObjects:()Ljava/util/Enumeration;
            astore 5 /* e */
        start local 5 // java.util.Enumeration e
         7: .line 179
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.bouncycastle.jce.provider.PKIXCertPath.certificates:Ljava/util/List;
         8: .line 180
            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 6 /* certFactory */
        start local 6 // java.security.cert.CertificateFactory certFactory
         9: .line 181
            goto 15
        10: .line 183
      StackMap locals: java.util.Enumeration java.security.cert.CertificateFactory
      StackMap stack:
            aload 5 /* e */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast org.bouncycastle.asn1.ASN1Encodable
            astore 7 /* element */
        start local 7 // org.bouncycastle.asn1.ASN1Encodable element
        11: .line 184
            aload 7 /* element */
            ldc "DER"
            invokevirtual org.bouncycastle.asn1.ASN1Encodable.getEncoded:(Ljava/lang/String;)[B
            astore 8 /* encoded */
        start local 8 // byte[] encoded
        12: .line 185
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.PKIXCertPath.certificates:Ljava/util/List;
            iconst_0
            aload 6 /* certFactory */
        13: .line 186
            new java.io.ByteArrayInputStream
            dup
            aload 8 /* encoded */
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
        14: .line 185
            invokevirtual java.security.cert.CertificateFactory.generateCertificate:(Ljava/io/InputStream;)Ljava/security/cert/Certificate;
            invokeinterface java.util.List.add:(ILjava/lang/Object;)V
        end local 8 // byte[] encoded
        end local 7 // org.bouncycastle.asn1.ASN1Encodable element
        15: .line 181
      StackMap locals:
      StackMap stack:
            aload 5 /* e */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 10
        end local 6 // java.security.cert.CertificateFactory certFactory
        end local 5 // java.util.Enumeration e
        end local 4 // org.bouncycastle.asn1.DERObject derObject
        end local 3 // org.bouncycastle.asn1.ASN1InputStream derInStream
        16: .line 188
            goto 31
        17: .line 189
      StackMap locals: org.bouncycastle.jce.provider.PKIXCertPath java.io.InputStream java.lang.String
      StackMap stack:
            aload 2 /* encoding */
            ldc "PKCS7"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 18
            aload 2 /* encoding */
            ldc "PEM"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 26
        18: .line 191
      StackMap locals:
      StackMap stack:
            new java.io.BufferedInputStream
            dup
            aload 1 /* inStream */
            invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
            astore 1 /* inStream */
        19: .line 192
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.bouncycastle.jce.provider.PKIXCertPath.certificates:Ljava/util/List;
        20: .line 193
            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 3 /* certFactory */
        start local 3 // java.security.cert.CertificateFactory certFactory
        21: .line 195
            goto 23
        start local 4 // java.security.cert.Certificate cert
        22: .line 197
      StackMap locals: java.security.cert.CertificateFactory java.security.cert.Certificate
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.PKIXCertPath.certificates:Ljava/util/List;
            aload 4 /* cert */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // java.security.cert.Certificate cert
        23: .line 195
      StackMap locals:
      StackMap stack:
            aload 3 /* certFactory */
            aload 1 /* inStream */
            invokevirtual java.security.cert.CertificateFactory.generateCertificate:(Ljava/io/InputStream;)Ljava/security/cert/Certificate;
            dup
            astore 4 /* cert */
        start local 4 // java.security.cert.Certificate cert
        24: ifnonnull 22
        end local 4 // java.security.cert.Certificate cert
        end local 3 // java.security.cert.CertificateFactory certFactory
        25: .line 199
            goto 31
        26: .line 202
      StackMap locals:
      StackMap stack:
            new java.security.cert.CertificateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "unsupported encoding: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* encoding */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.security.cert.CertificateException.<init>:(Ljava/lang/String;)V
            athrow
        27: .line 205
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 3 /* ex */
        start local 3 // java.io.IOException ex
        28: .line 207
            new java.security.cert.CertificateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "IOException throw while decoding CertPath:\n"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* ex */
            invokevirtual java.io.IOException.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.security.cert.CertificateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.io.IOException ex
        29: .line 209
      StackMap locals:
      StackMap stack: java.security.NoSuchProviderException
            astore 3 /* ex */
        start local 3 // java.security.NoSuchProviderException ex
        30: .line 211
            new java.security.cert.CertificateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "BouncyCastle provider not found while trying to get a CertificateFactory:\n"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* ex */
            invokevirtual java.security.NoSuchProviderException.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.security.cert.CertificateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.security.NoSuchProviderException ex
        31: .line 214
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.PKIXCertPath.certificates:Ljava/util/List;
            invokevirtual org.bouncycastle.jce.provider.PKIXCertPath.sortCerts:(Ljava/util/List;)Ljava/util/List;
            putfield org.bouncycastle.jce.provider.PKIXCertPath.certificates:Ljava/util/List;
        32: .line 215
            return
        end local 2 // java.lang.String encoding
        end local 1 // java.io.InputStream inStream
        end local 0 // org.bouncycastle.jce.provider.PKIXCertPath this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   33     0         this  Lorg/bouncycastle/jce/provider/PKIXCertPath;
            0   33     1     inStream  Ljava/io/InputStream;
            0   33     2     encoding  Ljava/lang/String;
            3   16     3  derInStream  Lorg/bouncycastle/asn1/ASN1InputStream;
            4   16     4    derObject  Lorg/bouncycastle/asn1/DERObject;
            7   16     5            e  Ljava/util/Enumeration;
            9   16     6  certFactory  Ljava/security/cert/CertificateFactory;
           11   15     7      element  Lorg/bouncycastle/asn1/ASN1Encodable;
           12   15     8      encoded  [B
           21   25     3  certFactory  Ljava/security/cert/CertificateFactory;
           22   23     4         cert  Ljava/security/cert/Certificate;
           24   25     4         cert  Ljava/security/cert/Certificate;
           28   29     3           ex  Ljava/io/IOException;
           30   31     3           ex  Ljava/security/NoSuchProviderException;
      Exception table:
        from    to  target  type
           1    27      27  Class java.io.IOException
           1    27      29  Class java.security.NoSuchProviderException
    Exceptions:
      throws java.security.cert.CertificateException
    MethodParameters:
          Name  Flags
      inStream  
      encoding  

  public java.util.Iterator getEncodings();
    descriptor: ()Ljava/util/Iterator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.jce.provider.PKIXCertPath this
         0: .line 227
            getstatic org.bouncycastle.jce.provider.PKIXCertPath.certPathEncodings:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            areturn
        end local 0 // org.bouncycastle.jce.provider.PKIXCertPath this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/jce/provider/PKIXCertPath;

  public byte[] getEncoded();
    descriptor: ()[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.bouncycastle.jce.provider.PKIXCertPath this
         0: .line 240
            aload 0 /* this */
            invokevirtual org.bouncycastle.jce.provider.PKIXCertPath.getEncodings:()Ljava/util/Iterator;
            astore 1 /* iter */
        start local 1 // java.util.Iterator iter
         1: .line 241
            aload 1 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifeq 5
         2: .line 243
            aload 1 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 2 /* enc */
        start local 2 // java.lang.Object enc
         3: .line 244
            aload 2 /* enc */
            instanceof java.lang.String
            ifeq 5
         4: .line 246
            aload 0 /* this */
            aload 2 /* enc */
            checkcast java.lang.String
            invokevirtual org.bouncycastle.jce.provider.PKIXCertPath.getEncoded:(Ljava/lang/String;)[B
            areturn
        end local 2 // java.lang.Object enc
         5: .line 249
      StackMap locals: java.util.Iterator
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.util.Iterator iter
        end local 0 // org.bouncycastle.jce.provider.PKIXCertPath this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/bouncycastle/jce/provider/PKIXCertPath;
            1    6     1  iter  Ljava/util/Iterator;
            3    5     2   enc  Ljava/lang/Object;
    Exceptions:
      throws java.security.cert.CertificateEncodingException

  public byte[] getEncoded(java.lang.String);
    descriptor: (Ljava/lang/String;)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=5, args_size=2
        start local 0 // org.bouncycastle.jce.provider.PKIXCertPath this
        start local 1 // java.lang.String encoding
         0: .line 265
            aload 1 /* encoding */
            ldc "PkiPath"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 7
         1: .line 267
            new org.bouncycastle.asn1.ASN1EncodableVector
            dup
            invokespecial org.bouncycastle.asn1.ASN1EncodableVector.<init>:()V
            astore 2 /* v */
        start local 2 // org.bouncycastle.asn1.ASN1EncodableVector v
         2: .line 269
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.PKIXCertPath.certificates:Ljava/util/List;
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.PKIXCertPath.certificates:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            invokeinterface java.util.List.listIterator:(I)Ljava/util/ListIterator;
            astore 3 /* iter */
        start local 3 // java.util.ListIterator iter
         3: .line 270
            goto 5
         4: .line 272
      StackMap locals: org.bouncycastle.asn1.ASN1EncodableVector java.util.ListIterator
      StackMap stack:
            aload 2 /* v */
            aload 0 /* this */
            aload 3 /* iter */
            invokeinterface java.util.ListIterator.previous:()Ljava/lang/Object;
            checkcast java.security.cert.X509Certificate
            invokevirtual org.bouncycastle.jce.provider.PKIXCertPath.toASN1Object:(Ljava/security/cert/X509Certificate;)Lorg/bouncycastle/asn1/DERObject;
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/DEREncodable;)V
         5: .line 270
      StackMap locals:
      StackMap stack:
            aload 3 /* iter */
            invokeinterface java.util.ListIterator.hasPrevious:()Z
            ifne 4
         6: .line 275
            aload 0 /* this */
            new org.bouncycastle.asn1.DERSequence
            dup
            aload 2 /* v */
            invokespecial org.bouncycastle.asn1.DERSequence.<init>:(Lorg/bouncycastle/asn1/ASN1EncodableVector;)V
            invokevirtual org.bouncycastle.jce.provider.PKIXCertPath.toDEREncoded:(Lorg/bouncycastle/asn1/ASN1Encodable;)[B
            areturn
        end local 3 // java.util.ListIterator iter
        end local 2 // org.bouncycastle.asn1.ASN1EncodableVector v
         7: .line 277
      StackMap locals:
      StackMap stack:
            aload 1 /* encoding */
            ldc "PKCS7"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 26
         8: .line 279
            new org.bouncycastle.asn1.pkcs.ContentInfo
            dup
            getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.data:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aconst_null
            invokespecial org.bouncycastle.asn1.pkcs.ContentInfo.<init>:(Lorg/bouncycastle/asn1/DERObjectIdentifier;Lorg/bouncycastle/asn1/DEREncodable;)V
            astore 2 /* encInfo */
        start local 2 // org.bouncycastle.asn1.pkcs.ContentInfo encInfo
         9: .line 281
            new org.bouncycastle.asn1.ASN1EncodableVector
            dup
            invokespecial org.bouncycastle.asn1.ASN1EncodableVector.<init>:()V
            astore 3 /* v */
        start local 3 // org.bouncycastle.asn1.ASN1EncodableVector v
        10: .line 282
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        11: goto 14
        12: .line 284
      StackMap locals: org.bouncycastle.asn1.pkcs.ContentInfo org.bouncycastle.asn1.ASN1EncodableVector int
      StackMap stack:
            aload 3 /* v */
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.PKIXCertPath.certificates:Ljava/util/List;
            iload 4 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.security.cert.X509Certificate
            invokevirtual org.bouncycastle.jce.provider.PKIXCertPath.toASN1Object:(Ljava/security/cert/X509Certificate;)Lorg/bouncycastle/asn1/DERObject;
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/DEREncodable;)V
        13: .line 282
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 4 /* i */
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.PKIXCertPath.certificates:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmpne 12
        end local 4 // int i
        15: .line 287
            new org.bouncycastle.asn1.pkcs.SignedData
            dup
        16: .line 288
            new org.bouncycastle.asn1.DERInteger
            dup
            iconst_1
            invokespecial org.bouncycastle.asn1.DERInteger.<init>:(I)V
        17: .line 289
            new org.bouncycastle.asn1.DERSet
            dup
            invokespecial org.bouncycastle.asn1.DERSet.<init>:()V
        18: .line 290
            aload 2 /* encInfo */
        19: .line 291
            new org.bouncycastle.asn1.DERSet
            dup
            aload 3 /* v */
            invokespecial org.bouncycastle.asn1.DERSet.<init>:(Lorg/bouncycastle/asn1/ASN1EncodableVector;)V
        20: .line 292
            aconst_null
        21: .line 293
            new org.bouncycastle.asn1.DERSet
            dup
            invokespecial org.bouncycastle.asn1.DERSet.<init>:()V
        22: .line 287
            invokespecial org.bouncycastle.asn1.pkcs.SignedData.<init>:(Lorg/bouncycastle/asn1/DERInteger;Lorg/bouncycastle/asn1/ASN1Set;Lorg/bouncycastle/asn1/pkcs/ContentInfo;Lorg/bouncycastle/asn1/ASN1Set;Lorg/bouncycastle/asn1/ASN1Set;Lorg/bouncycastle/asn1/ASN1Set;)V
            astore 4 /* sd */
        start local 4 // org.bouncycastle.asn1.pkcs.SignedData sd
        23: .line 295
            aload 0 /* this */
            new org.bouncycastle.asn1.pkcs.ContentInfo
            dup
        24: .line 296
            getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.signedData:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 4 /* sd */
            invokespecial org.bouncycastle.asn1.pkcs.ContentInfo.<init>:(Lorg/bouncycastle/asn1/DERObjectIdentifier;Lorg/bouncycastle/asn1/DEREncodable;)V
        25: .line 295
            invokevirtual org.bouncycastle.jce.provider.PKIXCertPath.toDEREncoded:(Lorg/bouncycastle/asn1/ASN1Encodable;)[B
            areturn
        end local 4 // org.bouncycastle.asn1.pkcs.SignedData sd
        end local 3 // org.bouncycastle.asn1.ASN1EncodableVector v
        end local 2 // org.bouncycastle.asn1.pkcs.ContentInfo encInfo
        26: .line 298
      StackMap locals:
      StackMap stack:
            aload 1 /* encoding */
            ldc "PEM"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 39
        27: .line 300
            new java.io.ByteArrayOutputStream
            dup
            invokespecial java.io.ByteArrayOutputStream.<init>:()V
            astore 2 /* bOut */
        start local 2 // java.io.ByteArrayOutputStream bOut
        28: .line 301
            new org.bouncycastle.openssl.PEMWriter
            dup
            new java.io.OutputStreamWriter
            dup
            aload 2 /* bOut */
            invokespecial java.io.OutputStreamWriter.<init>:(Ljava/io/OutputStream;)V
            invokespecial org.bouncycastle.openssl.PEMWriter.<init>:(Ljava/io/Writer;)V
            astore 3 /* pWrt */
        start local 3 // org.bouncycastle.openssl.PEMWriter pWrt
        29: .line 305
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        30: goto 33
        31: .line 307
      StackMap locals: java.io.ByteArrayOutputStream org.bouncycastle.openssl.PEMWriter int
      StackMap stack:
            aload 3 /* pWrt */
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.PKIXCertPath.certificates:Ljava/util/List;
            iload 4 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokevirtual org.bouncycastle.openssl.PEMWriter.writeObject:(Ljava/lang/Object;)V
        32: .line 305
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        33: iload 4 /* i */
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.PKIXCertPath.certificates:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmpne 31
        end local 4 // int i
        34: .line 310
            aload 3 /* pWrt */
            invokevirtual org.bouncycastle.openssl.PEMWriter.close:()V
        35: .line 311
            goto 38
        36: .line 312
      StackMap locals: org.bouncycastle.jce.provider.PKIXCertPath java.lang.String java.io.ByteArrayOutputStream org.bouncycastle.openssl.PEMWriter
      StackMap stack: java.lang.Exception
            pop
        37: .line 314
            new java.security.cert.CertificateEncodingException
            dup
            ldc "can't encode certificate for PEM encoded path"
            invokespecial java.security.cert.CertificateEncodingException.<init>:(Ljava/lang/String;)V
            athrow
        38: .line 317
      StackMap locals:
      StackMap stack:
            aload 2 /* bOut */
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
            areturn
        end local 3 // org.bouncycastle.openssl.PEMWriter pWrt
        end local 2 // java.io.ByteArrayOutputStream bOut
        39: .line 321
      StackMap locals:
      StackMap stack:
            new java.security.cert.CertificateEncodingException
            dup
            new java.lang.StringBuilder
            dup
            ldc "unsupported encoding: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* encoding */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.security.cert.CertificateEncodingException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.String encoding
        end local 0 // org.bouncycastle.jce.provider.PKIXCertPath this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   40     0      this  Lorg/bouncycastle/jce/provider/PKIXCertPath;
            0   40     1  encoding  Ljava/lang/String;
            2    7     2         v  Lorg/bouncycastle/asn1/ASN1EncodableVector;
            3    7     3      iter  Ljava/util/ListIterator;
            9   26     2   encInfo  Lorg/bouncycastle/asn1/pkcs/ContentInfo;
           10   26     3         v  Lorg/bouncycastle/asn1/ASN1EncodableVector;
           11   15     4         i  I
           23   26     4        sd  Lorg/bouncycastle/asn1/pkcs/SignedData;
           28   39     2      bOut  Ljava/io/ByteArrayOutputStream;
           29   39     3      pWrt  Lorg/bouncycastle/openssl/PEMWriter;
           30   34     4         i  I
      Exception table:
        from    to  target  type
          29    35      36  Class java.lang.Exception
    Exceptions:
      throws java.security.cert.CertificateEncodingException
    MethodParameters:
          Name  Flags
      encoding  

  public java.util.List getCertificates();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.bouncycastle.jce.provider.PKIXCertPath this
         0: .line 333
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.PKIXCertPath.certificates:Ljava/util/List;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
            areturn
        end local 0 // org.bouncycastle.jce.provider.PKIXCertPath this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/jce/provider/PKIXCertPath;

  private org.bouncycastle.asn1.DERObject toASN1Object(java.security.cert.X509Certificate);
    descriptor: (Ljava/security/cert/X509Certificate;)Lorg/bouncycastle/asn1/DERObject;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.bouncycastle.jce.provider.PKIXCertPath this
        start local 1 // java.security.cert.X509Certificate cert
         0: .line 349
            new org.bouncycastle.asn1.ASN1InputStream
            dup
            aload 1 /* cert */
            invokevirtual java.security.cert.X509Certificate.getEncoded:()[B
            invokespecial org.bouncycastle.asn1.ASN1InputStream.<init>:([B)V
            invokevirtual org.bouncycastle.asn1.ASN1InputStream.readObject:()Lorg/bouncycastle/asn1/DERObject;
         1: areturn
         2: .line 351
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 2 /* e */
        start local 2 // java.lang.Exception e
         3: .line 353
            new java.security.cert.CertificateEncodingException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Exception while encoding certificate: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* e */
            invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.security.cert.CertificateEncodingException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.Exception e
        end local 1 // java.security.cert.X509Certificate cert
        end local 0 // org.bouncycastle.jce.provider.PKIXCertPath this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/bouncycastle/jce/provider/PKIXCertPath;
            0    4     1  cert  Ljava/security/cert/X509Certificate;
            3    4     2     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Exception
    Exceptions:
      throws java.security.cert.CertificateEncodingException
    MethodParameters:
      Name  Flags
      cert  

  private byte[] toDEREncoded(org.bouncycastle.asn1.ASN1Encodable);
    descriptor: (Lorg/bouncycastle/asn1/ASN1Encodable;)[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.bouncycastle.jce.provider.PKIXCertPath this
        start local 1 // org.bouncycastle.asn1.ASN1Encodable obj
         0: .line 362
            aload 1 /* obj */
            ldc "DER"
            invokevirtual org.bouncycastle.asn1.ASN1Encodable.getEncoded:(Ljava/lang/String;)[B
         1: areturn
         2: .line 364
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 2 /* e */
        start local 2 // java.io.IOException e
         3: .line 366
            new java.security.cert.CertificateEncodingException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Exception thrown: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.security.cert.CertificateEncodingException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.io.IOException e
        end local 1 // org.bouncycastle.asn1.ASN1Encodable obj
        end local 0 // org.bouncycastle.jce.provider.PKIXCertPath this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/bouncycastle/jce/provider/PKIXCertPath;
            0    4     1   obj  Lorg/bouncycastle/asn1/ASN1Encodable;
            3    4     2     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
    Exceptions:
      throws java.security.cert.CertificateEncodingException
    MethodParameters:
      Name  Flags
      obj   
}
SourceFile: "PKIXCertPath.java"