public class org.bouncycastle.jce.provider.X509LDAPCertStoreSpi extends java.security.cert.CertStoreSpi
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bouncycastle.jce.provider.X509LDAPCertStoreSpi
  super_class: java.security.cert.CertStoreSpi
{
  private org.bouncycastle.jce.X509LDAPCertStoreParameters params;
    descriptor: Lorg/bouncycastle/jce/X509LDAPCertStoreParameters;
    flags: (0x0002) ACC_PRIVATE

  private static java.lang.String LDAP_PROVIDER;
    descriptor: Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static java.lang.String REFERRALS_IGNORE;
    descriptor: Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static final java.lang.String SEARCH_SECURITY_LEVEL;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "none"

  private static final java.lang.String URL_CONTEXT_PREFIX;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "com.sun.jndi.url"

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 73
            ldc "com.sun.jndi.ldap.LdapCtxFactory"
            putstatic org.bouncycastle.jce.provider.X509LDAPCertStoreSpi.LDAP_PROVIDER:Ljava/lang/String;
         1: .line 78
            ldc "ignore"
            putstatic org.bouncycastle.jce.provider.X509LDAPCertStoreSpi.REFERRALS_IGNORE:Ljava/lang/String;
         2: .line 88
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.security.cert.CertStoreParameters);
    descriptor: (Ljava/security/cert/CertStoreParameters;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.bouncycastle.jce.provider.X509LDAPCertStoreSpi this
        start local 1 // java.security.cert.CertStoreParameters params
         0: .line 58
            aload 0 /* this */
            aload 1 /* params */
            invokespecial java.security.cert.CertStoreSpi.<init>:(Ljava/security/cert/CertStoreParameters;)V
         1: .line 60
            aload 1 /* params */
            instanceof org.bouncycastle.jce.X509LDAPCertStoreParameters
            ifne 7
         2: .line 62
            new java.security.InvalidAlgorithmParameterException
            dup
         3: .line 63
            new java.lang.StringBuilder
            dup
            ldc Lorg/bouncycastle/jce/provider/X509LDAPCertStoreSpi;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ": parameter must be a "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc Lorg/bouncycastle/jce/X509LDAPCertStoreParameters;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " object\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 64
            aload 1 /* params */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 63
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         6: .line 62
            invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 67
      StackMap locals: org.bouncycastle.jce.provider.X509LDAPCertStoreSpi java.security.cert.CertStoreParameters
      StackMap stack:
            aload 0 /* this */
            aload 1 /* params */
            checkcast org.bouncycastle.jce.X509LDAPCertStoreParameters
            putfield org.bouncycastle.jce.provider.X509LDAPCertStoreSpi.params:Lorg/bouncycastle/jce/X509LDAPCertStoreParameters;
         8: .line 68
            return
        end local 1 // java.security.cert.CertStoreParameters params
        end local 0 // org.bouncycastle.jce.provider.X509LDAPCertStoreSpi this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Lorg/bouncycastle/jce/provider/X509LDAPCertStoreSpi;
            0    9     1  params  Ljava/security/cert/CertStoreParameters;
    Exceptions:
      throws java.security.InvalidAlgorithmParameterException
    MethodParameters:
        Name  Flags
      params  

  private javax.naming.directory.DirContext connectLDAP();
    descriptor: ()Ljavax/naming/directory/DirContext;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // org.bouncycastle.jce.provider.X509LDAPCertStoreSpi this
         0: .line 92
            new java.util.Properties
            dup
            invokespecial java.util.Properties.<init>:()V
            astore 1 /* props */
        start local 1 // java.util.Properties props
         1: .line 93
            aload 1 /* props */
            ldc "java.naming.factory.initial"
            getstatic org.bouncycastle.jce.provider.X509LDAPCertStoreSpi.LDAP_PROVIDER:Ljava/lang/String;
            invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 94
            aload 1 /* props */
            ldc "java.naming.batchsize"
            ldc "0"
            invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            pop
         3: .line 96
            aload 1 /* props */
            ldc "java.naming.provider.url"
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509LDAPCertStoreSpi.params:Lorg/bouncycastle/jce/X509LDAPCertStoreParameters;
            invokevirtual org.bouncycastle.jce.X509LDAPCertStoreParameters.getLdapURL:()Ljava/lang/String;
            invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            pop
         4: .line 97
            aload 1 /* props */
            ldc "java.naming.factory.url.pkgs"
            ldc "com.sun.jndi.url"
            invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            pop
         5: .line 98
            aload 1 /* props */
            ldc "java.naming.referral"
            getstatic org.bouncycastle.jce.provider.X509LDAPCertStoreSpi.REFERRALS_IGNORE:Ljava/lang/String;
            invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            pop
         6: .line 99
            aload 1 /* props */
            ldc "java.naming.security.authentication"
         7: .line 100
            ldc "none"
         8: .line 99
            invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            pop
         9: .line 102
            new javax.naming.directory.InitialDirContext
            dup
            aload 1 /* props */
            invokespecial javax.naming.directory.InitialDirContext.<init>:(Ljava/util/Hashtable;)V
            astore 2 /* ctx */
        start local 2 // javax.naming.directory.DirContext ctx
        10: .line 103
            aload 2 /* ctx */
            areturn
        end local 2 // javax.naming.directory.DirContext ctx
        end local 1 // java.util.Properties props
        end local 0 // org.bouncycastle.jce.provider.X509LDAPCertStoreSpi this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0   this  Lorg/bouncycastle/jce/provider/X509LDAPCertStoreSpi;
            1   11     1  props  Ljava/util/Properties;
           10   11     2    ctx  Ljavax/naming/directory/DirContext;
    Exceptions:
      throws javax.naming.NamingException

  private java.lang.String parseDN(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // org.bouncycastle.jce.provider.X509LDAPCertStoreSpi this
        start local 1 // java.lang.String subject
        start local 2 // java.lang.String subjectAttributeName
         0: .line 108
            aload 1 /* subject */
            astore 3 /* temp */
        start local 3 // java.lang.String temp
         1: .line 109
            aload 3 /* temp */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
         2: .line 110
            aload 2 /* subjectAttributeName */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
         3: .line 109
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            istore 4 /* begin */
        start local 4 // int begin
         4: .line 111
            aload 3 /* temp */
            iload 4 /* begin */
            aload 2 /* subjectAttributeName */
            invokevirtual java.lang.String.length:()I
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 3 /* temp */
         5: .line 112
            aload 3 /* temp */
            bipush 44
            invokevirtual java.lang.String.indexOf:(I)I
            istore 5 /* end */
        start local 5 // int end
         6: .line 113
            iload 5 /* end */
            iconst_m1
            if_icmpne 12
         7: .line 115
            aload 3 /* temp */
            invokevirtual java.lang.String.length:()I
            istore 5 /* end */
         8: .line 117
            goto 12
         9: .line 119
      StackMap locals: java.lang.String int int
      StackMap stack:
            aload 3 /* temp */
            bipush 44
            iload 5 /* end */
            iconst_1
            iadd
            invokevirtual java.lang.String.indexOf:(II)I
            istore 5 /* end */
        10: .line 120
            iload 5 /* end */
            iconst_m1
            if_icmpne 12
        11: .line 122
            aload 3 /* temp */
            invokevirtual java.lang.String.length:()I
            istore 5 /* end */
        12: .line 117
      StackMap locals:
      StackMap stack:
            aload 3 /* temp */
            iload 5 /* end */
            iconst_1
            isub
            invokevirtual java.lang.String.charAt:(I)C
            bipush 92
            if_icmpeq 9
        13: .line 125
            aload 3 /* temp */
            iconst_0
            iload 5 /* end */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 3 /* temp */
        14: .line 126
            aload 3 /* temp */
            bipush 61
            invokevirtual java.lang.String.indexOf:(I)I
            istore 4 /* begin */
        15: .line 127
            aload 3 /* temp */
            iload 4 /* begin */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 3 /* temp */
        16: .line 128
            aload 3 /* temp */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 32
            if_icmpne 18
        17: .line 130
            aload 3 /* temp */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 3 /* temp */
        18: .line 132
      StackMap locals:
      StackMap stack:
            aload 3 /* temp */
            ldc "\""
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 20
        19: .line 134
            aload 3 /* temp */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 3 /* temp */
        20: .line 136
      StackMap locals:
      StackMap stack:
            aload 3 /* temp */
            ldc "\""
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 22
        21: .line 138
            aload 3 /* temp */
            iconst_0
            aload 3 /* temp */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 3 /* temp */
        22: .line 140
      StackMap locals:
      StackMap stack:
            aload 3 /* temp */
            areturn
        end local 5 // int end
        end local 4 // int begin
        end local 3 // java.lang.String temp
        end local 2 // java.lang.String subjectAttributeName
        end local 1 // java.lang.String subject
        end local 0 // org.bouncycastle.jce.provider.X509LDAPCertStoreSpi this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   23     0                  this  Lorg/bouncycastle/jce/provider/X509LDAPCertStoreSpi;
            0   23     1               subject  Ljava/lang/String;
            0   23     2  subjectAttributeName  Ljava/lang/String;
            1   23     3                  temp  Ljava/lang/String;
            4   23     4                 begin  I
            6   23     5                   end  I
    MethodParameters:
                      Name  Flags
      subject               
      subjectAttributeName  

  public java.util.Collection engineGetCertificates(java.security.cert.CertSelector);
    descriptor: (Ljava/security/cert/CertSelector;)Ljava/util/Collection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=12, args_size=2
        start local 0 // org.bouncycastle.jce.provider.X509LDAPCertStoreSpi this
        start local 1 // java.security.cert.CertSelector selector
         0: .line 146
            aload 1 /* selector */
            instanceof java.security.cert.X509CertSelector
            ifne 2
         1: .line 148
            new java.security.cert.CertStoreException
            dup
            ldc "selector is not a X509CertSelector"
            invokespecial java.security.cert.CertStoreException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 150
      StackMap locals:
      StackMap stack:
            aload 1 /* selector */
            checkcast java.security.cert.X509CertSelector
            astore 2 /* xselector */
        start local 2 // java.security.cert.X509CertSelector xselector
         3: .line 152
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 3 /* certSet */
        start local 3 // java.util.Set certSet
         4: .line 154
            aload 0 /* this */
            aload 2 /* xselector */
            invokevirtual org.bouncycastle.jce.provider.X509LDAPCertStoreSpi.getEndCertificates:(Ljava/security/cert/X509CertSelector;)Ljava/util/Set;
            astore 4 /* set */
        start local 4 // java.util.Set set
         5: .line 155
            aload 4 /* set */
            aload 0 /* this */
            aload 2 /* xselector */
            invokevirtual org.bouncycastle.jce.provider.X509LDAPCertStoreSpi.getCACertificates:(Ljava/security/cert/X509CertSelector;)Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
         6: .line 156
            aload 4 /* set */
            aload 0 /* this */
            aload 2 /* xselector */
            invokevirtual org.bouncycastle.jce.provider.X509LDAPCertStoreSpi.getCrossCertificates:(Ljava/security/cert/X509CertSelector;)Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
         7: .line 158
            aload 4 /* set */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5 /* it */
        start local 5 // java.util.Iterator it
         8: .line 162
            ldc "X.509"
         9: .line 163
            getstatic org.bouncycastle.jce.provider.BouncyCastleProvider.PROVIDER_NAME:Ljava/lang/String;
        10: .line 162
            invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
            astore 6 /* cf */
        start local 6 // java.security.cert.CertificateFactory cf
        11: .line 164
            goto 40
        12: .line 166
      StackMap locals: org.bouncycastle.jce.provider.X509LDAPCertStoreSpi java.security.cert.CertSelector java.security.cert.X509CertSelector java.util.Set java.util.Set java.util.Iterator java.security.cert.CertificateFactory
      StackMap stack:
            aload 5 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast byte[]
            astore 7 /* bytes */
        start local 7 // byte[] bytes
        13: .line 167
            aload 7 /* bytes */
            ifnull 40
            aload 7 /* bytes */
            arraylength
            ifne 15
        14: .line 169
            goto 40
        15: .line 172
      StackMap locals: byte[]
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 8 /* bytesList */
        start local 8 // java.util.List bytesList
        16: .line 173
            aload 8 /* bytesList */
            aload 7 /* bytes */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        17: .line 178
            new org.bouncycastle.asn1.ASN1InputStream
            dup
            aload 7 /* bytes */
            invokespecial org.bouncycastle.asn1.ASN1InputStream.<init>:([B)V
        18: .line 179
            invokevirtual org.bouncycastle.asn1.ASN1InputStream.readObject:()Lorg/bouncycastle/asn1/DERObject;
        19: .line 178
            invokestatic org.bouncycastle.asn1.x509.CertificatePair.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/x509/CertificatePair;
        20: .line 177
            astore 9 /* pair */
        start local 9 // org.bouncycastle.asn1.x509.CertificatePair pair
        21: .line 180
            aload 8 /* bytesList */
            invokeinterface java.util.List.clear:()V
        22: .line 181
            aload 9 /* pair */
            invokevirtual org.bouncycastle.asn1.x509.CertificatePair.getForward:()Lorg/bouncycastle/asn1/x509/X509CertificateStructure;
            ifnull 24
        23: .line 183
            aload 8 /* bytesList */
            aload 9 /* pair */
            invokevirtual org.bouncycastle.asn1.x509.CertificatePair.getForward:()Lorg/bouncycastle/asn1/x509/X509CertificateStructure;
            invokevirtual org.bouncycastle.asn1.x509.X509CertificateStructure.getEncoded:()[B
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        24: .line 185
      StackMap locals: java.util.List org.bouncycastle.asn1.x509.CertificatePair
      StackMap stack:
            aload 9 /* pair */
            invokevirtual org.bouncycastle.asn1.x509.CertificatePair.getReverse:()Lorg/bouncycastle/asn1/x509/X509CertificateStructure;
            ifnull 29
        25: .line 187
            aload 8 /* bytesList */
            aload 9 /* pair */
            invokevirtual org.bouncycastle.asn1.x509.CertificatePair.getReverse:()Lorg/bouncycastle/asn1/x509/X509CertificateStructure;
            invokevirtual org.bouncycastle.asn1.x509.X509CertificateStructure.getEncoded:()[B
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 9 // org.bouncycastle.asn1.x509.CertificatePair pair
        26: .line 189
            goto 29
        27: .line 190
      StackMap locals: org.bouncycastle.jce.provider.X509LDAPCertStoreSpi java.security.cert.CertSelector java.security.cert.X509CertSelector java.util.Set java.util.Set java.util.Iterator java.security.cert.CertificateFactory byte[] java.util.List
      StackMap stack: java.io.IOException
            pop
            goto 29
        28: .line 194
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
            pop
        29: .line 198
      StackMap locals:
      StackMap stack:
            aload 8 /* bytesList */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9 /* it2 */
        start local 9 // java.util.Iterator it2
        30: goto 39
        31: .line 200
      StackMap locals: java.util.Iterator
      StackMap stack:
            new java.io.ByteArrayInputStream
            dup
        32: .line 201
            aload 9 /* it2 */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast byte[]
        33: .line 200
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            astore 10 /* bIn */
        start local 10 // java.io.ByteArrayInputStream bIn
        34: .line 204
            aload 6 /* cf */
            aload 10 /* bIn */
            invokevirtual java.security.cert.CertificateFactory.generateCertificate:(Ljava/io/InputStream;)Ljava/security/cert/Certificate;
            astore 11 /* cert */
        start local 11 // java.security.cert.Certificate cert
        35: .line 207
            aload 2 /* xselector */
            aload 11 /* cert */
            invokevirtual java.security.cert.X509CertSelector.match:(Ljava/security/cert/Certificate;)Z
            ifeq 39
        36: .line 209
            aload 3 /* certSet */
            aload 11 /* cert */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 11 // java.security.cert.Certificate cert
        37: .line 211
            goto 39
        38: .line 212
      StackMap locals: org.bouncycastle.jce.provider.X509LDAPCertStoreSpi java.security.cert.CertSelector java.security.cert.X509CertSelector java.util.Set java.util.Set java.util.Iterator java.security.cert.CertificateFactory byte[] java.util.List java.util.Iterator java.io.ByteArrayInputStream
      StackMap stack: java.lang.Exception
            pop
        end local 10 // java.io.ByteArrayInputStream bIn
        39: .line 198
      StackMap locals:
      StackMap stack:
            aload 9 /* it2 */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 31
        end local 9 // java.util.Iterator it2
        end local 8 // java.util.List bytesList
        end local 7 // byte[] bytes
        40: .line 164
      StackMap locals:
      StackMap stack:
            aload 5 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        end local 6 // java.security.cert.CertificateFactory cf
        41: .line 218
            goto 46
        42: .line 219
      StackMap locals: org.bouncycastle.jce.provider.X509LDAPCertStoreSpi java.security.cert.CertSelector java.security.cert.X509CertSelector java.util.Set java.util.Set java.util.Iterator
      StackMap stack: java.lang.Exception
            astore 6 /* e */
        start local 6 // java.lang.Exception e
        43: .line 221
            new java.security.cert.CertStoreException
            dup
        44: .line 222
            new java.lang.StringBuilder
            dup
            ldc "certificate cannot be constructed from LDAP result: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        45: .line 221
            invokespecial java.security.cert.CertStoreException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // java.lang.Exception e
        46: .line 225
      StackMap locals:
      StackMap stack:
            aload 3 /* certSet */
            areturn
        end local 5 // java.util.Iterator it
        end local 4 // java.util.Set set
        end local 3 // java.util.Set certSet
        end local 2 // java.security.cert.X509CertSelector xselector
        end local 1 // java.security.cert.CertSelector selector
        end local 0 // org.bouncycastle.jce.provider.X509LDAPCertStoreSpi this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   47     0       this  Lorg/bouncycastle/jce/provider/X509LDAPCertStoreSpi;
            0   47     1   selector  Ljava/security/cert/CertSelector;
            3   47     2  xselector  Ljava/security/cert/X509CertSelector;
            4   47     3    certSet  Ljava/util/Set;
            5   47     4        set  Ljava/util/Set;
            8   47     5         it  Ljava/util/Iterator;
           11   41     6         cf  Ljava/security/cert/CertificateFactory;
           13   40     7      bytes  [B
           16   40     8  bytesList  Ljava/util/List;
           21   26     9       pair  Lorg/bouncycastle/asn1/x509/CertificatePair;
           30   40     9        it2  Ljava/util/Iterator;
           34   39    10        bIn  Ljava/io/ByteArrayInputStream;
           35   37    11       cert  Ljava/security/cert/Certificate;
           43   46     6          e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          17    26      27  Class java.io.IOException
          17    26      28  Class java.lang.IllegalArgumentException
          34    37      38  Class java.lang.Exception
           8    41      42  Class java.lang.Exception
    Exceptions:
      throws java.security.cert.CertStoreException
    MethodParameters:
          Name  Flags
      selector  

  private java.util.Set certSubjectSerialSearch(java.security.cert.X509CertSelector, java.lang.String[], java.lang.String, java.lang.String);
    descriptor: (Ljava/security/cert/X509CertSelector;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=9, args_size=5
        start local 0 // org.bouncycastle.jce.provider.X509LDAPCertStoreSpi this
        start local 1 // java.security.cert.X509CertSelector xselector
        start local 2 // java.lang.String[] attrs
        start local 3 // java.lang.String attrName
        start local 4 // java.lang.String subjectAttributeName
         0: .line 232
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 5 /* set */
        start local 5 // java.util.Set set
         1: .line 235
            aload 1 /* xselector */
            invokevirtual java.security.cert.X509CertSelector.getSubjectAsBytes:()[B
            ifnonnull 4
         2: .line 236
            aload 1 /* xselector */
            invokevirtual java.security.cert.X509CertSelector.getSubjectAsString:()Ljava/lang/String;
            ifnonnull 4
         3: .line 237
            aload 1 /* xselector */
            invokevirtual java.security.cert.X509CertSelector.getCertificate:()Ljava/security/cert/X509Certificate;
            ifnull 30
         4: .line 239
      StackMap locals: java.util.Set
      StackMap stack:
            aconst_null
            astore 6 /* subject */
        start local 6 // java.lang.String subject
         5: .line 240
            aconst_null
            astore 7 /* serial */
        start local 7 // java.lang.String serial
         6: .line 241
            aload 1 /* xselector */
            invokevirtual java.security.cert.X509CertSelector.getCertificate:()Ljava/security/cert/X509Certificate;
            ifnull 14
         7: .line 243
            aload 1 /* xselector */
            invokevirtual java.security.cert.X509CertSelector.getCertificate:()Ljava/security/cert/X509Certificate;
         8: .line 244
            invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
            ldc "RFC1779"
            invokevirtual javax.security.auth.x500.X500Principal.getName:(Ljava/lang/String;)Ljava/lang/String;
         9: .line 243
            astore 6 /* subject */
        10: .line 245
            aload 1 /* xselector */
            invokevirtual java.security.cert.X509CertSelector.getCertificate:()Ljava/security/cert/X509Certificate;
            invokevirtual java.security.cert.X509Certificate.getSerialNumber:()Ljava/math/BigInteger;
        11: .line 246
            invokevirtual java.math.BigInteger.toString:()Ljava/lang/String;
        12: .line 245
            astore 7 /* serial */
        13: .line 247
            goto 22
        14: .line 250
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 1 /* xselector */
            invokevirtual java.security.cert.X509CertSelector.getSubjectAsBytes:()[B
            ifnull 21
        15: .line 252
            new javax.security.auth.x500.X500Principal
            dup
            aload 1 /* xselector */
        16: .line 253
            invokevirtual java.security.cert.X509CertSelector.getSubjectAsBytes:()[B
        17: .line 252
            invokespecial javax.security.auth.x500.X500Principal.<init>:([B)V
        18: .line 253
            ldc "RFC1779"
            invokevirtual javax.security.auth.x500.X500Principal.getName:(Ljava/lang/String;)Ljava/lang/String;
        19: .line 252
            astore 6 /* subject */
        20: .line 254
            goto 22
        21: .line 257
      StackMap locals:
      StackMap stack:
            aload 1 /* xselector */
            invokevirtual java.security.cert.X509CertSelector.getSubjectAsString:()Ljava/lang/String;
            astore 6 /* subject */
        22: .line 260
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* subject */
            aload 4 /* subjectAttributeName */
            invokevirtual org.bouncycastle.jce.provider.X509LDAPCertStoreSpi.parseDN:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 8 /* attrValue */
        start local 8 // java.lang.String attrValue
        23: .line 261
            aload 5 /* set */
            aload 0 /* this */
            aload 3 /* attrName */
            new java.lang.StringBuilder
            dup
            ldc "*"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* attrValue */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "*"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* attrs */
            invokevirtual org.bouncycastle.jce.provider.X509LDAPCertStoreSpi.search:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        24: .line 262
            aload 7 /* serial */
            ifnull 34
        25: .line 263
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509LDAPCertStoreSpi.params:Lorg/bouncycastle/jce/X509LDAPCertStoreParameters;
            invokevirtual org.bouncycastle.jce.X509LDAPCertStoreParameters.getSearchForSerialNumberIn:()Ljava/lang/String;
            ifnull 34
        26: .line 265
            aload 7 /* serial */
            astore 8 /* attrValue */
        27: .line 266
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509LDAPCertStoreSpi.params:Lorg/bouncycastle/jce/X509LDAPCertStoreParameters;
            invokevirtual org.bouncycastle.jce.X509LDAPCertStoreParameters.getSearchForSerialNumberIn:()Ljava/lang/String;
            astore 3 /* attrName */
        28: .line 267
            aload 5 /* set */
            aload 0 /* this */
            aload 3 /* attrName */
            new java.lang.StringBuilder
            dup
            ldc "*"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* attrValue */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "*"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* attrs */
            invokevirtual org.bouncycastle.jce.provider.X509LDAPCertStoreSpi.search:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        end local 8 // java.lang.String attrValue
        end local 7 // java.lang.String serial
        end local 6 // java.lang.String subject
        29: .line 269
            goto 34
        30: .line 272
      StackMap locals:
      StackMap stack:
            aload 5 /* set */
            aload 0 /* this */
            aload 3 /* attrName */
            ldc "*"
            aload 2 /* attrs */
            invokevirtual org.bouncycastle.jce.provider.X509LDAPCertStoreSpi.search:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        31: .line 274
            goto 34
        32: .line 275
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 6 /* e */
        start local 6 // java.io.IOException e
        33: .line 277
            new java.security.cert.CertStoreException
            dup
            new java.lang.StringBuilder
            dup
            ldc "exception processing selector: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.security.cert.CertStoreException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // java.io.IOException e
        34: .line 280
      StackMap locals:
      StackMap stack:
            aload 5 /* set */
            areturn
        end local 5 // java.util.Set set
        end local 4 // java.lang.String subjectAttributeName
        end local 3 // java.lang.String attrName
        end local 2 // java.lang.String[] attrs
        end local 1 // java.security.cert.X509CertSelector xselector
        end local 0 // org.bouncycastle.jce.provider.X509LDAPCertStoreSpi this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   35     0                  this  Lorg/bouncycastle/jce/provider/X509LDAPCertStoreSpi;
            0   35     1             xselector  Ljava/security/cert/X509CertSelector;
            0   35     2                 attrs  [Ljava/lang/String;
            0   35     3              attrName  Ljava/lang/String;
            0   35     4  subjectAttributeName  Ljava/lang/String;
            1   35     5                   set  Ljava/util/Set;
            5   29     6               subject  Ljava/lang/String;
            6   29     7                serial  Ljava/lang/String;
           23   29     8             attrValue  Ljava/lang/String;
           33   34     6                     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           1    31      32  Class java.io.IOException
    Exceptions:
      throws java.security.cert.CertStoreException
    MethodParameters:
                      Name  Flags
      xselector             
      attrs                 
      attrName              
      subjectAttributeName  

  private java.util.Set getEndCertificates(java.security.cert.X509CertSelector);
    descriptor: (Ljava/security/cert/X509CertSelector;)Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // org.bouncycastle.jce.provider.X509LDAPCertStoreSpi this
        start local 1 // java.security.cert.X509CertSelector xselector
         0: .line 286
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509LDAPCertStoreSpi.params:Lorg/bouncycastle/jce/X509LDAPCertStoreParameters;
            invokevirtual org.bouncycastle.jce.X509LDAPCertStoreParameters.getUserCertificateAttribute:()Ljava/lang/String;
            aastore
            astore 2 /* attrs */
        start local 2 // java.lang.String[] attrs
         1: .line 287
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509LDAPCertStoreSpi.params:Lorg/bouncycastle/jce/X509LDAPCertStoreParameters;
            invokevirtual org.bouncycastle.jce.X509LDAPCertStoreParameters.getLdapUserCertificateAttributeName:()Ljava/lang/String;
            astore 3 /* attrName */
        start local 3 // java.lang.String attrName
         2: .line 288
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509LDAPCertStoreSpi.params:Lorg/bouncycastle/jce/X509LDAPCertStoreParameters;
            invokevirtual org.bouncycastle.jce.X509LDAPCertStoreParameters.getUserCertificateSubjectAttributeName:()Ljava/lang/String;
            astore 4 /* subjectAttributeName */
        start local 4 // java.lang.String subjectAttributeName
         3: .line 290
            aload 0 /* this */
            aload 1 /* xselector */
            aload 2 /* attrs */
            aload 3 /* attrName */
         4: .line 291
            aload 4 /* subjectAttributeName */
         5: .line 290
            invokevirtual org.bouncycastle.jce.provider.X509LDAPCertStoreSpi.certSubjectSerialSearch:(Ljava/security/cert/X509CertSelector;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/util/Set;
            astore 5 /* set */
        start local 5 // java.util.Set set
         6: .line 292
            aload 5 /* set */
            areturn
        end local 5 // java.util.Set set
        end local 4 // java.lang.String subjectAttributeName
        end local 3 // java.lang.String attrName
        end local 2 // java.lang.String[] attrs
        end local 1 // java.security.cert.X509CertSelector xselector
        end local 0 // org.bouncycastle.jce.provider.X509LDAPCertStoreSpi this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    7     0                  this  Lorg/bouncycastle/jce/provider/X509LDAPCertStoreSpi;
            0    7     1             xselector  Ljava/security/cert/X509CertSelector;
            1    7     2                 attrs  [Ljava/lang/String;
            2    7     3              attrName  Ljava/lang/String;
            3    7     4  subjectAttributeName  Ljava/lang/String;
            6    7     5                   set  Ljava/util/Set;
    Exceptions:
      throws java.security.cert.CertStoreException
    MethodParameters:
           Name  Flags
      xselector  

  private java.util.Set getCACertificates(java.security.cert.X509CertSelector);
    descriptor: (Ljava/security/cert/X509CertSelector;)Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // org.bouncycastle.jce.provider.X509LDAPCertStoreSpi this
        start local 1 // java.security.cert.X509CertSelector xselector
         0: .line 298
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509LDAPCertStoreSpi.params:Lorg/bouncycastle/jce/X509LDAPCertStoreParameters;
            invokevirtual org.bouncycastle.jce.X509LDAPCertStoreParameters.getCACertificateAttribute:()Ljava/lang/String;
            aastore
            astore 2 /* attrs */
        start local 2 // java.lang.String[] attrs
         1: .line 299
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509LDAPCertStoreSpi.params:Lorg/bouncycastle/jce/X509LDAPCertStoreParameters;
            invokevirtual org.bouncycastle.jce.X509LDAPCertStoreParameters.getLdapCACertificateAttributeName:()Ljava/lang/String;
            astore 3 /* attrName */
        start local 3 // java.lang.String attrName
         2: .line 300
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509LDAPCertStoreSpi.params:Lorg/bouncycastle/jce/X509LDAPCertStoreParameters;
         3: .line 301
            invokevirtual org.bouncycastle.jce.X509LDAPCertStoreParameters.getCACertificateSubjectAttributeName:()Ljava/lang/String;
         4: .line 300
            astore 4 /* subjectAttributeName */
        start local 4 // java.lang.String subjectAttributeName
         5: .line 302
            aload 0 /* this */
            aload 1 /* xselector */
            aload 2 /* attrs */
            aload 3 /* attrName */
         6: .line 303
            aload 4 /* subjectAttributeName */
         7: .line 302
            invokevirtual org.bouncycastle.jce.provider.X509LDAPCertStoreSpi.certSubjectSerialSearch:(Ljava/security/cert/X509CertSelector;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/util/Set;
            astore 5 /* set */
        start local 5 // java.util.Set set
         8: .line 305
            aload 5 /* set */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 10
         9: .line 307
            aload 5 /* set */
            aload 0 /* this */
            aconst_null
            ldc "*"
            aload 2 /* attrs */
            invokevirtual org.bouncycastle.jce.provider.X509LDAPCertStoreSpi.search:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        10: .line 310
      StackMap locals: org.bouncycastle.jce.provider.X509LDAPCertStoreSpi java.security.cert.X509CertSelector java.lang.String[] java.lang.String java.lang.String java.util.Set
      StackMap stack:
            aload 5 /* set */
            areturn
        end local 5 // java.util.Set set
        end local 4 // java.lang.String subjectAttributeName
        end local 3 // java.lang.String attrName
        end local 2 // java.lang.String[] attrs
        end local 1 // java.security.cert.X509CertSelector xselector
        end local 0 // org.bouncycastle.jce.provider.X509LDAPCertStoreSpi this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   11     0                  this  Lorg/bouncycastle/jce/provider/X509LDAPCertStoreSpi;
            0   11     1             xselector  Ljava/security/cert/X509CertSelector;
            1   11     2                 attrs  [Ljava/lang/String;
            2   11     3              attrName  Ljava/lang/String;
            5   11     4  subjectAttributeName  Ljava/lang/String;
            8   11     5                   set  Ljava/util/Set;
    Exceptions:
      throws java.security.cert.CertStoreException
    MethodParameters:
           Name  Flags
      xselector  

  private java.util.Set getCrossCertificates(java.security.cert.X509CertSelector);
    descriptor: (Ljava/security/cert/X509CertSelector;)Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // org.bouncycastle.jce.provider.X509LDAPCertStoreSpi this
        start local 1 // java.security.cert.X509CertSelector xselector
         0: .line 316
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509LDAPCertStoreSpi.params:Lorg/bouncycastle/jce/X509LDAPCertStoreParameters;
            invokevirtual org.bouncycastle.jce.X509LDAPCertStoreParameters.getCrossCertificateAttribute:()Ljava/lang/String;
            aastore
            astore 2 /* attrs */
        start local 2 // java.lang.String[] attrs
         1: .line 317
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509LDAPCertStoreSpi.params:Lorg/bouncycastle/jce/X509LDAPCertStoreParameters;
            invokevirtual org.bouncycastle.jce.X509LDAPCertStoreParameters.getLdapCrossCertificateAttributeName:()Ljava/lang/String;
            astore 3 /* attrName */
        start local 3 // java.lang.String attrName
         2: .line 318
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509LDAPCertStoreSpi.params:Lorg/bouncycastle/jce/X509LDAPCertStoreParameters;
         3: .line 319
            invokevirtual org.bouncycastle.jce.X509LDAPCertStoreParameters.getCrossCertificateSubjectAttributeName:()Ljava/lang/String;
         4: .line 318
            astore 4 /* subjectAttributeName */
        start local 4 // java.lang.String subjectAttributeName
         5: .line 320
            aload 0 /* this */
            aload 1 /* xselector */
            aload 2 /* attrs */
            aload 3 /* attrName */
         6: .line 321
            aload 4 /* subjectAttributeName */
         7: .line 320
            invokevirtual org.bouncycastle.jce.provider.X509LDAPCertStoreSpi.certSubjectSerialSearch:(Ljava/security/cert/X509CertSelector;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/util/Set;
            astore 5 /* set */
        start local 5 // java.util.Set set
         8: .line 323
            aload 5 /* set */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 10
         9: .line 325
            aload 5 /* set */
            aload 0 /* this */
            aconst_null
            ldc "*"
            aload 2 /* attrs */
            invokevirtual org.bouncycastle.jce.provider.X509LDAPCertStoreSpi.search:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        10: .line 328
      StackMap locals: org.bouncycastle.jce.provider.X509LDAPCertStoreSpi java.security.cert.X509CertSelector java.lang.String[] java.lang.String java.lang.String java.util.Set
      StackMap stack:
            aload 5 /* set */
            areturn
        end local 5 // java.util.Set set
        end local 4 // java.lang.String subjectAttributeName
        end local 3 // java.lang.String attrName
        end local 2 // java.lang.String[] attrs
        end local 1 // java.security.cert.X509CertSelector xselector
        end local 0 // org.bouncycastle.jce.provider.X509LDAPCertStoreSpi this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   11     0                  this  Lorg/bouncycastle/jce/provider/X509LDAPCertStoreSpi;
            0   11     1             xselector  Ljava/security/cert/X509CertSelector;
            1   11     2                 attrs  [Ljava/lang/String;
            2   11     3              attrName  Ljava/lang/String;
            5   11     4  subjectAttributeName  Ljava/lang/String;
            8   11     5                   set  Ljava/util/Set;
    Exceptions:
      throws java.security.cert.CertStoreException
    MethodParameters:
           Name  Flags
      xselector  

  public java.util.Collection engineGetCRLs(java.security.cert.CRLSelector);
    descriptor: (Ljava/security/cert/CRLSelector;)Ljava/util/Collection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=11, args_size=2
        start local 0 // org.bouncycastle.jce.provider.X509LDAPCertStoreSpi this
        start local 1 // java.security.cert.CRLSelector selector
         0: .line 334
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509LDAPCertStoreSpi.params:Lorg/bouncycastle/jce/X509LDAPCertStoreParameters;
            invokevirtual org.bouncycastle.jce.X509LDAPCertStoreParameters.getCertificateRevocationListAttribute:()Ljava/lang/String;
            aastore
            astore 2 /* attrs */
        start local 2 // java.lang.String[] attrs
         1: .line 335
            aload 1 /* selector */
            instanceof java.security.cert.X509CRLSelector
            ifne 3
         2: .line 337
            new java.security.cert.CertStoreException
            dup
            ldc "selector is not a X509CRLSelector"
            invokespecial java.security.cert.CertStoreException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 339
      StackMap locals: java.lang.String[]
      StackMap stack:
            aload 1 /* selector */
            checkcast java.security.cert.X509CRLSelector
            astore 3 /* xselector */
        start local 3 // java.security.cert.X509CRLSelector xselector
         4: .line 341
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 4 /* crlSet */
        start local 4 // java.util.Set crlSet
         5: .line 343
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509LDAPCertStoreSpi.params:Lorg/bouncycastle/jce/X509LDAPCertStoreParameters;
            invokevirtual org.bouncycastle.jce.X509LDAPCertStoreParameters.getLdapCertificateRevocationListAttributeName:()Ljava/lang/String;
            astore 5 /* attrName */
        start local 5 // java.lang.String attrName
         6: .line 344
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 6 /* set */
        start local 6 // java.util.Set set
         7: .line 346
            aload 3 /* xselector */
            invokevirtual java.security.cert.X509CRLSelector.getIssuerNames:()Ljava/util/Collection;
            ifnull 28
         8: .line 348
            aload 3 /* xselector */
            invokevirtual java.security.cert.X509CRLSelector.getIssuerNames:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 7 /* it */
        start local 7 // java.util.Iterator it
         9: goto 25
        10: .line 351
      StackMap locals: org.bouncycastle.jce.provider.X509LDAPCertStoreSpi java.security.cert.CRLSelector java.lang.String[] java.security.cert.X509CRLSelector java.util.Set java.lang.String java.util.Set java.util.Iterator
      StackMap stack:
            aload 7 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 8 /* o */
        start local 8 // java.lang.Object o
        11: .line 352
            aconst_null
            astore 9 /* attrValue */
        start local 9 // java.lang.String attrValue
        12: .line 353
            aload 8 /* o */
            instanceof java.lang.String
            ifeq 18
        13: .line 355
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509LDAPCertStoreSpi.params:Lorg/bouncycastle/jce/X509LDAPCertStoreParameters;
        14: .line 356
            invokevirtual org.bouncycastle.jce.X509LDAPCertStoreParameters.getCertificateRevocationListIssuerAttributeName:()Ljava/lang/String;
        15: .line 355
            astore 10 /* issuerAttributeName */
        start local 10 // java.lang.String issuerAttributeName
        16: .line 357
            aload 0 /* this */
            aload 8 /* o */
            checkcast java.lang.String
            aload 10 /* issuerAttributeName */
            invokevirtual org.bouncycastle.jce.provider.X509LDAPCertStoreSpi.parseDN:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 9 /* attrValue */
        end local 10 // java.lang.String issuerAttributeName
        17: .line 358
            goto 24
        18: .line 361
      StackMap locals: java.lang.Object java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509LDAPCertStoreSpi.params:Lorg/bouncycastle/jce/X509LDAPCertStoreParameters;
        19: .line 362
            invokevirtual org.bouncycastle.jce.X509LDAPCertStoreParameters.getCertificateRevocationListIssuerAttributeName:()Ljava/lang/String;
        20: .line 361
            astore 10 /* issuerAttributeName */
        start local 10 // java.lang.String issuerAttributeName
        21: .line 363
            aload 0 /* this */
            new javax.security.auth.x500.X500Principal
            dup
            aload 8 /* o */
            checkcast byte[]
            invokespecial javax.security.auth.x500.X500Principal.<init>:([B)V
        22: .line 364
            ldc "RFC1779"
            invokevirtual javax.security.auth.x500.X500Principal.getName:(Ljava/lang/String;)Ljava/lang/String;
            aload 10 /* issuerAttributeName */
        23: .line 363
            invokevirtual org.bouncycastle.jce.provider.X509LDAPCertStoreSpi.parseDN:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 9 /* attrValue */
        end local 10 // java.lang.String issuerAttributeName
        24: .line 366
      StackMap locals:
      StackMap stack:
            aload 6 /* set */
            aload 0 /* this */
            aload 5 /* attrName */
            new java.lang.StringBuilder
            dup
            ldc "*"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* attrValue */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "*"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* attrs */
            invokevirtual org.bouncycastle.jce.provider.X509LDAPCertStoreSpi.search:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        end local 9 // java.lang.String attrValue
        end local 8 // java.lang.Object o
        25: .line 348
      StackMap locals:
      StackMap stack:
            aload 7 /* it */
        26: .line 349
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        end local 7 // java.util.Iterator it
        27: .line 368
            goto 29
        28: .line 371
      StackMap locals:
      StackMap stack:
            aload 6 /* set */
            aload 0 /* this */
            aload 5 /* attrName */
            ldc "*"
            aload 2 /* attrs */
            invokevirtual org.bouncycastle.jce.provider.X509LDAPCertStoreSpi.search:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        29: .line 373
      StackMap locals:
      StackMap stack:
            aload 6 /* set */
            aload 0 /* this */
            aconst_null
            ldc "*"
            aload 2 /* attrs */
            invokevirtual org.bouncycastle.jce.provider.X509LDAPCertStoreSpi.search:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        30: .line 374
            aload 6 /* set */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7 /* it */
        start local 7 // java.util.Iterator it
        31: .line 378
            ldc "X.509"
        32: .line 379
            getstatic org.bouncycastle.jce.provider.BouncyCastleProvider.PROVIDER_NAME:Ljava/lang/String;
        33: .line 378
            invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
            astore 8 /* cf */
        start local 8 // java.security.cert.CertificateFactory cf
        34: .line 380
            goto 40
        35: .line 382
      StackMap locals: java.util.Iterator java.security.cert.CertificateFactory
      StackMap stack:
            aload 8 /* cf */
            new java.io.ByteArrayInputStream
            dup
            aload 7 /* it */
        36: .line 383
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast byte[]
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
        37: .line 382
            invokevirtual java.security.cert.CertificateFactory.generateCRL:(Ljava/io/InputStream;)Ljava/security/cert/CRL;
            astore 9 /* crl */
        start local 9 // java.security.cert.CRL crl
        38: .line 384
            aload 3 /* xselector */
            aload 9 /* crl */
            invokevirtual java.security.cert.X509CRLSelector.match:(Ljava/security/cert/CRL;)Z
            ifeq 40
        39: .line 386
            aload 4 /* crlSet */
            aload 9 /* crl */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 9 // java.security.cert.CRL crl
        40: .line 380
      StackMap locals:
      StackMap stack:
            aload 7 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 35
        end local 8 // java.security.cert.CertificateFactory cf
        41: .line 389
            goto 46
        42: .line 390
      StackMap locals: org.bouncycastle.jce.provider.X509LDAPCertStoreSpi java.security.cert.CRLSelector java.lang.String[] java.security.cert.X509CRLSelector java.util.Set java.lang.String java.util.Set java.util.Iterator
      StackMap stack: java.lang.Exception
            astore 8 /* e */
        start local 8 // java.lang.Exception e
        43: .line 392
            new java.security.cert.CertStoreException
            dup
        44: .line 393
            new java.lang.StringBuilder
            dup
            ldc "CRL cannot be constructed from LDAP result "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        45: .line 392
            invokespecial java.security.cert.CertStoreException.<init>:(Ljava/lang/String;)V
            athrow
        end local 8 // java.lang.Exception e
        46: .line 396
      StackMap locals:
      StackMap stack:
            aload 4 /* crlSet */
            areturn
        end local 7 // java.util.Iterator it
        end local 6 // java.util.Set set
        end local 5 // java.lang.String attrName
        end local 4 // java.util.Set crlSet
        end local 3 // java.security.cert.X509CRLSelector xselector
        end local 2 // java.lang.String[] attrs
        end local 1 // java.security.cert.CRLSelector selector
        end local 0 // org.bouncycastle.jce.provider.X509LDAPCertStoreSpi this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   47     0                 this  Lorg/bouncycastle/jce/provider/X509LDAPCertStoreSpi;
            0   47     1             selector  Ljava/security/cert/CRLSelector;
            1   47     2                attrs  [Ljava/lang/String;
            4   47     3            xselector  Ljava/security/cert/X509CRLSelector;
            5   47     4               crlSet  Ljava/util/Set;
            6   47     5             attrName  Ljava/lang/String;
            7   47     6                  set  Ljava/util/Set;
            9   27     7                   it  Ljava/util/Iterator;
           11   25     8                    o  Ljava/lang/Object;
           12   25     9            attrValue  Ljava/lang/String;
           16   17    10  issuerAttributeName  Ljava/lang/String;
           21   24    10  issuerAttributeName  Ljava/lang/String;
           31   47     7                   it  Ljava/util/Iterator;
           34   41     8                   cf  Ljava/security/cert/CertificateFactory;
           38   40     9                  crl  Ljava/security/cert/CRL;
           43   46     8                    e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          31    41      42  Class java.lang.Exception
    Exceptions:
      throws java.security.cert.CertStoreException
    MethodParameters:
          Name  Flags
      selector  

  private java.util.Set search(java.lang.String, java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=16, args_size=4
        start local 0 // org.bouncycastle.jce.provider.X509LDAPCertStoreSpi this
        start local 1 // java.lang.String attributeName
        start local 2 // java.lang.String attributeValue
        start local 3 // java.lang.String[] attrs
         0: .line 411
            new java.lang.StringBuilder
            dup
            aload 1 /* attributeName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* attributeValue */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* filter */
        start local 4 // java.lang.String filter
         1: .line 412
            aload 1 /* attributeName */
            ifnonnull 3
         2: .line 414
            aconst_null
            astore 4 /* filter */
         3: .line 416
      StackMap locals: java.lang.String
      StackMap stack:
            aconst_null
            astore 5 /* ctx */
        start local 5 // javax.naming.directory.DirContext ctx
         4: .line 417
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 6 /* set */
        start local 6 // java.util.Set set
         5: .line 421
            aload 0 /* this */
            invokevirtual org.bouncycastle.jce.provider.X509LDAPCertStoreSpi.connectLDAP:()Ljavax/naming/directory/DirContext;
            astore 5 /* ctx */
         6: .line 423
            new javax.naming.directory.SearchControls
            dup
            invokespecial javax.naming.directory.SearchControls.<init>:()V
            astore 7 /* constraints */
        start local 7 // javax.naming.directory.SearchControls constraints
         7: .line 424
            aload 7 /* constraints */
            iconst_2
            invokevirtual javax.naming.directory.SearchControls.setSearchScope:(I)V
         8: .line 425
            aload 7 /* constraints */
            lconst_0
            invokevirtual javax.naming.directory.SearchControls.setCountLimit:(J)V
         9: .line 426
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        10: goto 31
        11: .line 428
      StackMap locals: org.bouncycastle.jce.provider.X509LDAPCertStoreSpi java.lang.String java.lang.String java.lang.String[] java.lang.String javax.naming.directory.DirContext java.util.Set javax.naming.directory.SearchControls int
      StackMap stack:
            iconst_1
            anewarray java.lang.String
            astore 9 /* temp */
        start local 9 // java.lang.String[] temp
        12: .line 429
            aload 9 /* temp */
            iconst_0
            aload 3 /* attrs */
            iload 8 /* i */
            aaload
            aastore
        13: .line 430
            aload 7 /* constraints */
            aload 9 /* temp */
            invokevirtual javax.naming.directory.SearchControls.setReturningAttributes:([Ljava/lang/String;)V
        14: .line 432
            new java.lang.StringBuilder
            dup
            ldc "(&("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* filter */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ")("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 9 /* temp */
            iconst_0
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "=*))"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 10 /* filter2 */
        start local 10 // java.lang.String filter2
        15: .line 433
            aload 4 /* filter */
            ifnonnull 17
        16: .line 435
            new java.lang.StringBuilder
            dup
            ldc "("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* temp */
            iconst_0
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "=*)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 10 /* filter2 */
        17: .line 437
      StackMap locals: java.lang.String[] java.lang.String
      StackMap stack:
            aload 5 /* ctx */
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509LDAPCertStoreSpi.params:Lorg/bouncycastle/jce/X509LDAPCertStoreParameters;
            invokevirtual org.bouncycastle.jce.X509LDAPCertStoreParameters.getBaseDN:()Ljava/lang/String;
        18: .line 438
            aload 10 /* filter2 */
            aload 7 /* constraints */
        19: .line 437
            invokeinterface javax.naming.directory.DirContext.search:(Ljava/lang/String;Ljava/lang/String;Ljavax/naming/directory/SearchControls;)Ljavax/naming/NamingEnumeration;
            astore 11 /* results */
        start local 11 // javax.naming.NamingEnumeration results
        20: .line 439
            goto 29
        21: .line 441
      StackMap locals: javax.naming.NamingEnumeration
      StackMap stack:
            aload 11 /* results */
            invokeinterface javax.naming.NamingEnumeration.next:()Ljava/lang/Object;
            checkcast javax.naming.directory.SearchResult
            astore 12 /* sr */
        start local 12 // javax.naming.directory.SearchResult sr
        22: .line 445
            aload 12 /* sr */
        23: .line 446
            invokevirtual javax.naming.directory.SearchResult.getAttributes:()Ljavax/naming/directory/Attributes;
            invokeinterface javax.naming.directory.Attributes.getAll:()Ljavax/naming/NamingEnumeration;
            invokeinterface javax.naming.NamingEnumeration.next:()Ljava/lang/Object;
            checkcast javax.naming.directory.Attribute
            invokeinterface javax.naming.directory.Attribute.getAll:()Ljavax/naming/NamingEnumeration;
        24: .line 445
            astore 13 /* enumeration */
        start local 13 // javax.naming.NamingEnumeration enumeration
        25: .line 447
            goto 28
        26: .line 449
      StackMap locals: javax.naming.directory.SearchResult javax.naming.NamingEnumeration
      StackMap stack:
            aload 13 /* enumeration */
            invokeinterface javax.naming.NamingEnumeration.next:()Ljava/lang/Object;
            astore 14 /* o */
        start local 14 // java.lang.Object o
        27: .line 450
            aload 6 /* set */
            aload 14 /* o */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 14 // java.lang.Object o
        28: .line 447
      StackMap locals:
      StackMap stack:
            aload 13 /* enumeration */
            invokeinterface javax.naming.NamingEnumeration.hasMore:()Z
            ifne 26
        end local 13 // javax.naming.NamingEnumeration enumeration
        end local 12 // javax.naming.directory.SearchResult sr
        29: .line 439
      StackMap locals:
      StackMap stack:
            aload 11 /* results */
            invokeinterface javax.naming.NamingEnumeration.hasMoreElements:()Z
            ifne 21
        end local 11 // javax.naming.NamingEnumeration results
        end local 10 // java.lang.String filter2
        end local 9 // java.lang.String[] temp
        30: .line 426
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        31: iload 8 /* i */
            aload 3 /* attrs */
            arraylength
            if_icmplt 11
        end local 8 // int i
        end local 7 // javax.naming.directory.SearchControls constraints
        32: .line 454
            goto 43
        33: .line 455
      StackMap locals: org.bouncycastle.jce.provider.X509LDAPCertStoreSpi java.lang.String java.lang.String java.lang.String[] java.lang.String javax.naming.directory.DirContext java.util.Set
      StackMap stack: java.lang.Exception
            astore 7 /* e */
        start local 7 // java.lang.Exception e
        34: .line 457
            new java.security.cert.CertStoreException
            dup
        35: .line 458
            new java.lang.StringBuilder
            dup
            ldc "Error getting results from LDAP directory "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        36: .line 457
            invokespecial java.security.cert.CertStoreException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // java.lang.Exception e
        37: .line 462
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 15
        38: .line 465
            aload 5 /* ctx */
            ifnull 42
        39: .line 467
            aload 5 /* ctx */
            invokeinterface javax.naming.directory.DirContext.close:()V
        40: .line 469
            goto 42
        41: .line 470
      StackMap locals: org.bouncycastle.jce.provider.X509LDAPCertStoreSpi java.lang.String java.lang.String java.lang.String[] java.lang.String javax.naming.directory.DirContext java.util.Set top top top top top top top top java.lang.Throwable
      StackMap stack: java.lang.Exception
            pop
        42: .line 473
      StackMap locals:
      StackMap stack:
            aload 15
            athrow
        43: .line 465
      StackMap locals: org.bouncycastle.jce.provider.X509LDAPCertStoreSpi java.lang.String java.lang.String java.lang.String[] java.lang.String javax.naming.directory.DirContext java.util.Set
      StackMap stack:
            aload 5 /* ctx */
            ifnull 47
        44: .line 467
            aload 5 /* ctx */
            invokeinterface javax.naming.directory.DirContext.close:()V
        45: .line 469
            goto 47
        46: .line 470
      StackMap locals:
      StackMap stack: java.lang.Exception
            pop
        47: .line 474
      StackMap locals:
      StackMap stack:
            aload 6 /* set */
            areturn
        end local 6 // java.util.Set set
        end local 5 // javax.naming.directory.DirContext ctx
        end local 4 // java.lang.String filter
        end local 3 // java.lang.String[] attrs
        end local 2 // java.lang.String attributeValue
        end local 1 // java.lang.String attributeName
        end local 0 // org.bouncycastle.jce.provider.X509LDAPCertStoreSpi this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   48     0            this  Lorg/bouncycastle/jce/provider/X509LDAPCertStoreSpi;
            0   48     1   attributeName  Ljava/lang/String;
            0   48     2  attributeValue  Ljava/lang/String;
            0   48     3           attrs  [Ljava/lang/String;
            1   48     4          filter  Ljava/lang/String;
            4   48     5             ctx  Ljavax/naming/directory/DirContext;
            5   48     6             set  Ljava/util/Set;
            7   32     7     constraints  Ljavax/naming/directory/SearchControls;
           10   32     8               i  I
           12   30     9            temp  [Ljava/lang/String;
           15   30    10         filter2  Ljava/lang/String;
           20   30    11         results  Ljavax/naming/NamingEnumeration;
           22   29    12              sr  Ljavax/naming/directory/SearchResult;
           25   29    13     enumeration  Ljavax/naming/NamingEnumeration;
           27   28    14               o  Ljava/lang/Object;
           34   37     7               e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           5    32      33  Class java.lang.Exception
           5    37      37  any
          38    40      41  Class java.lang.Exception
          43    45      46  Class java.lang.Exception
    Exceptions:
      throws java.security.cert.CertStoreException
    MethodParameters:
                Name  Flags
      attributeName   
      attributeValue  
      attrs           
}
SourceFile: "X509LDAPCertStoreSpi.java"