public class org.bouncycastle.jce.provider.X509CRLParser extends org.bouncycastle.x509.X509StreamParserSpi
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bouncycastle.jce.provider.X509CRLParser
  super_class: org.bouncycastle.x509.X509StreamParserSpi
{
  private static final org.bouncycastle.jce.provider.PEMUtil PEM_PARSER;
    descriptor: Lorg/bouncycastle/jce/provider/PEMUtil;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private org.bouncycastle.asn1.ASN1Set sData;
    descriptor: Lorg/bouncycastle/asn1/ASN1Set;
    flags: (0x0002) ACC_PRIVATE

  private int sDataObjectCount;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private java.io.InputStream currentStream;
    descriptor: Ljava/io/InputStream;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 26
            new org.bouncycastle.jce.provider.PEMUtil
            dup
            ldc "CRL"
            invokespecial org.bouncycastle.jce.provider.PEMUtil.<init>:(Ljava/lang/String;)V
            putstatic org.bouncycastle.jce.provider.X509CRLParser.PEM_PARSER:Lorg/bouncycastle/jce/provider/PEMUtil;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bouncycastle.jce.provider.X509CRLParser this
         0: .line 23
            aload 0 /* this */
            invokespecial org.bouncycastle.x509.X509StreamParserSpi.<init>:()V
         1: .line 28
            aload 0 /* this */
            aconst_null
            putfield org.bouncycastle.jce.provider.X509CRLParser.sData:Lorg/bouncycastle/asn1/ASN1Set;
         2: .line 29
            aload 0 /* this */
            iconst_0
            putfield org.bouncycastle.jce.provider.X509CRLParser.sDataObjectCount:I
         3: .line 30
            aload 0 /* this */
            aconst_null
            putfield org.bouncycastle.jce.provider.X509CRLParser.currentStream:Ljava/io/InputStream;
         4: .line 23
            return
        end local 0 // org.bouncycastle.jce.provider.X509CRLParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/bouncycastle/jce/provider/X509CRLParser;

  private java.security.cert.CRL readDERCRL(java.io.InputStream);
    descriptor: (Ljava/io/InputStream;)Ljava/security/cert/CRL;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.bouncycastle.jce.provider.X509CRLParser this
        start local 1 // java.io.InputStream in
         0: .line 36
            new org.bouncycastle.asn1.ASN1InputStream
            dup
            aload 1 /* in */
            aload 1 /* in */
            invokestatic org.bouncycastle.jce.provider.ProviderUtil.getReadLimit:(Ljava/io/InputStream;)I
            invokespecial org.bouncycastle.asn1.ASN1InputStream.<init>:(Ljava/io/InputStream;I)V
            astore 2 /* dIn */
        start local 2 // org.bouncycastle.asn1.ASN1InputStream dIn
         1: .line 37
            aload 2 /* dIn */
            invokevirtual org.bouncycastle.asn1.ASN1InputStream.readObject:()Lorg/bouncycastle/asn1/DERObject;
            checkcast org.bouncycastle.asn1.ASN1Sequence
            astore 3 /* seq */
        start local 3 // org.bouncycastle.asn1.ASN1Sequence seq
         2: .line 39
            aload 3 /* seq */
            invokevirtual org.bouncycastle.asn1.ASN1Sequence.size:()I
            iconst_1
            if_icmple 11
         3: .line 40
            aload 3 /* seq */
            iconst_0
            invokevirtual org.bouncycastle.asn1.ASN1Sequence.getObjectAt:(I)Lorg/bouncycastle/asn1/DEREncodable;
            instanceof org.bouncycastle.asn1.DERObjectIdentifier
            ifeq 11
         4: .line 42
            aload 3 /* seq */
            iconst_0
            invokevirtual org.bouncycastle.asn1.ASN1Sequence.getObjectAt:(I)Lorg/bouncycastle/asn1/DEREncodable;
            getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.signedData:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 11
         5: .line 44
            aload 0 /* this */
            new org.bouncycastle.asn1.pkcs.SignedData
            dup
         6: .line 45
            aload 3 /* seq */
            iconst_1
            invokevirtual org.bouncycastle.asn1.ASN1Sequence.getObjectAt:(I)Lorg/bouncycastle/asn1/DEREncodable;
            checkcast org.bouncycastle.asn1.ASN1TaggedObject
            iconst_1
         7: .line 44
            invokestatic org.bouncycastle.asn1.ASN1Sequence.getInstance:(Lorg/bouncycastle/asn1/ASN1TaggedObject;Z)Lorg/bouncycastle/asn1/ASN1Sequence;
            invokespecial org.bouncycastle.asn1.pkcs.SignedData.<init>:(Lorg/bouncycastle/asn1/ASN1Sequence;)V
         8: .line 45
            invokevirtual org.bouncycastle.asn1.pkcs.SignedData.getCRLs:()Lorg/bouncycastle/asn1/ASN1Set;
         9: .line 44
            putfield org.bouncycastle.jce.provider.X509CRLParser.sData:Lorg/bouncycastle/asn1/ASN1Set;
        10: .line 47
            aload 0 /* this */
            invokevirtual org.bouncycastle.jce.provider.X509CRLParser.getCRL:()Ljava/security/cert/CRL;
            areturn
        11: .line 51
      StackMap locals: org.bouncycastle.asn1.ASN1InputStream org.bouncycastle.asn1.ASN1Sequence
      StackMap stack:
            new org.bouncycastle.jce.provider.X509CRLObject
            dup
            aload 3 /* seq */
            invokestatic org.bouncycastle.asn1.x509.CertificateList.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/x509/CertificateList;
            invokespecial org.bouncycastle.jce.provider.X509CRLObject.<init>:(Lorg/bouncycastle/asn1/x509/CertificateList;)V
            areturn
        end local 3 // org.bouncycastle.asn1.ASN1Sequence seq
        end local 2 // org.bouncycastle.asn1.ASN1InputStream dIn
        end local 1 // java.io.InputStream in
        end local 0 // org.bouncycastle.jce.provider.X509CRLParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/bouncycastle/jce/provider/X509CRLParser;
            0   12     1    in  Ljava/io/InputStream;
            1   12     2   dIn  Lorg/bouncycastle/asn1/ASN1InputStream;
            2   12     3   seq  Lorg/bouncycastle/asn1/ASN1Sequence;
    Exceptions:
      throws java.io.IOException, java.security.cert.CRLException
    MethodParameters:
      Name  Flags
      in    

  private java.security.cert.CRL getCRL();
    descriptor: ()Ljava/security/cert/CRL;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=1, args_size=1
        start local 0 // org.bouncycastle.jce.provider.X509CRLParser this
         0: .line 57
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CRLParser.sData:Lorg/bouncycastle/asn1/ASN1Set;
            ifnull 1
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CRLParser.sDataObjectCount:I
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CRLParser.sData:Lorg/bouncycastle/asn1/ASN1Set;
            invokevirtual org.bouncycastle.asn1.ASN1Set.size:()I
            if_icmplt 2
         1: .line 59
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 62
      StackMap locals:
      StackMap stack:
            new org.bouncycastle.jce.provider.X509CRLObject
            dup
         3: .line 64
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CRLParser.sData:Lorg/bouncycastle/asn1/ASN1Set;
            aload 0 /* this */
            dup
            getfield org.bouncycastle.jce.provider.X509CRLParser.sDataObjectCount:I
            dup_x1
            iconst_1
            iadd
            putfield org.bouncycastle.jce.provider.X509CRLParser.sDataObjectCount:I
            invokevirtual org.bouncycastle.asn1.ASN1Set.getObjectAt:(I)Lorg/bouncycastle/asn1/DEREncodable;
         4: .line 63
            invokestatic org.bouncycastle.asn1.x509.CertificateList.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/x509/CertificateList;
         5: .line 62
            invokespecial org.bouncycastle.jce.provider.X509CRLObject.<init>:(Lorg/bouncycastle/asn1/x509/CertificateList;)V
            areturn
        end local 0 // org.bouncycastle.jce.provider.X509CRLParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/bouncycastle/jce/provider/X509CRLParser;
    Exceptions:
      throws java.security.cert.CRLException

  private java.security.cert.CRL readPEMCRL(java.io.InputStream);
    descriptor: (Ljava/io/InputStream;)Ljava/security/cert/CRL;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.bouncycastle.jce.provider.X509CRLParser this
        start local 1 // java.io.InputStream in
         0: .line 71
            getstatic org.bouncycastle.jce.provider.X509CRLParser.PEM_PARSER:Lorg/bouncycastle/jce/provider/PEMUtil;
            aload 1 /* in */
            invokevirtual org.bouncycastle.jce.provider.PEMUtil.readPEMObject:(Ljava/io/InputStream;)Lorg/bouncycastle/asn1/ASN1Sequence;
            astore 2 /* seq */
        start local 2 // org.bouncycastle.asn1.ASN1Sequence seq
         1: .line 73
            aload 2 /* seq */
            ifnull 3
         2: .line 75
            new org.bouncycastle.jce.provider.X509CRLObject
            dup
            aload 2 /* seq */
            invokestatic org.bouncycastle.asn1.x509.CertificateList.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/x509/CertificateList;
            invokespecial org.bouncycastle.jce.provider.X509CRLObject.<init>:(Lorg/bouncycastle/asn1/x509/CertificateList;)V
            areturn
         3: .line 78
      StackMap locals: org.bouncycastle.asn1.ASN1Sequence
      StackMap stack:
            aconst_null
            areturn
        end local 2 // org.bouncycastle.asn1.ASN1Sequence seq
        end local 1 // java.io.InputStream in
        end local 0 // org.bouncycastle.jce.provider.X509CRLParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/bouncycastle/jce/provider/X509CRLParser;
            0    4     1    in  Ljava/io/InputStream;
            1    4     2   seq  Lorg/bouncycastle/asn1/ASN1Sequence;
    Exceptions:
      throws java.io.IOException, java.security.cert.CRLException
    MethodParameters:
      Name  Flags
      in    

  public void engineInit(java.io.InputStream);
    descriptor: (Ljava/io/InputStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.bouncycastle.jce.provider.X509CRLParser this
        start local 1 // java.io.InputStream in
         0: .line 83
            aload 0 /* this */
            aload 1 /* in */
            putfield org.bouncycastle.jce.provider.X509CRLParser.currentStream:Ljava/io/InputStream;
         1: .line 84
            aload 0 /* this */
            aconst_null
            putfield org.bouncycastle.jce.provider.X509CRLParser.sData:Lorg/bouncycastle/asn1/ASN1Set;
         2: .line 85
            aload 0 /* this */
            iconst_0
            putfield org.bouncycastle.jce.provider.X509CRLParser.sDataObjectCount:I
         3: .line 87
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CRLParser.currentStream:Ljava/io/InputStream;
            invokevirtual java.io.InputStream.markSupported:()Z
            ifne 5
         4: .line 89
            aload 0 /* this */
            new java.io.BufferedInputStream
            dup
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CRLParser.currentStream:Ljava/io/InputStream;
            invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
            putfield org.bouncycastle.jce.provider.X509CRLParser.currentStream:Ljava/io/InputStream;
         5: .line 91
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.io.InputStream in
        end local 0 // org.bouncycastle.jce.provider.X509CRLParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/bouncycastle/jce/provider/X509CRLParser;
            0    6     1    in  Ljava/io/InputStream;
    MethodParameters:
      Name  Flags
      in    

  public java.lang.Object engineRead();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.bouncycastle.jce.provider.X509CRLParser this
         0: .line 98
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CRLParser.sData:Lorg/bouncycastle/asn1/ASN1Set;
            ifnull 7
         1: .line 100
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CRLParser.sDataObjectCount:I
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CRLParser.sData:Lorg/bouncycastle/asn1/ASN1Set;
            invokevirtual org.bouncycastle.asn1.ASN1Set.size:()I
            if_icmpeq 4
         2: .line 102
            aload 0 /* this */
            invokevirtual org.bouncycastle.jce.provider.X509CRLParser.getCRL:()Ljava/security/cert/CRL;
         3: areturn
         4: .line 106
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield org.bouncycastle.jce.provider.X509CRLParser.sData:Lorg/bouncycastle/asn1/ASN1Set;
         5: .line 107
            aload 0 /* this */
            iconst_0
            putfield org.bouncycastle.jce.provider.X509CRLParser.sDataObjectCount:I
         6: .line 108
            aconst_null
            areturn
         7: .line 112
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CRLParser.currentStream:Ljava/io/InputStream;
            bipush 10
            invokevirtual java.io.InputStream.mark:(I)V
         8: .line 113
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CRLParser.currentStream:Ljava/io/InputStream;
            invokevirtual java.io.InputStream.read:()I
            istore 1 /* tag */
        start local 1 // int tag
         9: .line 115
            iload 1 /* tag */
            iconst_m1
            if_icmpne 11
        10: .line 117
            aconst_null
            areturn
        11: .line 120
      StackMap locals: int
      StackMap stack:
            iload 1 /* tag */
            bipush 48
            if_icmpeq 15
        12: .line 122
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CRLParser.currentStream:Ljava/io/InputStream;
            invokevirtual java.io.InputStream.reset:()V
        13: .line 123
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CRLParser.currentStream:Ljava/io/InputStream;
            invokevirtual org.bouncycastle.jce.provider.X509CRLParser.readPEMCRL:(Ljava/io/InputStream;)Ljava/security/cert/CRL;
        14: areturn
        15: .line 127
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CRLParser.currentStream:Ljava/io/InputStream;
            invokevirtual java.io.InputStream.reset:()V
        16: .line 128
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CRLParser.currentStream:Ljava/io/InputStream;
            invokevirtual org.bouncycastle.jce.provider.X509CRLParser.readDERCRL:(Ljava/io/InputStream;)Ljava/security/cert/CRL;
        17: areturn
        end local 1 // int tag
        18: .line 131
      StackMap locals: org.bouncycastle.jce.provider.X509CRLParser
      StackMap stack: java.lang.Exception
            astore 1 /* e */
        start local 1 // java.lang.Exception e
        19: .line 133
            new org.bouncycastle.x509.util.StreamParsingException
            dup
            aload 1 /* e */
            invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
            aload 1 /* e */
            invokespecial org.bouncycastle.x509.util.StreamParsingException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.lang.Exception e
        end local 0 // org.bouncycastle.jce.provider.X509CRLParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   20     0  this  Lorg/bouncycastle/jce/provider/X509CRLParser;
            9   18     1   tag  I
           19   20     1     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     3      18  Class java.lang.Exception
           4     6      18  Class java.lang.Exception
           7    10      18  Class java.lang.Exception
          11    14      18  Class java.lang.Exception
          15    17      18  Class java.lang.Exception
    Exceptions:
      throws org.bouncycastle.x509.util.StreamParsingException

  public java.util.Collection engineReadAll();
    descriptor: ()Ljava/util/Collection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.bouncycastle.jce.provider.X509CRLParser this
         0: .line 141
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* certs */
        start local 2 // java.util.List certs
         1: .line 143
            goto 3
        start local 1 // java.security.cert.CRL crl
         2: .line 145
      StackMap locals: java.security.cert.CRL java.util.List
      StackMap stack:
            aload 2 /* certs */
            aload 1 /* crl */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 1 // java.security.cert.CRL crl
         3: .line 143
      StackMap locals: org.bouncycastle.jce.provider.X509CRLParser top java.util.List
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bouncycastle.jce.provider.X509CRLParser.engineRead:()Ljava/lang/Object;
            checkcast java.security.cert.CRL
            dup
            astore 1 /* crl */
        start local 1 // java.security.cert.CRL crl
         4: ifnonnull 2
         5: .line 148
            aload 2 /* certs */
            areturn
        end local 2 // java.util.List certs
        end local 1 // java.security.cert.CRL crl
        end local 0 // org.bouncycastle.jce.provider.X509CRLParser this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lorg/bouncycastle/jce/provider/X509CRLParser;
            2    3     1    crl  Ljava/security/cert/CRL;
            4    6     1    crl  Ljava/security/cert/CRL;
            1    6     2  certs  Ljava/util/List;
    Exceptions:
      throws org.bouncycastle.x509.util.StreamParsingException
}
SourceFile: "X509CRLParser.java"