public class org.bouncycastle.cms.CMSSignedDataParser extends org.bouncycastle.cms.CMSContentInfoParser
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bouncycastle.cms.CMSSignedDataParser
  super_class: org.bouncycastle.cms.CMSContentInfoParser
{
  private static final org.bouncycastle.cms.CMSSignedHelper HELPER;
    descriptor: Lorg/bouncycastle/cms/CMSSignedHelper;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private org.bouncycastle.asn1.cms.SignedDataParser _signedData;
    descriptor: Lorg/bouncycastle/asn1/cms/SignedDataParser;
    flags: (0x0002) ACC_PRIVATE

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

  private org.bouncycastle.cms.CMSTypedStream _signedContent;
    descriptor: Lorg/bouncycastle/cms/CMSTypedStream;
    flags: (0x0002) ACC_PRIVATE

  private java.util.Map digests;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE

  private java.util.Set<org.bouncycastle.asn1.x509.AlgorithmIdentifier> digestAlgorithms;
    descriptor: Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Set<Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;>;

  private org.bouncycastle.cms.SignerInformationStore _signerInfoStore;
    descriptor: Lorg/bouncycastle/cms/SignerInformationStore;
    flags: (0x0002) ACC_PRIVATE

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

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

  private boolean _isCertCrlParsed;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 89
            getstatic org.bouncycastle.cms.CMSSignedHelper.INSTANCE:Lorg/bouncycastle/cms/CMSSignedHelper;
            putstatic org.bouncycastle.cms.CMSSignedDataParser.HELPER:Lorg/bouncycastle/cms/CMSSignedHelper;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.bouncycastle.operator.DigestCalculatorProvider, byte[]);
    descriptor: (Lorg/bouncycastle/operator/DigestCalculatorProvider;[B)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.bouncycastle.cms.CMSSignedDataParser this
        start local 1 // org.bouncycastle.operator.DigestCalculatorProvider digestCalculatorProvider
        start local 2 // byte[] sigBlock
         0: .line 106
            aload 0 /* this */
            aload 1 /* digestCalculatorProvider */
            new java.io.ByteArrayInputStream
            dup
            aload 2 /* sigBlock */
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            invokespecial org.bouncycastle.cms.CMSSignedDataParser.<init>:(Lorg/bouncycastle/operator/DigestCalculatorProvider;Ljava/io/InputStream;)V
         1: .line 107
            return
        end local 2 // byte[] sigBlock
        end local 1 // org.bouncycastle.operator.DigestCalculatorProvider digestCalculatorProvider
        end local 0 // org.bouncycastle.cms.CMSSignedDataParser this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    2     0                      this  Lorg/bouncycastle/cms/CMSSignedDataParser;
            0    2     1  digestCalculatorProvider  Lorg/bouncycastle/operator/DigestCalculatorProvider;
            0    2     2                  sigBlock  [B
    Exceptions:
      throws org.bouncycastle.cms.CMSException
    MethodParameters:
                          Name  Flags
      digestCalculatorProvider  
      sigBlock                  

  public void <init>(org.bouncycastle.operator.DigestCalculatorProvider, org.bouncycastle.cms.CMSTypedStream, byte[]);
    descriptor: (Lorg/bouncycastle/operator/DigestCalculatorProvider;Lorg/bouncycastle/cms/CMSTypedStream;[B)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.bouncycastle.cms.CMSSignedDataParser this
        start local 1 // org.bouncycastle.operator.DigestCalculatorProvider digestCalculatorProvider
        start local 2 // org.bouncycastle.cms.CMSTypedStream signedContent
        start local 3 // byte[] sigBlock
         0: .line 115
            aload 0 /* this */
            aload 1 /* digestCalculatorProvider */
            aload 2 /* signedContent */
            new java.io.ByteArrayInputStream
            dup
            aload 3 /* sigBlock */
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            invokespecial org.bouncycastle.cms.CMSSignedDataParser.<init>:(Lorg/bouncycastle/operator/DigestCalculatorProvider;Lorg/bouncycastle/cms/CMSTypedStream;Ljava/io/InputStream;)V
         1: .line 116
            return
        end local 3 // byte[] sigBlock
        end local 2 // org.bouncycastle.cms.CMSTypedStream signedContent
        end local 1 // org.bouncycastle.operator.DigestCalculatorProvider digestCalculatorProvider
        end local 0 // org.bouncycastle.cms.CMSSignedDataParser this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    2     0                      this  Lorg/bouncycastle/cms/CMSSignedDataParser;
            0    2     1  digestCalculatorProvider  Lorg/bouncycastle/operator/DigestCalculatorProvider;
            0    2     2             signedContent  Lorg/bouncycastle/cms/CMSTypedStream;
            0    2     3                  sigBlock  [B
    Exceptions:
      throws org.bouncycastle.cms.CMSException
    MethodParameters:
                          Name  Flags
      digestCalculatorProvider  
      signedContent             
      sigBlock                  

  public void <init>(org.bouncycastle.operator.DigestCalculatorProvider, java.io.InputStream);
    descriptor: (Lorg/bouncycastle/operator/DigestCalculatorProvider;Ljava/io/InputStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.bouncycastle.cms.CMSSignedDataParser this
        start local 1 // org.bouncycastle.operator.DigestCalculatorProvider digestCalculatorProvider
        start local 2 // java.io.InputStream sigData
         0: .line 126
            aload 0 /* this */
            aload 1 /* digestCalculatorProvider */
            aconst_null
            aload 2 /* sigData */
            invokespecial org.bouncycastle.cms.CMSSignedDataParser.<init>:(Lorg/bouncycastle/operator/DigestCalculatorProvider;Lorg/bouncycastle/cms/CMSTypedStream;Ljava/io/InputStream;)V
         1: .line 127
            return
        end local 2 // java.io.InputStream sigData
        end local 1 // org.bouncycastle.operator.DigestCalculatorProvider digestCalculatorProvider
        end local 0 // org.bouncycastle.cms.CMSSignedDataParser this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    2     0                      this  Lorg/bouncycastle/cms/CMSSignedDataParser;
            0    2     1  digestCalculatorProvider  Lorg/bouncycastle/operator/DigestCalculatorProvider;
            0    2     2                   sigData  Ljava/io/InputStream;
    Exceptions:
      throws org.bouncycastle.cms.CMSException
    MethodParameters:
                          Name  Flags
      digestCalculatorProvider  
      sigData                   

  public void <init>(org.bouncycastle.operator.DigestCalculatorProvider, org.bouncycastle.cms.CMSTypedStream, java.io.InputStream);
    descriptor: (Lorg/bouncycastle/operator/DigestCalculatorProvider;Lorg/bouncycastle/cms/CMSTypedStream;Ljava/io/InputStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=11, args_size=4
        start local 0 // org.bouncycastle.cms.CMSSignedDataParser this
        start local 1 // org.bouncycastle.operator.DigestCalculatorProvider digestCalculatorProvider
        start local 2 // org.bouncycastle.cms.CMSTypedStream signedContent
        start local 3 // java.io.InputStream sigData
         0: .line 142
            aload 0 /* this */
            aload 3 /* sigData */
            invokespecial org.bouncycastle.cms.CMSContentInfoParser.<init>:(Ljava/io/InputStream;)V
         1: .line 146
            aload 0 /* this */
            aload 2 /* signedContent */
            putfield org.bouncycastle.cms.CMSSignedDataParser._signedContent:Lorg/bouncycastle/cms/CMSTypedStream;
         2: .line 147
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSSignedDataParser._contentInfo:Lorg/bouncycastle/asn1/cms/ContentInfoParser;
            bipush 16
            invokevirtual org.bouncycastle.asn1.cms.ContentInfoParser.getContent:(I)Lorg/bouncycastle/asn1/ASN1Encodable;
            invokestatic org.bouncycastle.asn1.cms.SignedDataParser.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/cms/SignedDataParser;
            putfield org.bouncycastle.cms.CMSSignedDataParser._signedData:Lorg/bouncycastle/asn1/cms/SignedDataParser;
         3: .line 148
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.bouncycastle.cms.CMSSignedDataParser.digests:Ljava/util/Map;
         4: .line 150
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSSignedDataParser._signedData:Lorg/bouncycastle/asn1/cms/SignedDataParser;
            invokevirtual org.bouncycastle.asn1.cms.SignedDataParser.getDigestAlgorithms:()Lorg/bouncycastle/asn1/ASN1SetParser;
            astore 4 /* digAlgs */
        start local 4 // org.bouncycastle.asn1.ASN1SetParser digAlgs
         5: .line 153
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 6 /* algSet */
        start local 6 // java.util.Set algSet
         6: .line 155
            goto 14
        start local 5 // org.bouncycastle.asn1.ASN1Encodable o
         7: .line 157
      StackMap locals: org.bouncycastle.cms.CMSSignedDataParser org.bouncycastle.operator.DigestCalculatorProvider org.bouncycastle.cms.CMSTypedStream java.io.InputStream org.bouncycastle.asn1.ASN1SetParser org.bouncycastle.asn1.ASN1Encodable java.util.Set
      StackMap stack:
            aload 5 /* o */
            invokestatic org.bouncycastle.asn1.x509.AlgorithmIdentifier.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            astore 7 /* algId */
        start local 7 // org.bouncycastle.asn1.x509.AlgorithmIdentifier algId
         8: .line 159
            aload 6 /* algSet */
            aload 7 /* algId */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         9: .line 163
            aload 1 /* digestCalculatorProvider */
            aload 7 /* algId */
            invokeinterface org.bouncycastle.operator.DigestCalculatorProvider.get:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)Lorg/bouncycastle/operator/DigestCalculator;
            astore 8 /* calculator */
        start local 8 // org.bouncycastle.operator.DigestCalculator calculator
        10: .line 165
            aload 8 /* calculator */
            ifnull 14
        11: .line 167
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSSignedDataParser.digests:Ljava/util/Map;
            aload 7 /* algId */
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 8 /* calculator */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 8 // org.bouncycastle.operator.DigestCalculator calculator
        12: .line 169
            goto 14
        13: .line 170
      StackMap locals: org.bouncycastle.cms.CMSSignedDataParser org.bouncycastle.operator.DigestCalculatorProvider org.bouncycastle.cms.CMSTypedStream java.io.InputStream org.bouncycastle.asn1.ASN1SetParser org.bouncycastle.asn1.ASN1Encodable java.util.Set org.bouncycastle.asn1.x509.AlgorithmIdentifier
      StackMap stack: org.bouncycastle.operator.OperatorCreationException
            pop
        end local 7 // org.bouncycastle.asn1.x509.AlgorithmIdentifier algId
        end local 5 // org.bouncycastle.asn1.ASN1Encodable o
        14: .line 155
      StackMap locals: org.bouncycastle.cms.CMSSignedDataParser org.bouncycastle.operator.DigestCalculatorProvider org.bouncycastle.cms.CMSTypedStream java.io.InputStream org.bouncycastle.asn1.ASN1SetParser top java.util.Set
      StackMap stack:
            aload 4 /* digAlgs */
            invokeinterface org.bouncycastle.asn1.ASN1SetParser.readObject:()Lorg/bouncycastle/asn1/ASN1Encodable;
            dup
            astore 5 /* o */
        start local 5 // org.bouncycastle.asn1.ASN1Encodable o
        15: ifnonnull 7
        16: .line 176
            aload 0 /* this */
            aload 6 /* algSet */
            invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
            putfield org.bouncycastle.cms.CMSSignedDataParser.digestAlgorithms:Ljava/util/Set;
        17: .line 181
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSSignedDataParser._signedData:Lorg/bouncycastle/asn1/cms/SignedDataParser;
            invokevirtual org.bouncycastle.asn1.cms.SignedDataParser.getEncapContentInfo:()Lorg/bouncycastle/asn1/cms/ContentInfoParser;
            astore 7 /* cont */
        start local 7 // org.bouncycastle.asn1.cms.ContentInfoParser cont
        18: .line 182
            aload 7 /* cont */
            iconst_4
            invokevirtual org.bouncycastle.asn1.cms.ContentInfoParser.getContent:(I)Lorg/bouncycastle/asn1/ASN1Encodable;
            astore 8 /* contentParser */
        start local 8 // org.bouncycastle.asn1.ASN1Encodable contentParser
        19: .line 184
            aload 8 /* contentParser */
            instanceof org.bouncycastle.asn1.ASN1OctetStringParser
            ifeq 29
        20: .line 186
            aload 8 /* contentParser */
            checkcast org.bouncycastle.asn1.ASN1OctetStringParser
            astore 9 /* octs */
        start local 9 // org.bouncycastle.asn1.ASN1OctetStringParser octs
        21: .line 188
            new org.bouncycastle.cms.CMSTypedStream
            dup
        22: .line 189
            aload 7 /* cont */
            invokevirtual org.bouncycastle.asn1.cms.ContentInfoParser.getContentType:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 9 /* octs */
            invokeinterface org.bouncycastle.asn1.ASN1OctetStringParser.getOctetStream:()Ljava/io/InputStream;
        23: .line 188
            invokespecial org.bouncycastle.cms.CMSTypedStream.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Ljava/io/InputStream;)V
            astore 10 /* ctStr */
        start local 10 // org.bouncycastle.cms.CMSTypedStream ctStr
        24: .line 191
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSSignedDataParser._signedContent:Lorg/bouncycastle/cms/CMSTypedStream;
            ifnonnull 27
        25: .line 193
            aload 0 /* this */
            aload 10 /* ctStr */
            putfield org.bouncycastle.cms.CMSSignedDataParser._signedContent:Lorg/bouncycastle/cms/CMSTypedStream;
        26: .line 194
            goto 35
        27: .line 200
      StackMap locals: org.bouncycastle.cms.CMSSignedDataParser org.bouncycastle.operator.DigestCalculatorProvider org.bouncycastle.cms.CMSTypedStream java.io.InputStream org.bouncycastle.asn1.ASN1SetParser org.bouncycastle.asn1.ASN1Encodable java.util.Set org.bouncycastle.asn1.cms.ContentInfoParser org.bouncycastle.asn1.ASN1Encodable org.bouncycastle.asn1.ASN1OctetStringParser org.bouncycastle.cms.CMSTypedStream
      StackMap stack:
            aload 10 /* ctStr */
            invokevirtual org.bouncycastle.cms.CMSTypedStream.drain:()V
        end local 10 // org.bouncycastle.cms.CMSTypedStream ctStr
        end local 9 // org.bouncycastle.asn1.ASN1OctetStringParser octs
        28: .line 202
            goto 35
        29: .line 203
      StackMap locals:
      StackMap stack:
            aload 8 /* contentParser */
            ifnull 35
        30: .line 205
            new org.bouncycastle.cms.PKCS7TypedStream
            dup
            aload 7 /* cont */
            invokevirtual org.bouncycastle.asn1.cms.ContentInfoParser.getContentType:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 8 /* contentParser */
            invokespecial org.bouncycastle.cms.PKCS7TypedStream.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
            astore 9 /* pkcs7Stream */
        start local 9 // org.bouncycastle.cms.PKCS7TypedStream pkcs7Stream
        31: .line 207
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSSignedDataParser._signedContent:Lorg/bouncycastle/cms/CMSTypedStream;
            ifnonnull 34
        32: .line 209
            aload 0 /* this */
            aload 9 /* pkcs7Stream */
            putfield org.bouncycastle.cms.CMSSignedDataParser._signedContent:Lorg/bouncycastle/cms/CMSTypedStream;
        33: .line 210
            goto 35
        34: .line 216
      StackMap locals: org.bouncycastle.cms.PKCS7TypedStream
      StackMap stack:
            aload 9 /* pkcs7Stream */
            invokevirtual org.bouncycastle.cms.PKCS7TypedStream.drain:()V
        end local 9 // org.bouncycastle.cms.PKCS7TypedStream pkcs7Stream
        35: .line 220
      StackMap locals:
      StackMap stack:
            aload 2 /* signedContent */
            ifnonnull 38
        36: .line 222
            aload 0 /* this */
            aload 7 /* cont */
            invokevirtual org.bouncycastle.asn1.cms.ContentInfoParser.getContentType:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            putfield org.bouncycastle.cms.CMSSignedDataParser._signedContentType:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
        37: .line 223
            goto 42
        38: .line 226
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSSignedDataParser._signedContent:Lorg/bouncycastle/cms/CMSTypedStream;
            invokevirtual org.bouncycastle.cms.CMSTypedStream.getContentType:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            putfield org.bouncycastle.cms.CMSSignedDataParser._signedContentType:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
        end local 8 // org.bouncycastle.asn1.ASN1Encodable contentParser
        end local 7 // org.bouncycastle.asn1.cms.ContentInfoParser cont
        end local 6 // java.util.Set algSet
        end local 5 // org.bouncycastle.asn1.ASN1Encodable o
        end local 4 // org.bouncycastle.asn1.ASN1SetParser digAlgs
        39: .line 228
            goto 42
        40: .line 229
      StackMap locals: org.bouncycastle.cms.CMSSignedDataParser org.bouncycastle.operator.DigestCalculatorProvider org.bouncycastle.cms.CMSTypedStream java.io.InputStream
      StackMap stack: java.io.IOException
            astore 4 /* e */
        start local 4 // java.io.IOException e
        41: .line 231
            new org.bouncycastle.cms.CMSException
            dup
            new java.lang.StringBuilder
            dup
            ldc "io exception: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 4 /* e */
            invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        end local 4 // java.io.IOException e
        42: .line 233
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.io.InputStream sigData
        end local 2 // org.bouncycastle.cms.CMSTypedStream signedContent
        end local 1 // org.bouncycastle.operator.DigestCalculatorProvider digestCalculatorProvider
        end local 0 // org.bouncycastle.cms.CMSSignedDataParser this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   43     0                      this  Lorg/bouncycastle/cms/CMSSignedDataParser;
            0   43     1  digestCalculatorProvider  Lorg/bouncycastle/operator/DigestCalculatorProvider;
            0   43     2             signedContent  Lorg/bouncycastle/cms/CMSTypedStream;
            0   43     3                   sigData  Ljava/io/InputStream;
            5   39     4                   digAlgs  Lorg/bouncycastle/asn1/ASN1SetParser;
            7   14     5                         o  Lorg/bouncycastle/asn1/ASN1Encodable;
           15   39     5                         o  Lorg/bouncycastle/asn1/ASN1Encodable;
            6   39     6                    algSet  Ljava/util/Set<Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;>;
            8   14     7                     algId  Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
           10   12     8                calculator  Lorg/bouncycastle/operator/DigestCalculator;
           18   39     7                      cont  Lorg/bouncycastle/asn1/cms/ContentInfoParser;
           19   39     8             contentParser  Lorg/bouncycastle/asn1/ASN1Encodable;
           21   28     9                      octs  Lorg/bouncycastle/asn1/ASN1OctetStringParser;
           24   28    10                     ctStr  Lorg/bouncycastle/cms/CMSTypedStream;
           31   35     9               pkcs7Stream  Lorg/bouncycastle/cms/PKCS7TypedStream;
           41   42     4                         e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           9    12      13  Class org.bouncycastle.operator.OperatorCreationException
           1    39      40  Class java.io.IOException
    Exceptions:
      throws org.bouncycastle.cms.CMSException
    MethodParameters:
                          Name  Flags
      digestCalculatorProvider  
      signedContent             
      sigData                   

  public int getVersion();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.cms.CMSSignedDataParser this
         0: .line 242
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSSignedDataParser._signedData:Lorg/bouncycastle/asn1/cms/SignedDataParser;
            invokevirtual org.bouncycastle.asn1.cms.SignedDataParser.getVersion:()Lorg/bouncycastle/asn1/ASN1Integer;
            invokevirtual org.bouncycastle.asn1.ASN1Integer.getValue:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.intValue:()I
            ireturn
        end local 0 // org.bouncycastle.cms.CMSSignedDataParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/cms/CMSSignedDataParser;

  public java.util.Set<org.bouncycastle.asn1.x509.AlgorithmIdentifier> getDigestAlgorithmIDs();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.cms.CMSSignedDataParser this
         0: .line 252
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSSignedDataParser.digestAlgorithms:Ljava/util/Set;
            areturn
        end local 0 // org.bouncycastle.cms.CMSSignedDataParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/cms/CMSSignedDataParser;
    Signature: ()Ljava/util/Set<Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;>;

  public org.bouncycastle.cms.SignerInformationStore getSignerInfos();
    descriptor: ()Lorg/bouncycastle/cms/SignerInformationStore;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=8, args_size=1
        start local 0 // org.bouncycastle.cms.CMSSignedDataParser this
         0: .line 263
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSSignedDataParser._signerInfoStore:Lorg/bouncycastle/cms/SignerInformationStore;
            ifnonnull 20
         1: .line 265
            aload 0 /* this */
            invokevirtual org.bouncycastle.cms.CMSSignedDataParser.populateCertCrlSets:()V
         2: .line 267
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* signerInfos */
        start local 1 // java.util.List signerInfos
         3: .line 268
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 2 /* hashes */
        start local 2 // java.util.Map hashes
         4: .line 270
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSSignedDataParser.digests:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3 /* it */
        start local 3 // java.util.Iterator it
         5: .line 271
            goto 8
         6: .line 273
      StackMap locals: java.util.List java.util.Map java.util.Iterator
      StackMap stack:
            aload 3 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 4 /* digestKey */
        start local 4 // java.lang.Object digestKey
         7: .line 275
            aload 2 /* hashes */
            aload 4 /* digestKey */
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSSignedDataParser.digests:Ljava/util/Map;
            aload 4 /* digestKey */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.bouncycastle.operator.DigestCalculator
            invokeinterface org.bouncycastle.operator.DigestCalculator.getDigest:()[B
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 4 // java.lang.Object digestKey
         8: .line 271
      StackMap locals:
      StackMap stack:
            aload 3 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
         9: .line 280
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSSignedDataParser._signedData:Lorg/bouncycastle/asn1/cms/SignedDataParser;
            invokevirtual org.bouncycastle.asn1.cms.SignedDataParser.getSignerInfos:()Lorg/bouncycastle/asn1/ASN1SetParser;
            astore 4 /* s */
        start local 4 // org.bouncycastle.asn1.ASN1SetParser s
        10: .line 283
            goto 14
        start local 5 // org.bouncycastle.asn1.ASN1Encodable o
        11: .line 285
      StackMap locals: org.bouncycastle.asn1.ASN1SetParser org.bouncycastle.asn1.ASN1Encodable
      StackMap stack:
            aload 5 /* o */
            invokeinterface org.bouncycastle.asn1.ASN1Encodable.toASN1Primitive:()Lorg/bouncycastle/asn1/ASN1Primitive;
            invokestatic org.bouncycastle.asn1.cms.SignerInfo.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/cms/SignerInfo;
            astore 6 /* info */
        start local 6 // org.bouncycastle.asn1.cms.SignerInfo info
        12: .line 287
            aload 2 /* hashes */
            aload 6 /* info */
            invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getDigestAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast byte[]
            astore 7 /* hash */
        start local 7 // byte[] hash
        13: .line 289
            aload 1 /* signerInfos */
            new org.bouncycastle.cms.SignerInformation
            dup
            aload 6 /* info */
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSSignedDataParser._signedContentType:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aconst_null
            aload 7 /* hash */
            invokespecial org.bouncycastle.cms.SignerInformation.<init>:(Lorg/bouncycastle/asn1/cms/SignerInfo;Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/cms/CMSProcessable;[B)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // byte[] hash
        end local 6 // org.bouncycastle.asn1.cms.SignerInfo info
        end local 5 // org.bouncycastle.asn1.ASN1Encodable o
        14: .line 283
      StackMap locals:
      StackMap stack:
            aload 4 /* s */
            invokeinterface org.bouncycastle.asn1.ASN1SetParser.readObject:()Lorg/bouncycastle/asn1/ASN1Encodable;
            dup
            astore 5 /* o */
        start local 5 // org.bouncycastle.asn1.ASN1Encodable o
        15: ifnonnull 11
        end local 5 // org.bouncycastle.asn1.ASN1Encodable o
        end local 4 // org.bouncycastle.asn1.ASN1SetParser s
        16: .line 291
            goto 19
        17: .line 292
      StackMap locals: org.bouncycastle.cms.CMSSignedDataParser java.util.List java.util.Map java.util.Iterator
      StackMap stack: java.io.IOException
            astore 4 /* e */
        start local 4 // java.io.IOException e
        18: .line 294
            new org.bouncycastle.cms.CMSException
            dup
            new java.lang.StringBuilder
            dup
            ldc "io exception: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 4 /* e */
            invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        end local 4 // java.io.IOException e
        19: .line 297
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new org.bouncycastle.cms.SignerInformationStore
            dup
            aload 1 /* signerInfos */
            invokespecial org.bouncycastle.cms.SignerInformationStore.<init>:(Ljava/util/Collection;)V
            putfield org.bouncycastle.cms.CMSSignedDataParser._signerInfoStore:Lorg/bouncycastle/cms/SignerInformationStore;
        end local 3 // java.util.Iterator it
        end local 2 // java.util.Map hashes
        end local 1 // java.util.List signerInfos
        20: .line 300
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSSignedDataParser._signerInfoStore:Lorg/bouncycastle/cms/SignerInformationStore;
            areturn
        end local 0 // org.bouncycastle.cms.CMSSignedDataParser this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   21     0         this  Lorg/bouncycastle/cms/CMSSignedDataParser;
            3   20     1  signerInfos  Ljava/util/List;
            4   20     2       hashes  Ljava/util/Map;
            5   20     3           it  Ljava/util/Iterator;
            7    8     4    digestKey  Ljava/lang/Object;
           10   16     4            s  Lorg/bouncycastle/asn1/ASN1SetParser;
           11   14     5            o  Lorg/bouncycastle/asn1/ASN1Encodable;
           15   16     5            o  Lorg/bouncycastle/asn1/ASN1Encodable;
           12   14     6         info  Lorg/bouncycastle/asn1/cms/SignerInfo;
           13   14     7         hash  [B
           18   19     4            e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           9    16      17  Class java.io.IOException
    Exceptions:
      throws org.bouncycastle.cms.CMSException

  public org.bouncycastle.util.Store getCertificates();
    descriptor: ()Lorg/bouncycastle/util/Store;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bouncycastle.cms.CMSSignedDataParser this
         0: .line 311
            aload 0 /* this */
            invokevirtual org.bouncycastle.cms.CMSSignedDataParser.populateCertCrlSets:()V
         1: .line 313
            getstatic org.bouncycastle.cms.CMSSignedDataParser.HELPER:Lorg/bouncycastle/cms/CMSSignedHelper;
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSSignedDataParser._certSet:Lorg/bouncycastle/asn1/ASN1Set;
            invokevirtual org.bouncycastle.cms.CMSSignedHelper.getCertificates:(Lorg/bouncycastle/asn1/ASN1Set;)Lorg/bouncycastle/util/Store;
            areturn
        end local 0 // org.bouncycastle.cms.CMSSignedDataParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bouncycastle/cms/CMSSignedDataParser;
    Exceptions:
      throws org.bouncycastle.cms.CMSException

  public org.bouncycastle.util.Store getCRLs();
    descriptor: ()Lorg/bouncycastle/util/Store;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bouncycastle.cms.CMSSignedDataParser this
         0: .line 324
            aload 0 /* this */
            invokevirtual org.bouncycastle.cms.CMSSignedDataParser.populateCertCrlSets:()V
         1: .line 326
            getstatic org.bouncycastle.cms.CMSSignedDataParser.HELPER:Lorg/bouncycastle/cms/CMSSignedHelper;
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSSignedDataParser._crlSet:Lorg/bouncycastle/asn1/ASN1Set;
            invokevirtual org.bouncycastle.cms.CMSSignedHelper.getCRLs:(Lorg/bouncycastle/asn1/ASN1Set;)Lorg/bouncycastle/util/Store;
            areturn
        end local 0 // org.bouncycastle.cms.CMSSignedDataParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bouncycastle/cms/CMSSignedDataParser;
    Exceptions:
      throws org.bouncycastle.cms.CMSException

  public org.bouncycastle.util.Store getAttributeCertificates();
    descriptor: ()Lorg/bouncycastle/util/Store;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bouncycastle.cms.CMSSignedDataParser this
         0: .line 337
            aload 0 /* this */
            invokevirtual org.bouncycastle.cms.CMSSignedDataParser.populateCertCrlSets:()V
         1: .line 339
            getstatic org.bouncycastle.cms.CMSSignedDataParser.HELPER:Lorg/bouncycastle/cms/CMSSignedHelper;
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSSignedDataParser._certSet:Lorg/bouncycastle/asn1/ASN1Set;
            invokevirtual org.bouncycastle.cms.CMSSignedHelper.getAttributeCertificates:(Lorg/bouncycastle/asn1/ASN1Set;)Lorg/bouncycastle/util/Store;
            areturn
        end local 0 // org.bouncycastle.cms.CMSSignedDataParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bouncycastle/cms/CMSSignedDataParser;
    Exceptions:
      throws org.bouncycastle.cms.CMSException

  public org.bouncycastle.util.Store getOtherRevocationInfo(org.bouncycastle.asn1.ASN1ObjectIdentifier);
    descriptor: (Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Lorg/bouncycastle/util/Store;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.bouncycastle.cms.CMSSignedDataParser this
        start local 1 // org.bouncycastle.asn1.ASN1ObjectIdentifier otherRevocationInfoFormat
         0: .line 353
            aload 0 /* this */
            invokevirtual org.bouncycastle.cms.CMSSignedDataParser.populateCertCrlSets:()V
         1: .line 355
            getstatic org.bouncycastle.cms.CMSSignedDataParser.HELPER:Lorg/bouncycastle/cms/CMSSignedHelper;
            aload 1 /* otherRevocationInfoFormat */
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSSignedDataParser._crlSet:Lorg/bouncycastle/asn1/ASN1Set;
            invokevirtual org.bouncycastle.cms.CMSSignedHelper.getOtherRevocationInfo:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Set;)Lorg/bouncycastle/util/Store;
            areturn
        end local 1 // org.bouncycastle.asn1.ASN1ObjectIdentifier otherRevocationInfoFormat
        end local 0 // org.bouncycastle.cms.CMSSignedDataParser this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0    2     0                       this  Lorg/bouncycastle/cms/CMSSignedDataParser;
            0    2     1  otherRevocationInfoFormat  Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
    Exceptions:
      throws org.bouncycastle.cms.CMSException
    MethodParameters:
                           Name  Flags
      otherRevocationInfoFormat  

  private void populateCertCrlSets();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.bouncycastle.cms.CMSSignedDataParser this
         0: .line 361
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSSignedDataParser._isCertCrlParsed:Z
            ifeq 2
         1: .line 363
            return
         2: .line 366
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield org.bouncycastle.cms.CMSSignedDataParser._isCertCrlParsed:Z
         3: .line 371
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSSignedDataParser._signedData:Lorg/bouncycastle/asn1/cms/SignedDataParser;
            invokevirtual org.bouncycastle.asn1.cms.SignedDataParser.getCertificates:()Lorg/bouncycastle/asn1/ASN1SetParser;
            invokestatic org.bouncycastle.cms.CMSSignedDataParser.getASN1Set:(Lorg/bouncycastle/asn1/ASN1SetParser;)Lorg/bouncycastle/asn1/ASN1Set;
            putfield org.bouncycastle.cms.CMSSignedDataParser._certSet:Lorg/bouncycastle/asn1/ASN1Set;
         4: .line 372
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSSignedDataParser._signedData:Lorg/bouncycastle/asn1/cms/SignedDataParser;
            invokevirtual org.bouncycastle.asn1.cms.SignedDataParser.getCrls:()Lorg/bouncycastle/asn1/ASN1SetParser;
            invokestatic org.bouncycastle.cms.CMSSignedDataParser.getASN1Set:(Lorg/bouncycastle/asn1/ASN1SetParser;)Lorg/bouncycastle/asn1/ASN1Set;
            putfield org.bouncycastle.cms.CMSSignedDataParser._crlSet:Lorg/bouncycastle/asn1/ASN1Set;
         5: .line 373
            goto 8
         6: .line 374
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 1 /* e */
        start local 1 // java.io.IOException e
         7: .line 376
            new org.bouncycastle.cms.CMSException
            dup
            ldc "problem parsing cert/crl sets"
            aload 1 /* e */
            invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        end local 1 // java.io.IOException e
         8: .line 378
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.bouncycastle.cms.CMSSignedDataParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/bouncycastle/cms/CMSSignedDataParser;
            7    8     1     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           3     5       6  Class java.io.IOException
    Exceptions:
      throws org.bouncycastle.cms.CMSException

  public java.lang.String getSignedContentTypeOID();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.cms.CMSSignedDataParser this
         0: .line 388
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSSignedDataParser._signedContentType:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
            areturn
        end local 0 // org.bouncycastle.cms.CMSSignedDataParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/cms/CMSSignedDataParser;

  public org.bouncycastle.cms.CMSTypedStream getSignedContent();
    descriptor: ()Lorg/bouncycastle/cms/CMSTypedStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.bouncycastle.cms.CMSSignedDataParser this
         0: .line 393
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSSignedDataParser._signedContent:Lorg/bouncycastle/cms/CMSTypedStream;
            ifnonnull 2
         1: .line 395
            aconst_null
            areturn
         2: .line 399
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSSignedDataParser.digests:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSSignedDataParser._signedContent:Lorg/bouncycastle/cms/CMSTypedStream;
            invokevirtual org.bouncycastle.cms.CMSTypedStream.getContentStream:()Ljava/io/InputStream;
         3: .line 398
            invokestatic org.bouncycastle.cms.CMSUtils.attachDigestsToInputStream:(Ljava/util/Collection;Ljava/io/InputStream;)Ljava/io/InputStream;
            astore 1 /* digStream */
        start local 1 // java.io.InputStream digStream
         4: .line 401
            new org.bouncycastle.cms.CMSTypedStream
            dup
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSSignedDataParser._signedContent:Lorg/bouncycastle/cms/CMSTypedStream;
            invokevirtual org.bouncycastle.cms.CMSTypedStream.getContentType:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 1 /* digStream */
            invokespecial org.bouncycastle.cms.CMSTypedStream.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Ljava/io/InputStream;)V
            areturn
        end local 1 // java.io.InputStream digStream
        end local 0 // org.bouncycastle.cms.CMSSignedDataParser this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lorg/bouncycastle/cms/CMSSignedDataParser;
            4    5     1  digStream  Ljava/io/InputStream;

  public static java.io.OutputStream replaceSigners(java.io.InputStream, org.bouncycastle.cms.SignerInformationStore, java.io.OutputStream);
    descriptor: (Ljava/io/InputStream;Lorg/bouncycastle/cms/SignerInformationStore;Ljava/io/OutputStream;)Ljava/io/OutputStream;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=14, args_size=3
        start local 0 // java.io.InputStream original
        start local 1 // org.bouncycastle.cms.SignerInformationStore signerInformationStore
        start local 2 // java.io.OutputStream out
         0: .line 423
            new org.bouncycastle.asn1.ASN1StreamParser
            dup
            aload 0 /* original */
            invokespecial org.bouncycastle.asn1.ASN1StreamParser.<init>:(Ljava/io/InputStream;)V
            astore 3 /* in */
        start local 3 // org.bouncycastle.asn1.ASN1StreamParser in
         1: .line 424
            new org.bouncycastle.asn1.cms.ContentInfoParser
            dup
            aload 3 /* in */
            invokevirtual org.bouncycastle.asn1.ASN1StreamParser.readObject:()Lorg/bouncycastle/asn1/ASN1Encodable;
            checkcast org.bouncycastle.asn1.ASN1SequenceParser
            invokespecial org.bouncycastle.asn1.cms.ContentInfoParser.<init>:(Lorg/bouncycastle/asn1/ASN1SequenceParser;)V
            astore 4 /* contentInfo */
        start local 4 // org.bouncycastle.asn1.cms.ContentInfoParser contentInfo
         2: .line 425
            aload 4 /* contentInfo */
            bipush 16
            invokevirtual org.bouncycastle.asn1.cms.ContentInfoParser.getContent:(I)Lorg/bouncycastle/asn1/ASN1Encodable;
            invokestatic org.bouncycastle.asn1.cms.SignedDataParser.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/cms/SignedDataParser;
            astore 5 /* signedData */
        start local 5 // org.bouncycastle.asn1.cms.SignedDataParser signedData
         3: .line 427
            new org.bouncycastle.asn1.BERSequenceGenerator
            dup
            aload 2 /* out */
            invokespecial org.bouncycastle.asn1.BERSequenceGenerator.<init>:(Ljava/io/OutputStream;)V
            astore 6 /* sGen */
        start local 6 // org.bouncycastle.asn1.BERSequenceGenerator sGen
         4: .line 429
            aload 6 /* sGen */
            getstatic org.bouncycastle.asn1.cms.CMSObjectIdentifiers.signedData:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.BERSequenceGenerator.addObject:(Lorg/bouncycastle/asn1/ASN1Encodable;)V
         5: .line 431
            new org.bouncycastle.asn1.BERSequenceGenerator
            dup
            aload 6 /* sGen */
            invokevirtual org.bouncycastle.asn1.BERSequenceGenerator.getRawOutputStream:()Ljava/io/OutputStream;
            iconst_0
            iconst_1
            invokespecial org.bouncycastle.asn1.BERSequenceGenerator.<init>:(Ljava/io/OutputStream;IZ)V
            astore 7 /* sigGen */
        start local 7 // org.bouncycastle.asn1.BERSequenceGenerator sigGen
         6: .line 434
            aload 7 /* sigGen */
            aload 5 /* signedData */
            invokevirtual org.bouncycastle.asn1.cms.SignedDataParser.getVersion:()Lorg/bouncycastle/asn1/ASN1Integer;
            invokevirtual org.bouncycastle.asn1.BERSequenceGenerator.addObject:(Lorg/bouncycastle/asn1/ASN1Encodable;)V
         7: .line 437
            aload 5 /* signedData */
            invokevirtual org.bouncycastle.asn1.cms.SignedDataParser.getDigestAlgorithms:()Lorg/bouncycastle/asn1/ASN1SetParser;
            invokeinterface org.bouncycastle.asn1.ASN1SetParser.toASN1Primitive:()Lorg/bouncycastle/asn1/ASN1Primitive;
            pop
         8: .line 439
            new org.bouncycastle.asn1.ASN1EncodableVector
            dup
            invokespecial org.bouncycastle.asn1.ASN1EncodableVector.<init>:()V
            astore 8 /* digestAlgs */
        start local 8 // org.bouncycastle.asn1.ASN1EncodableVector digestAlgs
         9: .line 441
            aload 1 /* signerInformationStore */
            invokevirtual org.bouncycastle.cms.SignerInformationStore.getSigners:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 9 /* it */
        start local 9 // java.util.Iterator it
        10: goto 13
        11: .line 443
      StackMap locals: java.io.InputStream org.bouncycastle.cms.SignerInformationStore java.io.OutputStream org.bouncycastle.asn1.ASN1StreamParser org.bouncycastle.asn1.cms.ContentInfoParser org.bouncycastle.asn1.cms.SignedDataParser org.bouncycastle.asn1.BERSequenceGenerator org.bouncycastle.asn1.BERSequenceGenerator org.bouncycastle.asn1.ASN1EncodableVector java.util.Iterator
      StackMap stack:
            aload 9 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.bouncycastle.cms.SignerInformation
            astore 10 /* signer */
        start local 10 // org.bouncycastle.cms.SignerInformation signer
        12: .line 444
            aload 8 /* digestAlgs */
            getstatic org.bouncycastle.cms.CMSSignedHelper.INSTANCE:Lorg/bouncycastle/cms/CMSSignedHelper;
            aload 10 /* signer */
            invokevirtual org.bouncycastle.cms.SignerInformation.getDigestAlgorithmID:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokevirtual org.bouncycastle.cms.CMSSignedHelper.fixAlgID:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/ASN1Encodable;)V
        end local 10 // org.bouncycastle.cms.SignerInformation signer
        13: .line 441
      StackMap locals:
      StackMap stack:
            aload 9 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        end local 9 // java.util.Iterator it
        14: .line 447
            aload 7 /* sigGen */
            invokevirtual org.bouncycastle.asn1.BERSequenceGenerator.getRawOutputStream:()Ljava/io/OutputStream;
            new org.bouncycastle.asn1.DERSet
            dup
            aload 8 /* digestAlgs */
            invokespecial org.bouncycastle.asn1.DERSet.<init>:(Lorg/bouncycastle/asn1/ASN1EncodableVector;)V
            invokevirtual org.bouncycastle.asn1.DERSet.getEncoded:()[B
            invokevirtual java.io.OutputStream.write:([B)V
        15: .line 450
            aload 5 /* signedData */
            invokevirtual org.bouncycastle.asn1.cms.SignedDataParser.getEncapContentInfo:()Lorg/bouncycastle/asn1/cms/ContentInfoParser;
            astore 9 /* encapContentInfo */
        start local 9 // org.bouncycastle.asn1.cms.ContentInfoParser encapContentInfo
        16: .line 452
            new org.bouncycastle.asn1.BERSequenceGenerator
            dup
            aload 7 /* sigGen */
            invokevirtual org.bouncycastle.asn1.BERSequenceGenerator.getRawOutputStream:()Ljava/io/OutputStream;
            invokespecial org.bouncycastle.asn1.BERSequenceGenerator.<init>:(Ljava/io/OutputStream;)V
            astore 10 /* eiGen */
        start local 10 // org.bouncycastle.asn1.BERSequenceGenerator eiGen
        17: .line 454
            aload 10 /* eiGen */
            aload 9 /* encapContentInfo */
            invokevirtual org.bouncycastle.asn1.cms.ContentInfoParser.getContentType:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.BERSequenceGenerator.addObject:(Lorg/bouncycastle/asn1/ASN1Encodable;)V
        18: .line 456
            aload 9 /* encapContentInfo */
            aload 10 /* eiGen */
            invokevirtual org.bouncycastle.asn1.BERSequenceGenerator.getRawOutputStream:()Ljava/io/OutputStream;
            invokestatic org.bouncycastle.cms.CMSSignedDataParser.pipeEncapsulatedOctetString:(Lorg/bouncycastle/asn1/cms/ContentInfoParser;Ljava/io/OutputStream;)V
        19: .line 458
            aload 10 /* eiGen */
            invokevirtual org.bouncycastle.asn1.BERSequenceGenerator.close:()V
        20: .line 461
            aload 7 /* sigGen */
            aload 5 /* signedData */
            invokevirtual org.bouncycastle.asn1.cms.SignedDataParser.getCertificates:()Lorg/bouncycastle/asn1/ASN1SetParser;
            iconst_0
            invokestatic org.bouncycastle.cms.CMSSignedDataParser.writeSetToGeneratorTagged:(Lorg/bouncycastle/asn1/ASN1Generator;Lorg/bouncycastle/asn1/ASN1SetParser;I)V
        21: .line 462
            aload 7 /* sigGen */
            aload 5 /* signedData */
            invokevirtual org.bouncycastle.asn1.cms.SignedDataParser.getCrls:()Lorg/bouncycastle/asn1/ASN1SetParser;
            iconst_1
            invokestatic org.bouncycastle.cms.CMSSignedDataParser.writeSetToGeneratorTagged:(Lorg/bouncycastle/asn1/ASN1Generator;Lorg/bouncycastle/asn1/ASN1SetParser;I)V
        22: .line 465
            new org.bouncycastle.asn1.ASN1EncodableVector
            dup
            invokespecial org.bouncycastle.asn1.ASN1EncodableVector.<init>:()V
            astore 11 /* signerInfos */
        start local 11 // org.bouncycastle.asn1.ASN1EncodableVector signerInfos
        23: .line 466
            aload 1 /* signerInformationStore */
            invokevirtual org.bouncycastle.cms.SignerInformationStore.getSigners:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 12 /* it */
        start local 12 // java.util.Iterator it
        24: goto 27
        25: .line 468
      StackMap locals: java.io.InputStream org.bouncycastle.cms.SignerInformationStore java.io.OutputStream org.bouncycastle.asn1.ASN1StreamParser org.bouncycastle.asn1.cms.ContentInfoParser org.bouncycastle.asn1.cms.SignedDataParser org.bouncycastle.asn1.BERSequenceGenerator org.bouncycastle.asn1.BERSequenceGenerator org.bouncycastle.asn1.ASN1EncodableVector org.bouncycastle.asn1.cms.ContentInfoParser org.bouncycastle.asn1.BERSequenceGenerator org.bouncycastle.asn1.ASN1EncodableVector java.util.Iterator
      StackMap stack:
            aload 12 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.bouncycastle.cms.SignerInformation
            astore 13 /* signer */
        start local 13 // org.bouncycastle.cms.SignerInformation signer
        26: .line 470
            aload 11 /* signerInfos */
            aload 13 /* signer */
            invokevirtual org.bouncycastle.cms.SignerInformation.toASN1Structure:()Lorg/bouncycastle/asn1/cms/SignerInfo;
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/ASN1Encodable;)V
        end local 13 // org.bouncycastle.cms.SignerInformation signer
        27: .line 466
      StackMap locals:
      StackMap stack:
            aload 12 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 25
        end local 12 // java.util.Iterator it
        28: .line 473
            aload 7 /* sigGen */
            invokevirtual org.bouncycastle.asn1.BERSequenceGenerator.getRawOutputStream:()Ljava/io/OutputStream;
            new org.bouncycastle.asn1.DERSet
            dup
            aload 11 /* signerInfos */
            invokespecial org.bouncycastle.asn1.DERSet.<init>:(Lorg/bouncycastle/asn1/ASN1EncodableVector;)V
            invokevirtual org.bouncycastle.asn1.DERSet.getEncoded:()[B
            invokevirtual java.io.OutputStream.write:([B)V
        29: .line 475
            aload 7 /* sigGen */
            invokevirtual org.bouncycastle.asn1.BERSequenceGenerator.close:()V
        30: .line 477
            aload 6 /* sGen */
            invokevirtual org.bouncycastle.asn1.BERSequenceGenerator.close:()V
        31: .line 479
            aload 2 /* out */
            areturn
        end local 11 // org.bouncycastle.asn1.ASN1EncodableVector signerInfos
        end local 10 // org.bouncycastle.asn1.BERSequenceGenerator eiGen
        end local 9 // org.bouncycastle.asn1.cms.ContentInfoParser encapContentInfo
        end local 8 // org.bouncycastle.asn1.ASN1EncodableVector digestAlgs
        end local 7 // org.bouncycastle.asn1.BERSequenceGenerator sigGen
        end local 6 // org.bouncycastle.asn1.BERSequenceGenerator sGen
        end local 5 // org.bouncycastle.asn1.cms.SignedDataParser signedData
        end local 4 // org.bouncycastle.asn1.cms.ContentInfoParser contentInfo
        end local 3 // org.bouncycastle.asn1.ASN1StreamParser in
        end local 2 // java.io.OutputStream out
        end local 1 // org.bouncycastle.cms.SignerInformationStore signerInformationStore
        end local 0 // java.io.InputStream original
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   32     0                original  Ljava/io/InputStream;
            0   32     1  signerInformationStore  Lorg/bouncycastle/cms/SignerInformationStore;
            0   32     2                     out  Ljava/io/OutputStream;
            1   32     3                      in  Lorg/bouncycastle/asn1/ASN1StreamParser;
            2   32     4             contentInfo  Lorg/bouncycastle/asn1/cms/ContentInfoParser;
            3   32     5              signedData  Lorg/bouncycastle/asn1/cms/SignedDataParser;
            4   32     6                    sGen  Lorg/bouncycastle/asn1/BERSequenceGenerator;
            6   32     7                  sigGen  Lorg/bouncycastle/asn1/BERSequenceGenerator;
            9   32     8              digestAlgs  Lorg/bouncycastle/asn1/ASN1EncodableVector;
           10   14     9                      it  Ljava/util/Iterator;
           12   13    10                  signer  Lorg/bouncycastle/cms/SignerInformation;
           16   32     9        encapContentInfo  Lorg/bouncycastle/asn1/cms/ContentInfoParser;
           17   32    10                   eiGen  Lorg/bouncycastle/asn1/BERSequenceGenerator;
           23   32    11             signerInfos  Lorg/bouncycastle/asn1/ASN1EncodableVector;
           24   28    12                      it  Ljava/util/Iterator;
           26   27    13                  signer  Lorg/bouncycastle/cms/SignerInformation;
    Exceptions:
      throws org.bouncycastle.cms.CMSException, java.io.IOException
    MethodParameters:
                        Name  Flags
      original                
      signerInformationStore  
      out                     

  public static java.io.OutputStream replaceCertificatesAndCRLs(java.io.InputStream, org.bouncycastle.util.Store, org.bouncycastle.util.Store, org.bouncycastle.util.Store, java.io.OutputStream);
    descriptor: (Ljava/io/InputStream;Lorg/bouncycastle/util/Store;Lorg/bouncycastle/util/Store;Lorg/bouncycastle/util/Store;Ljava/io/OutputStream;)Ljava/io/OutputStream;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=14, args_size=5
        start local 0 // java.io.InputStream original
        start local 1 // org.bouncycastle.util.Store certs
        start local 2 // org.bouncycastle.util.Store crls
        start local 3 // org.bouncycastle.util.Store attrCerts
        start local 4 // java.io.OutputStream out
         0: .line 504
            new org.bouncycastle.asn1.ASN1StreamParser
            dup
            aload 0 /* original */
            invokespecial org.bouncycastle.asn1.ASN1StreamParser.<init>:(Ljava/io/InputStream;)V
            astore 5 /* in */
        start local 5 // org.bouncycastle.asn1.ASN1StreamParser in
         1: .line 505
            new org.bouncycastle.asn1.cms.ContentInfoParser
            dup
            aload 5 /* in */
            invokevirtual org.bouncycastle.asn1.ASN1StreamParser.readObject:()Lorg/bouncycastle/asn1/ASN1Encodable;
            checkcast org.bouncycastle.asn1.ASN1SequenceParser
            invokespecial org.bouncycastle.asn1.cms.ContentInfoParser.<init>:(Lorg/bouncycastle/asn1/ASN1SequenceParser;)V
            astore 6 /* contentInfo */
        start local 6 // org.bouncycastle.asn1.cms.ContentInfoParser contentInfo
         2: .line 506
            aload 6 /* contentInfo */
            bipush 16
            invokevirtual org.bouncycastle.asn1.cms.ContentInfoParser.getContent:(I)Lorg/bouncycastle/asn1/ASN1Encodable;
            invokestatic org.bouncycastle.asn1.cms.SignedDataParser.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/cms/SignedDataParser;
            astore 7 /* signedData */
        start local 7 // org.bouncycastle.asn1.cms.SignedDataParser signedData
         3: .line 508
            new org.bouncycastle.asn1.BERSequenceGenerator
            dup
            aload 4 /* out */
            invokespecial org.bouncycastle.asn1.BERSequenceGenerator.<init>:(Ljava/io/OutputStream;)V
            astore 8 /* sGen */
        start local 8 // org.bouncycastle.asn1.BERSequenceGenerator sGen
         4: .line 510
            aload 8 /* sGen */
            getstatic org.bouncycastle.asn1.cms.CMSObjectIdentifiers.signedData:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.BERSequenceGenerator.addObject:(Lorg/bouncycastle/asn1/ASN1Encodable;)V
         5: .line 512
            new org.bouncycastle.asn1.BERSequenceGenerator
            dup
            aload 8 /* sGen */
            invokevirtual org.bouncycastle.asn1.BERSequenceGenerator.getRawOutputStream:()Ljava/io/OutputStream;
            iconst_0
            iconst_1
            invokespecial org.bouncycastle.asn1.BERSequenceGenerator.<init>:(Ljava/io/OutputStream;IZ)V
            astore 9 /* sigGen */
        start local 9 // org.bouncycastle.asn1.BERSequenceGenerator sigGen
         6: .line 515
            aload 9 /* sigGen */
            aload 7 /* signedData */
            invokevirtual org.bouncycastle.asn1.cms.SignedDataParser.getVersion:()Lorg/bouncycastle/asn1/ASN1Integer;
            invokevirtual org.bouncycastle.asn1.BERSequenceGenerator.addObject:(Lorg/bouncycastle/asn1/ASN1Encodable;)V
         7: .line 518
            aload 9 /* sigGen */
            invokevirtual org.bouncycastle.asn1.BERSequenceGenerator.getRawOutputStream:()Ljava/io/OutputStream;
            aload 7 /* signedData */
            invokevirtual org.bouncycastle.asn1.cms.SignedDataParser.getDigestAlgorithms:()Lorg/bouncycastle/asn1/ASN1SetParser;
            invokeinterface org.bouncycastle.asn1.ASN1SetParser.toASN1Primitive:()Lorg/bouncycastle/asn1/ASN1Primitive;
            invokevirtual org.bouncycastle.asn1.ASN1Primitive.getEncoded:()[B
            invokevirtual java.io.OutputStream.write:([B)V
         8: .line 521
            aload 7 /* signedData */
            invokevirtual org.bouncycastle.asn1.cms.SignedDataParser.getEncapContentInfo:()Lorg/bouncycastle/asn1/cms/ContentInfoParser;
            astore 10 /* encapContentInfo */
        start local 10 // org.bouncycastle.asn1.cms.ContentInfoParser encapContentInfo
         9: .line 523
            new org.bouncycastle.asn1.BERSequenceGenerator
            dup
            aload 9 /* sigGen */
            invokevirtual org.bouncycastle.asn1.BERSequenceGenerator.getRawOutputStream:()Ljava/io/OutputStream;
            invokespecial org.bouncycastle.asn1.BERSequenceGenerator.<init>:(Ljava/io/OutputStream;)V
            astore 11 /* eiGen */
        start local 11 // org.bouncycastle.asn1.BERSequenceGenerator eiGen
        10: .line 525
            aload 11 /* eiGen */
            aload 10 /* encapContentInfo */
            invokevirtual org.bouncycastle.asn1.cms.ContentInfoParser.getContentType:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.BERSequenceGenerator.addObject:(Lorg/bouncycastle/asn1/ASN1Encodable;)V
        11: .line 527
            aload 10 /* encapContentInfo */
            aload 11 /* eiGen */
            invokevirtual org.bouncycastle.asn1.BERSequenceGenerator.getRawOutputStream:()Ljava/io/OutputStream;
            invokestatic org.bouncycastle.cms.CMSSignedDataParser.pipeEncapsulatedOctetString:(Lorg/bouncycastle/asn1/cms/ContentInfoParser;Ljava/io/OutputStream;)V
        12: .line 529
            aload 11 /* eiGen */
            invokevirtual org.bouncycastle.asn1.BERSequenceGenerator.close:()V
        13: .line 534
            aload 7 /* signedData */
            invokevirtual org.bouncycastle.asn1.cms.SignedDataParser.getCertificates:()Lorg/bouncycastle/asn1/ASN1SetParser;
            invokestatic org.bouncycastle.cms.CMSSignedDataParser.getASN1Set:(Lorg/bouncycastle/asn1/ASN1SetParser;)Lorg/bouncycastle/asn1/ASN1Set;
            pop
        14: .line 535
            aload 7 /* signedData */
            invokevirtual org.bouncycastle.asn1.cms.SignedDataParser.getCrls:()Lorg/bouncycastle/asn1/ASN1SetParser;
            invokestatic org.bouncycastle.cms.CMSSignedDataParser.getASN1Set:(Lorg/bouncycastle/asn1/ASN1SetParser;)Lorg/bouncycastle/asn1/ASN1Set;
            pop
        15: .line 540
            aload 1 /* certs */
            ifnonnull 16
            aload 3 /* attrCerts */
            ifnull 24
        16: .line 542
      StackMap locals: java.io.InputStream org.bouncycastle.util.Store org.bouncycastle.util.Store org.bouncycastle.util.Store java.io.OutputStream org.bouncycastle.asn1.ASN1StreamParser org.bouncycastle.asn1.cms.ContentInfoParser org.bouncycastle.asn1.cms.SignedDataParser org.bouncycastle.asn1.BERSequenceGenerator org.bouncycastle.asn1.BERSequenceGenerator org.bouncycastle.asn1.cms.ContentInfoParser org.bouncycastle.asn1.BERSequenceGenerator
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 12 /* certificates */
        start local 12 // java.util.List certificates
        17: .line 544
            aload 1 /* certs */
            ifnull 19
        18: .line 546
            aload 12 /* certificates */
            aload 1 /* certs */
            invokestatic org.bouncycastle.cms.CMSUtils.getCertificatesFromStore:(Lorg/bouncycastle/util/Store;)Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
        19: .line 548
      StackMap locals: java.util.List
      StackMap stack:
            aload 3 /* attrCerts */
            ifnull 21
        20: .line 550
            aload 12 /* certificates */
            aload 3 /* attrCerts */
            invokestatic org.bouncycastle.cms.CMSUtils.getAttributeCertificatesFromStore:(Lorg/bouncycastle/util/Store;)Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
        21: .line 553
      StackMap locals:
      StackMap stack:
            aload 12 /* certificates */
            invokestatic org.bouncycastle.cms.CMSUtils.createBerSetFromList:(Ljava/util/List;)Lorg/bouncycastle/asn1/ASN1Set;
            astore 13 /* asn1Certs */
        start local 13 // org.bouncycastle.asn1.ASN1Set asn1Certs
        22: .line 555
            aload 13 /* asn1Certs */
            invokevirtual org.bouncycastle.asn1.ASN1Set.size:()I
            ifle 24
        23: .line 557
            aload 9 /* sigGen */
            invokevirtual org.bouncycastle.asn1.BERSequenceGenerator.getRawOutputStream:()Ljava/io/OutputStream;
            new org.bouncycastle.asn1.DERTaggedObject
            dup
            iconst_0
            iconst_0
            aload 13 /* asn1Certs */
            invokespecial org.bouncycastle.asn1.DERTaggedObject.<init>:(ZILorg/bouncycastle/asn1/ASN1Encodable;)V
            invokevirtual org.bouncycastle.asn1.DERTaggedObject.getEncoded:()[B
            invokevirtual java.io.OutputStream.write:([B)V
        end local 13 // org.bouncycastle.asn1.ASN1Set asn1Certs
        end local 12 // java.util.List certificates
        24: .line 561
      StackMap locals:
      StackMap stack:
            aload 2 /* crls */
            ifnull 28
        25: .line 563
            aload 2 /* crls */
            invokestatic org.bouncycastle.cms.CMSUtils.getCRLsFromStore:(Lorg/bouncycastle/util/Store;)Ljava/util/List;
            invokestatic org.bouncycastle.cms.CMSUtils.createBerSetFromList:(Ljava/util/List;)Lorg/bouncycastle/asn1/ASN1Set;
            astore 12 /* asn1Crls */
        start local 12 // org.bouncycastle.asn1.ASN1Set asn1Crls
        26: .line 565
            aload 12 /* asn1Crls */
            invokevirtual org.bouncycastle.asn1.ASN1Set.size:()I
            ifle 28
        27: .line 567
            aload 9 /* sigGen */
            invokevirtual org.bouncycastle.asn1.BERSequenceGenerator.getRawOutputStream:()Ljava/io/OutputStream;
            new org.bouncycastle.asn1.DERTaggedObject
            dup
            iconst_0
            iconst_1
            aload 12 /* asn1Crls */
            invokespecial org.bouncycastle.asn1.DERTaggedObject.<init>:(ZILorg/bouncycastle/asn1/ASN1Encodable;)V
            invokevirtual org.bouncycastle.asn1.DERTaggedObject.getEncoded:()[B
            invokevirtual java.io.OutputStream.write:([B)V
        end local 12 // org.bouncycastle.asn1.ASN1Set asn1Crls
        28: .line 571
      StackMap locals:
      StackMap stack:
            aload 9 /* sigGen */
            invokevirtual org.bouncycastle.asn1.BERSequenceGenerator.getRawOutputStream:()Ljava/io/OutputStream;
            aload 7 /* signedData */
            invokevirtual org.bouncycastle.asn1.cms.SignedDataParser.getSignerInfos:()Lorg/bouncycastle/asn1/ASN1SetParser;
            invokeinterface org.bouncycastle.asn1.ASN1SetParser.toASN1Primitive:()Lorg/bouncycastle/asn1/ASN1Primitive;
            invokevirtual org.bouncycastle.asn1.ASN1Primitive.getEncoded:()[B
            invokevirtual java.io.OutputStream.write:([B)V
        29: .line 573
            aload 9 /* sigGen */
            invokevirtual org.bouncycastle.asn1.BERSequenceGenerator.close:()V
        30: .line 575
            aload 8 /* sGen */
            invokevirtual org.bouncycastle.asn1.BERSequenceGenerator.close:()V
        31: .line 577
            aload 4 /* out */
            areturn
        end local 11 // org.bouncycastle.asn1.BERSequenceGenerator eiGen
        end local 10 // org.bouncycastle.asn1.cms.ContentInfoParser encapContentInfo
        end local 9 // org.bouncycastle.asn1.BERSequenceGenerator sigGen
        end local 8 // org.bouncycastle.asn1.BERSequenceGenerator sGen
        end local 7 // org.bouncycastle.asn1.cms.SignedDataParser signedData
        end local 6 // org.bouncycastle.asn1.cms.ContentInfoParser contentInfo
        end local 5 // org.bouncycastle.asn1.ASN1StreamParser in
        end local 4 // java.io.OutputStream out
        end local 3 // org.bouncycastle.util.Store attrCerts
        end local 2 // org.bouncycastle.util.Store crls
        end local 1 // org.bouncycastle.util.Store certs
        end local 0 // java.io.InputStream original
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   32     0          original  Ljava/io/InputStream;
            0   32     1             certs  Lorg/bouncycastle/util/Store;
            0   32     2              crls  Lorg/bouncycastle/util/Store;
            0   32     3         attrCerts  Lorg/bouncycastle/util/Store;
            0   32     4               out  Ljava/io/OutputStream;
            1   32     5                in  Lorg/bouncycastle/asn1/ASN1StreamParser;
            2   32     6       contentInfo  Lorg/bouncycastle/asn1/cms/ContentInfoParser;
            3   32     7        signedData  Lorg/bouncycastle/asn1/cms/SignedDataParser;
            4   32     8              sGen  Lorg/bouncycastle/asn1/BERSequenceGenerator;
            6   32     9            sigGen  Lorg/bouncycastle/asn1/BERSequenceGenerator;
            9   32    10  encapContentInfo  Lorg/bouncycastle/asn1/cms/ContentInfoParser;
           10   32    11             eiGen  Lorg/bouncycastle/asn1/BERSequenceGenerator;
           17   24    12      certificates  Ljava/util/List;
           22   24    13         asn1Certs  Lorg/bouncycastle/asn1/ASN1Set;
           26   28    12          asn1Crls  Lorg/bouncycastle/asn1/ASN1Set;
    Exceptions:
      throws org.bouncycastle.cms.CMSException, java.io.IOException
    MethodParameters:
           Name  Flags
      original   
      certs      
      crls       
      attrCerts  
      out        

  private static void writeSetToGeneratorTagged(org.bouncycastle.asn1.ASN1Generator, org.bouncycastle.asn1.ASN1SetParser, int);
    descriptor: (Lorg/bouncycastle/asn1/ASN1Generator;Lorg/bouncycastle/asn1/ASN1SetParser;I)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // org.bouncycastle.asn1.ASN1Generator asn1Gen
        start local 1 // org.bouncycastle.asn1.ASN1SetParser asn1SetParser
        start local 2 // int tagNo
         0: .line 586
            aload 1 /* asn1SetParser */
            invokestatic org.bouncycastle.cms.CMSSignedDataParser.getASN1Set:(Lorg/bouncycastle/asn1/ASN1SetParser;)Lorg/bouncycastle/asn1/ASN1Set;
            astore 3 /* asn1Set */
        start local 3 // org.bouncycastle.asn1.ASN1Set asn1Set
         1: .line 588
            aload 3 /* asn1Set */
            ifnull 6
         2: .line 590
            aload 1 /* asn1SetParser */
            instanceof org.bouncycastle.asn1.BERSetParser
            ifeq 5
         3: .line 592
            aload 0 /* asn1Gen */
            invokevirtual org.bouncycastle.asn1.ASN1Generator.getRawOutputStream:()Ljava/io/OutputStream;
            new org.bouncycastle.asn1.BERTaggedObject
            dup
            iconst_0
            iload 2 /* tagNo */
            aload 3 /* asn1Set */
            invokespecial org.bouncycastle.asn1.BERTaggedObject.<init>:(ZILorg/bouncycastle/asn1/ASN1Encodable;)V
            invokevirtual org.bouncycastle.asn1.BERTaggedObject.getEncoded:()[B
            invokevirtual java.io.OutputStream.write:([B)V
         4: .line 593
            goto 6
         5: .line 596
      StackMap locals: org.bouncycastle.asn1.ASN1Set
      StackMap stack:
            aload 0 /* asn1Gen */
            invokevirtual org.bouncycastle.asn1.ASN1Generator.getRawOutputStream:()Ljava/io/OutputStream;
            new org.bouncycastle.asn1.DERTaggedObject
            dup
            iconst_0
            iload 2 /* tagNo */
            aload 3 /* asn1Set */
            invokespecial org.bouncycastle.asn1.DERTaggedObject.<init>:(ZILorg/bouncycastle/asn1/ASN1Encodable;)V
            invokevirtual org.bouncycastle.asn1.DERTaggedObject.getEncoded:()[B
            invokevirtual java.io.OutputStream.write:([B)V
         6: .line 599
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.bouncycastle.asn1.ASN1Set asn1Set
        end local 2 // int tagNo
        end local 1 // org.bouncycastle.asn1.ASN1SetParser asn1SetParser
        end local 0 // org.bouncycastle.asn1.ASN1Generator asn1Gen
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0        asn1Gen  Lorg/bouncycastle/asn1/ASN1Generator;
            0    7     1  asn1SetParser  Lorg/bouncycastle/asn1/ASN1SetParser;
            0    7     2          tagNo  I
            1    7     3        asn1Set  Lorg/bouncycastle/asn1/ASN1Set;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
               Name  Flags
      asn1Gen        
      asn1SetParser  
      tagNo          

  private static org.bouncycastle.asn1.ASN1Set getASN1Set(org.bouncycastle.asn1.ASN1SetParser);
    descriptor: (Lorg/bouncycastle/asn1/ASN1SetParser;)Lorg/bouncycastle/asn1/ASN1Set;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.asn1.ASN1SetParser asn1SetParser
         0: .line 604
            aload 0 /* asn1SetParser */
            ifnonnull 2
         1: .line 605
            aconst_null
            goto 3
         2: .line 606
      StackMap locals:
      StackMap stack:
            aload 0 /* asn1SetParser */
            invokeinterface org.bouncycastle.asn1.ASN1SetParser.toASN1Primitive:()Lorg/bouncycastle/asn1/ASN1Primitive;
            invokestatic org.bouncycastle.asn1.ASN1Set.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/ASN1Set;
         3: .line 604
      StackMap locals:
      StackMap stack: org.bouncycastle.asn1.ASN1Set
            areturn
        end local 0 // org.bouncycastle.asn1.ASN1SetParser asn1SetParser
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0  asn1SetParser  Lorg/bouncycastle/asn1/ASN1SetParser;
    MethodParameters:
               Name  Flags
      asn1SetParser  

  private static void pipeEncapsulatedOctetString(org.bouncycastle.asn1.cms.ContentInfoParser, java.io.OutputStream);
    descriptor: (Lorg/bouncycastle/asn1/cms/ContentInfoParser;Ljava/io/OutputStream;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.bouncycastle.asn1.cms.ContentInfoParser encapContentInfo
        start local 1 // java.io.OutputStream rawOutputStream
         0: .line 613
            aload 0 /* encapContentInfo */
            iconst_4
            invokevirtual org.bouncycastle.asn1.cms.ContentInfoParser.getContent:(I)Lorg/bouncycastle/asn1/ASN1Encodable;
         1: .line 612
            checkcast org.bouncycastle.asn1.ASN1OctetStringParser
            astore 2 /* octs */
        start local 2 // org.bouncycastle.asn1.ASN1OctetStringParser octs
         2: .line 615
            aload 2 /* octs */
            ifnull 4
         3: .line 617
            aload 2 /* octs */
            aload 1 /* rawOutputStream */
            invokestatic org.bouncycastle.cms.CMSSignedDataParser.pipeOctetString:(Lorg/bouncycastle/asn1/ASN1OctetStringParser;Ljava/io/OutputStream;)V
         4: .line 638
      StackMap locals: org.bouncycastle.asn1.ASN1OctetStringParser
      StackMap stack:
            return
        end local 2 // org.bouncycastle.asn1.ASN1OctetStringParser octs
        end local 1 // java.io.OutputStream rawOutputStream
        end local 0 // org.bouncycastle.asn1.cms.ContentInfoParser encapContentInfo
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    5     0  encapContentInfo  Lorg/bouncycastle/asn1/cms/ContentInfoParser;
            0    5     1   rawOutputStream  Ljava/io/OutputStream;
            2    5     2              octs  Lorg/bouncycastle/asn1/ASN1OctetStringParser;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                  Name  Flags
      encapContentInfo  
      rawOutputStream   

  private static void pipeOctetString(org.bouncycastle.asn1.ASN1OctetStringParser, java.io.OutputStream);
    descriptor: (Lorg/bouncycastle/asn1/ASN1OctetStringParser;Ljava/io/OutputStream;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.bouncycastle.asn1.ASN1OctetStringParser octs
        start local 1 // java.io.OutputStream output
         0: .line 647
            aload 1 /* output */
            iconst_0
            iconst_1
            iconst_0
         1: .line 646
            invokestatic org.bouncycastle.cms.CMSUtils.createBEROctetOutputStream:(Ljava/io/OutputStream;IZI)Ljava/io/OutputStream;
            astore 2 /* outOctets */
        start local 2 // java.io.OutputStream outOctets
         2: .line 648
            aload 0 /* octs */
            invokeinterface org.bouncycastle.asn1.ASN1OctetStringParser.getOctetStream:()Ljava/io/InputStream;
            aload 2 /* outOctets */
            invokestatic org.bouncycastle.util.io.Streams.pipeAll:(Ljava/io/InputStream;Ljava/io/OutputStream;)V
         3: .line 649
            aload 2 /* outOctets */
            invokevirtual java.io.OutputStream.close:()V
         4: .line 650
            return
        end local 2 // java.io.OutputStream outOctets
        end local 1 // java.io.OutputStream output
        end local 0 // org.bouncycastle.asn1.ASN1OctetStringParser octs
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       octs  Lorg/bouncycastle/asn1/ASN1OctetStringParser;
            0    5     1     output  Ljava/io/OutputStream;
            2    5     2  outOctets  Ljava/io/OutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      octs    
      output  
}
SourceFile: "CMSSignedDataParser.java"