class org.bouncycastle.pkix.jcajce.PKIXCRLUtil
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.bouncycastle.pkix.jcajce.PKIXCRLUtil
  super_class: java.lang.Object
{
  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.pkix.jcajce.PKIXCRLUtil this
         0: .line 18
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.bouncycastle.pkix.jcajce.PKIXCRLUtil this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/pkix/jcajce/PKIXCRLUtil;

  public java.util.Set findCRLs(org.bouncycastle.jcajce.PKIXCRLStoreSelector, java.util.Date, java.util.List, java.util.List);
    descriptor: (Lorg/bouncycastle/jcajce/PKIXCRLStoreSelector;Ljava/util/Date;Ljava/util/List;Ljava/util/List;)Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=10, args_size=5
        start local 0 // org.bouncycastle.pkix.jcajce.PKIXCRLUtil this
        start local 1 // org.bouncycastle.jcajce.PKIXCRLStoreSelector crlselect
        start local 2 // java.util.Date validityDate
        start local 3 // java.util.List certStores
        start local 4 // java.util.List pkixCrlStores
         0: .line 23
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 5 /* initialSet */
        start local 5 // java.util.Set initialSet
         1: .line 28
            aload 5 /* initialSet */
            aload 0 /* this */
            aload 1 /* crlselect */
            aload 4 /* pkixCrlStores */
            invokevirtual org.bouncycastle.pkix.jcajce.PKIXCRLUtil.findCRLs:(Lorg/bouncycastle/jcajce/PKIXCRLStoreSelector;Ljava/util/List;)Ljava/util/Collection;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
         2: .line 29
            aload 5 /* initialSet */
            aload 0 /* this */
            aload 1 /* crlselect */
            aload 3 /* certStores */
            invokevirtual org.bouncycastle.pkix.jcajce.PKIXCRLUtil.findCRLs:(Lorg/bouncycastle/jcajce/PKIXCRLStoreSelector;Ljava/util/List;)Ljava/util/Collection;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
         3: .line 30
            goto 6
         4: .line 31
      StackMap locals: org.bouncycastle.pkix.jcajce.PKIXCRLUtil org.bouncycastle.jcajce.PKIXCRLStoreSelector java.util.Date java.util.List java.util.List java.util.Set
      StackMap stack: org.bouncycastle.pkix.jcajce.AnnotatedException
            astore 6 /* e */
        start local 6 // org.bouncycastle.pkix.jcajce.AnnotatedException e
         5: .line 33
            new org.bouncycastle.pkix.jcajce.AnnotatedException
            dup
            ldc "Exception obtaining complete CRLs."
            aload 6 /* e */
            invokespecial org.bouncycastle.pkix.jcajce.AnnotatedException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 6 // org.bouncycastle.pkix.jcajce.AnnotatedException e
         6: .line 36
      StackMap locals:
      StackMap stack:
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 6 /* finalSet */
        start local 6 // java.util.Set finalSet
         7: .line 39
            aload 5 /* initialSet */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7 /* it */
        start local 7 // java.util.Iterator it
         8: goto 17
         9: .line 41
      StackMap locals: java.util.Set java.util.Iterator
      StackMap stack:
            aload 7 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.security.cert.X509CRL
            astore 8 /* crl */
        start local 8 // java.security.cert.X509CRL crl
        10: .line 43
            aload 8 /* crl */
            invokevirtual java.security.cert.X509CRL.getNextUpdate:()Ljava/util/Date;
            aload 2 /* validityDate */
            invokevirtual java.util.Date.after:(Ljava/util/Date;)Z
            ifeq 17
        11: .line 45
            aload 1 /* crlselect */
            invokevirtual org.bouncycastle.jcajce.PKIXCRLStoreSelector.getCertificateChecking:()Ljava/security/cert/X509Certificate;
            astore 9 /* cert */
        start local 9 // java.security.cert.X509Certificate cert
        12: .line 47
            aload 9 /* cert */
            ifnull 16
        13: .line 49
            aload 8 /* crl */
            invokevirtual java.security.cert.X509CRL.getThisUpdate:()Ljava/util/Date;
            aload 9 /* cert */
            invokevirtual java.security.cert.X509Certificate.getNotAfter:()Ljava/util/Date;
            invokevirtual java.util.Date.before:(Ljava/util/Date;)Z
            ifeq 17
        14: .line 51
            aload 6 /* finalSet */
            aload 8 /* crl */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        15: .line 53
            goto 17
        16: .line 56
      StackMap locals: java.security.cert.X509CRL java.security.cert.X509Certificate
      StackMap stack:
            aload 6 /* finalSet */
            aload 8 /* crl */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 9 // java.security.cert.X509Certificate cert
        end local 8 // java.security.cert.X509CRL crl
        17: .line 39
      StackMap locals:
      StackMap stack:
            aload 7 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        end local 7 // java.util.Iterator it
        18: .line 61
            aload 6 /* finalSet */
            areturn
        end local 6 // java.util.Set finalSet
        end local 5 // java.util.Set initialSet
        end local 4 // java.util.List pkixCrlStores
        end local 3 // java.util.List certStores
        end local 2 // java.util.Date validityDate
        end local 1 // org.bouncycastle.jcajce.PKIXCRLStoreSelector crlselect
        end local 0 // org.bouncycastle.pkix.jcajce.PKIXCRLUtil this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   19     0           this  Lorg/bouncycastle/pkix/jcajce/PKIXCRLUtil;
            0   19     1      crlselect  Lorg/bouncycastle/jcajce/PKIXCRLStoreSelector;
            0   19     2   validityDate  Ljava/util/Date;
            0   19     3     certStores  Ljava/util/List;
            0   19     4  pkixCrlStores  Ljava/util/List;
            1   19     5     initialSet  Ljava/util/Set;
            5    6     6              e  Lorg/bouncycastle/pkix/jcajce/AnnotatedException;
            7   19     6       finalSet  Ljava/util/Set;
            8   18     7             it  Ljava/util/Iterator;
           10   17     8            crl  Ljava/security/cert/X509CRL;
           12   17     9           cert  Ljava/security/cert/X509Certificate;
      Exception table:
        from    to  target  type
           1     3       4  Class org.bouncycastle.pkix.jcajce.AnnotatedException
    Exceptions:
      throws org.bouncycastle.pkix.jcajce.AnnotatedException
    MethodParameters:
               Name  Flags
      crlselect      
      validityDate   
      certStores     
      pkixCrlStores  

  private final java.util.Collection findCRLs(org.bouncycastle.jcajce.PKIXCRLStoreSelector, java.util.List);
    descriptor: (Lorg/bouncycastle/jcajce/PKIXCRLStoreSelector;Ljava/util/List;)Ljava/util/Collection;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Code:
      stack=4, locals=10, args_size=3
        start local 0 // org.bouncycastle.pkix.jcajce.PKIXCRLUtil this
        start local 1 // org.bouncycastle.jcajce.PKIXCRLStoreSelector crlSelect
        start local 2 // java.util.List crlStores
         0: .line 80
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 3 /* crls */
        start local 3 // java.util.Set crls
         1: .line 81
            aload 2 /* crlStores */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4 /* iter */
        start local 4 // java.util.Iterator iter
         2: .line 83
            aconst_null
            astore 5 /* lastException */
        start local 5 // org.bouncycastle.pkix.jcajce.AnnotatedException lastException
         3: .line 84
            iconst_0
            istore 6 /* foundValidStore */
        start local 6 // boolean foundValidStore
         4: .line 86
            goto 24
         5: .line 88
      StackMap locals: org.bouncycastle.pkix.jcajce.PKIXCRLUtil org.bouncycastle.jcajce.PKIXCRLStoreSelector java.util.List java.util.Set java.util.Iterator org.bouncycastle.pkix.jcajce.AnnotatedException int
      StackMap stack:
            aload 4 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 7 /* obj */
        start local 7 // java.lang.Object obj
         6: .line 90
            aload 7 /* obj */
            instanceof org.bouncycastle.util.Store
            ifeq 16
         7: .line 92
            aload 7 /* obj */
            checkcast org.bouncycastle.util.Store
            astore 8 /* store */
        start local 8 // org.bouncycastle.util.Store store
         8: .line 96
            aload 3 /* crls */
            aload 8 /* store */
            aload 1 /* crlSelect */
            invokeinterface org.bouncycastle.util.Store.getMatches:(Lorg/bouncycastle/util/Selector;)Ljava/util/Collection;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
         9: .line 97
            iconst_1
            istore 6 /* foundValidStore */
        10: .line 98
            goto 24
        11: .line 99
      StackMap locals: org.bouncycastle.pkix.jcajce.PKIXCRLUtil org.bouncycastle.jcajce.PKIXCRLStoreSelector java.util.List java.util.Set java.util.Iterator org.bouncycastle.pkix.jcajce.AnnotatedException int java.lang.Object org.bouncycastle.util.Store
      StackMap stack: org.bouncycastle.util.StoreException
            astore 9 /* e */
        start local 9 // org.bouncycastle.util.StoreException e
        12: .line 101
            new org.bouncycastle.pkix.jcajce.AnnotatedException
            dup
        13: .line 102
            ldc "Exception searching in X.509 CRL store."
            aload 9 /* e */
        14: .line 101
            invokespecial org.bouncycastle.pkix.jcajce.AnnotatedException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            astore 5 /* lastException */
        end local 9 // org.bouncycastle.util.StoreException e
        end local 8 // org.bouncycastle.util.Store store
        15: .line 104
            goto 24
        16: .line 107
      StackMap locals:
      StackMap stack:
            aload 7 /* obj */
            checkcast java.security.cert.CertStore
            astore 8 /* store */
        start local 8 // java.security.cert.CertStore store
        17: .line 111
            aload 3 /* crls */
            aload 1 /* crlSelect */
            aload 8 /* store */
            invokestatic org.bouncycastle.jcajce.PKIXCRLStoreSelector.getCRLs:(Lorg/bouncycastle/jcajce/PKIXCRLStoreSelector;Ljava/security/cert/CertStore;)Ljava/util/Collection;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        18: .line 112
            iconst_1
            istore 6 /* foundValidStore */
        19: .line 113
            goto 24
        20: .line 114
      StackMap locals: org.bouncycastle.pkix.jcajce.PKIXCRLUtil org.bouncycastle.jcajce.PKIXCRLStoreSelector java.util.List java.util.Set java.util.Iterator org.bouncycastle.pkix.jcajce.AnnotatedException int java.lang.Object java.security.cert.CertStore
      StackMap stack: java.security.cert.CertStoreException
            astore 9 /* e */
        start local 9 // java.security.cert.CertStoreException e
        21: .line 116
            new org.bouncycastle.pkix.jcajce.AnnotatedException
            dup
        22: .line 117
            ldc "Exception searching in X.509 CRL store."
            aload 9 /* e */
        23: .line 116
            invokespecial org.bouncycastle.pkix.jcajce.AnnotatedException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            astore 5 /* lastException */
        end local 9 // java.security.cert.CertStoreException e
        end local 8 // java.security.cert.CertStore store
        end local 7 // java.lang.Object obj
        24: .line 86
      StackMap locals:
      StackMap stack:
            aload 4 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        25: .line 121
            iload 6 /* foundValidStore */
            ifne 27
            aload 5 /* lastException */
            ifnull 27
        26: .line 123
            aload 5 /* lastException */
            athrow
        27: .line 125
      StackMap locals:
      StackMap stack:
            aload 3 /* crls */
            areturn
        end local 6 // boolean foundValidStore
        end local 5 // org.bouncycastle.pkix.jcajce.AnnotatedException lastException
        end local 4 // java.util.Iterator iter
        end local 3 // java.util.Set crls
        end local 2 // java.util.List crlStores
        end local 1 // org.bouncycastle.jcajce.PKIXCRLStoreSelector crlSelect
        end local 0 // org.bouncycastle.pkix.jcajce.PKIXCRLUtil this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   28     0             this  Lorg/bouncycastle/pkix/jcajce/PKIXCRLUtil;
            0   28     1        crlSelect  Lorg/bouncycastle/jcajce/PKIXCRLStoreSelector;
            0   28     2        crlStores  Ljava/util/List;
            1   28     3             crls  Ljava/util/Set;
            2   28     4             iter  Ljava/util/Iterator;
            3   28     5    lastException  Lorg/bouncycastle/pkix/jcajce/AnnotatedException;
            4   28     6  foundValidStore  Z
            6   24     7              obj  Ljava/lang/Object;
            8   15     8            store  Lorg/bouncycastle/util/Store;
           12   15     9                e  Lorg/bouncycastle/util/StoreException;
           17   24     8            store  Ljava/security/cert/CertStore;
           21   24     9                e  Ljava/security/cert/CertStoreException;
      Exception table:
        from    to  target  type
           8    10      11  Class org.bouncycastle.util.StoreException
          17    19      20  Class java.security.cert.CertStoreException
    Exceptions:
      throws org.bouncycastle.pkix.jcajce.AnnotatedException
    MethodParameters:
           Name  Flags
      crlSelect  
      crlStores  
}
SourceFile: "PKIXCRLUtil.java"