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

  public java.util.Set findCRLs(org.bouncycastle.x509.X509CRLStoreSelector, org.bouncycastle.x509.ExtendedPKIXParameters, java.util.Date);
    descriptor: (Lorg/bouncycastle/x509/X509CRLStoreSelector;Lorg/bouncycastle/x509/ExtendedPKIXParameters;Ljava/util/Date;)Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=10, args_size=4
        start local 0 // org.bouncycastle.jce.provider.PKIXCRLUtil this
        start local 1 // org.bouncycastle.x509.X509CRLStoreSelector crlselect
        start local 2 // org.bouncycastle.x509.ExtendedPKIXParameters paramsPKIX
        start local 3 // java.util.Date currentDate
         0: .line 25
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 4 /* initialSet */
        start local 4 // java.util.Set initialSet
         1: .line 30
            aload 4 /* initialSet */
            aload 0 /* this */
            aload 1 /* crlselect */
            aload 2 /* paramsPKIX */
            invokevirtual org.bouncycastle.x509.ExtendedPKIXParameters.getAdditionalStores:()Ljava/util/List;
            invokevirtual org.bouncycastle.jce.provider.PKIXCRLUtil.findCRLs:(Lorg/bouncycastle/x509/X509CRLStoreSelector;Ljava/util/List;)Ljava/util/Collection;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
         2: .line 31
            aload 4 /* initialSet */
            aload 0 /* this */
            aload 1 /* crlselect */
            aload 2 /* paramsPKIX */
            invokevirtual org.bouncycastle.x509.ExtendedPKIXParameters.getStores:()Ljava/util/List;
            invokevirtual org.bouncycastle.jce.provider.PKIXCRLUtil.findCRLs:(Lorg/bouncycastle/x509/X509CRLStoreSelector;Ljava/util/List;)Ljava/util/Collection;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
         3: .line 32
            aload 4 /* initialSet */
            aload 0 /* this */
            aload 1 /* crlselect */
            aload 2 /* paramsPKIX */
            invokevirtual org.bouncycastle.x509.ExtendedPKIXParameters.getCertStores:()Ljava/util/List;
            invokevirtual org.bouncycastle.jce.provider.PKIXCRLUtil.findCRLs:(Lorg/bouncycastle/x509/X509CRLStoreSelector;Ljava/util/List;)Ljava/util/Collection;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
         4: .line 33
            goto 7
         5: .line 34
      StackMap locals: org.bouncycastle.jce.provider.PKIXCRLUtil org.bouncycastle.x509.X509CRLStoreSelector org.bouncycastle.x509.ExtendedPKIXParameters java.util.Date java.util.Set
      StackMap stack: org.bouncycastle.jce.provider.AnnotatedException
            astore 5 /* e */
        start local 5 // org.bouncycastle.jce.provider.AnnotatedException e
         6: .line 36
            new org.bouncycastle.jce.provider.AnnotatedException
            dup
            ldc "Exception obtaining complete CRLs."
            aload 5 /* e */
            invokespecial org.bouncycastle.jce.provider.AnnotatedException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 5 // org.bouncycastle.jce.provider.AnnotatedException e
         7: .line 39
      StackMap locals:
      StackMap stack:
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 5 /* finalSet */
        start local 5 // java.util.Set finalSet
         8: .line 40
            aload 3 /* currentDate */
            astore 6 /* validityDate */
        start local 6 // java.util.Date validityDate
         9: .line 42
            aload 2 /* paramsPKIX */
            invokevirtual org.bouncycastle.x509.ExtendedPKIXParameters.getDate:()Ljava/util/Date;
            ifnull 11
        10: .line 44
            aload 2 /* paramsPKIX */
            invokevirtual org.bouncycastle.x509.ExtendedPKIXParameters.getDate:()Ljava/util/Date;
            astore 6 /* validityDate */
        11: .line 48
      StackMap locals: java.util.Set java.util.Date
      StackMap stack:
            aload 4 /* initialSet */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7 /* it */
        start local 7 // java.util.Iterator it
        12: goto 21
        13: .line 50
      StackMap locals: 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
        14: .line 52
            aload 8 /* crl */
            invokevirtual java.security.cert.X509CRL.getNextUpdate:()Ljava/util/Date;
            aload 6 /* validityDate */
            invokevirtual java.util.Date.after:(Ljava/util/Date;)Z
            ifeq 21
        15: .line 54
            aload 1 /* crlselect */
            invokevirtual org.bouncycastle.x509.X509CRLStoreSelector.getCertificateChecking:()Ljava/security/cert/X509Certificate;
            astore 9 /* cert */
        start local 9 // java.security.cert.X509Certificate cert
        16: .line 56
            aload 9 /* cert */
            ifnull 20
        17: .line 58
            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 21
        18: .line 60
            aload 5 /* finalSet */
            aload 8 /* crl */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        19: .line 62
            goto 21
        20: .line 65
      StackMap locals: java.security.cert.X509CRL java.security.cert.X509Certificate
      StackMap stack:
            aload 5 /* 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
        21: .line 48
      StackMap locals:
      StackMap stack:
            aload 7 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        end local 7 // java.util.Iterator it
        22: .line 70
            aload 5 /* finalSet */
            areturn
        end local 6 // java.util.Date validityDate
        end local 5 // java.util.Set finalSet
        end local 4 // java.util.Set initialSet
        end local 3 // java.util.Date currentDate
        end local 2 // org.bouncycastle.x509.ExtendedPKIXParameters paramsPKIX
        end local 1 // org.bouncycastle.x509.X509CRLStoreSelector crlselect
        end local 0 // org.bouncycastle.jce.provider.PKIXCRLUtil this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   23     0          this  Lorg/bouncycastle/jce/provider/PKIXCRLUtil;
            0   23     1     crlselect  Lorg/bouncycastle/x509/X509CRLStoreSelector;
            0   23     2    paramsPKIX  Lorg/bouncycastle/x509/ExtendedPKIXParameters;
            0   23     3   currentDate  Ljava/util/Date;
            1   23     4    initialSet  Ljava/util/Set;
            6    7     5             e  Lorg/bouncycastle/jce/provider/AnnotatedException;
            8   23     5      finalSet  Ljava/util/Set;
            9   23     6  validityDate  Ljava/util/Date;
           12   22     7            it  Ljava/util/Iterator;
           14   21     8           crl  Ljava/security/cert/X509CRL;
           16   21     9          cert  Ljava/security/cert/X509Certificate;
      Exception table:
        from    to  target  type
           1     4       5  Class org.bouncycastle.jce.provider.AnnotatedException
    Exceptions:
      throws org.bouncycastle.jce.provider.AnnotatedException
    MethodParameters:
             Name  Flags
      crlselect    
      paramsPKIX   
      currentDate  

  public java.util.Set findCRLs(org.bouncycastle.x509.X509CRLStoreSelector, java.security.cert.PKIXParameters);
    descriptor: (Lorg/bouncycastle/x509/X509CRLStoreSelector;Ljava/security/cert/PKIXParameters;)Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.bouncycastle.jce.provider.PKIXCRLUtil this
        start local 1 // org.bouncycastle.x509.X509CRLStoreSelector crlselect
        start local 2 // java.security.cert.PKIXParameters paramsPKIX
         0: .line 76
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 3 /* completeSet */
        start local 3 // java.util.Set completeSet
         1: .line 81
            aload 3 /* completeSet */
            aload 0 /* this */
            aload 1 /* crlselect */
            aload 2 /* paramsPKIX */
            invokevirtual java.security.cert.PKIXParameters.getCertStores:()Ljava/util/List;
            invokevirtual org.bouncycastle.jce.provider.PKIXCRLUtil.findCRLs:(Lorg/bouncycastle/x509/X509CRLStoreSelector;Ljava/util/List;)Ljava/util/Collection;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
         2: .line 82
            goto 5
         3: .line 83
      StackMap locals: org.bouncycastle.jce.provider.PKIXCRLUtil org.bouncycastle.x509.X509CRLStoreSelector java.security.cert.PKIXParameters java.util.Set
      StackMap stack: org.bouncycastle.jce.provider.AnnotatedException
            astore 4 /* e */
        start local 4 // org.bouncycastle.jce.provider.AnnotatedException e
         4: .line 85
            new org.bouncycastle.jce.provider.AnnotatedException
            dup
            ldc "Exception obtaining complete CRLs."
            aload 4 /* e */
            invokespecial org.bouncycastle.jce.provider.AnnotatedException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // org.bouncycastle.jce.provider.AnnotatedException e
         5: .line 88
      StackMap locals:
      StackMap stack:
            aload 3 /* completeSet */
            areturn
        end local 3 // java.util.Set completeSet
        end local 2 // java.security.cert.PKIXParameters paramsPKIX
        end local 1 // org.bouncycastle.x509.X509CRLStoreSelector crlselect
        end local 0 // org.bouncycastle.jce.provider.PKIXCRLUtil this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lorg/bouncycastle/jce/provider/PKIXCRLUtil;
            0    6     1    crlselect  Lorg/bouncycastle/x509/X509CRLStoreSelector;
            0    6     2   paramsPKIX  Ljava/security/cert/PKIXParameters;
            1    6     3  completeSet  Ljava/util/Set;
            4    5     4            e  Lorg/bouncycastle/jce/provider/AnnotatedException;
      Exception table:
        from    to  target  type
           1     2       3  Class org.bouncycastle.jce.provider.AnnotatedException
    Exceptions:
      throws org.bouncycastle.jce.provider.AnnotatedException
    MethodParameters:
            Name  Flags
      crlselect   
      paramsPKIX  

  private final java.util.Collection findCRLs(org.bouncycastle.x509.X509CRLStoreSelector, java.util.List);
    descriptor: (Lorg/bouncycastle/x509/X509CRLStoreSelector;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.jce.provider.PKIXCRLUtil this
        start local 1 // org.bouncycastle.x509.X509CRLStoreSelector crlSelect
        start local 2 // java.util.List crlStores
         0: .line 107
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 3 /* crls */
        start local 3 // java.util.Set crls
         1: .line 108
            aload 2 /* crlStores */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4 /* iter */
        start local 4 // java.util.Iterator iter
         2: .line 110
            aconst_null
            astore 5 /* lastException */
        start local 5 // org.bouncycastle.jce.provider.AnnotatedException lastException
         3: .line 111
            iconst_0
            istore 6 /* foundValidStore */
        start local 6 // boolean foundValidStore
         4: .line 113
            goto 24
         5: .line 115
      StackMap locals: org.bouncycastle.jce.provider.PKIXCRLUtil org.bouncycastle.x509.X509CRLStoreSelector java.util.List java.util.Set java.util.Iterator org.bouncycastle.jce.provider.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 117
            aload 7 /* obj */
            instanceof org.bouncycastle.x509.X509Store
            ifeq 16
         7: .line 119
            aload 7 /* obj */
            checkcast org.bouncycastle.x509.X509Store
            astore 8 /* store */
        start local 8 // org.bouncycastle.x509.X509Store store
         8: .line 123
            aload 3 /* crls */
            aload 8 /* store */
            aload 1 /* crlSelect */
            invokevirtual org.bouncycastle.x509.X509Store.getMatches:(Lorg/bouncycastle/util/Selector;)Ljava/util/Collection;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
         9: .line 124
            iconst_1
            istore 6 /* foundValidStore */
        10: .line 125
            goto 24
        11: .line 126
      StackMap locals: org.bouncycastle.jce.provider.PKIXCRLUtil org.bouncycastle.x509.X509CRLStoreSelector java.util.List java.util.Set java.util.Iterator org.bouncycastle.jce.provider.AnnotatedException int java.lang.Object org.bouncycastle.x509.X509Store
      StackMap stack: org.bouncycastle.util.StoreException
            astore 9 /* e */
        start local 9 // org.bouncycastle.util.StoreException e
        12: .line 128
            new org.bouncycastle.jce.provider.AnnotatedException
            dup
        13: .line 129
            ldc "Exception searching in X.509 CRL store."
            aload 9 /* e */
        14: .line 128
            invokespecial org.bouncycastle.jce.provider.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.x509.X509Store store
        15: .line 131
            goto 24
        16: .line 134
      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 138
            aload 3 /* crls */
            aload 8 /* store */
            aload 1 /* crlSelect */
            invokevirtual java.security.cert.CertStore.getCRLs:(Ljava/security/cert/CRLSelector;)Ljava/util/Collection;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        18: .line 139
            iconst_1
            istore 6 /* foundValidStore */
        19: .line 140
            goto 24
        20: .line 141
      StackMap locals: org.bouncycastle.jce.provider.PKIXCRLUtil org.bouncycastle.x509.X509CRLStoreSelector java.util.List java.util.Set java.util.Iterator org.bouncycastle.jce.provider.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 143
            new org.bouncycastle.jce.provider.AnnotatedException
            dup
        22: .line 144
            ldc "Exception searching in X.509 CRL store."
            aload 9 /* e */
        23: .line 143
            invokespecial org.bouncycastle.jce.provider.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 113
      StackMap locals:
      StackMap stack:
            aload 4 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        25: .line 148
            iload 6 /* foundValidStore */
            ifne 27
            aload 5 /* lastException */
            ifnull 27
        26: .line 150
            aload 5 /* lastException */
            athrow
        27: .line 152
      StackMap locals:
      StackMap stack:
            aload 3 /* crls */
            areturn
        end local 6 // boolean foundValidStore
        end local 5 // org.bouncycastle.jce.provider.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.x509.X509CRLStoreSelector crlSelect
        end local 0 // org.bouncycastle.jce.provider.PKIXCRLUtil this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   28     0             this  Lorg/bouncycastle/jce/provider/PKIXCRLUtil;
            0   28     1        crlSelect  Lorg/bouncycastle/x509/X509CRLStoreSelector;
            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/jce/provider/AnnotatedException;
            4   28     6  foundValidStore  Z
            6   24     7              obj  Ljava/lang/Object;
            8   15     8            store  Lorg/bouncycastle/x509/X509Store;
           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.jce.provider.AnnotatedException
    MethodParameters:
           Name  Flags
      crlSelect  
      crlStores  
}
SourceFile: "PKIXCRLUtil.java"