public class org.bouncycastle.cms.CMSSignedDataStreamGenerator extends org.bouncycastle.cms.CMSSignedGenerator
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bouncycastle.cms.CMSSignedDataStreamGenerator
  super_class: org.bouncycastle.cms.CMSSignedGenerator
{
  private int _bufferSize;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.cms.CMSSignedDataStreamGenerator this
         0: .line 57
            aload 0 /* this */
            invokespecial org.bouncycastle.cms.CMSSignedGenerator.<init>:()V
         1: .line 59
            return
        end local 0 // org.bouncycastle.cms.CMSSignedDataStreamGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bouncycastle/cms/CMSSignedDataStreamGenerator;

  public void setBufferSize(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.cms.CMSSignedDataStreamGenerator this
        start local 1 // int bufferSize
         0: .line 69
            aload 0 /* this */
            iload 1 /* bufferSize */
            putfield org.bouncycastle.cms.CMSSignedDataStreamGenerator._bufferSize:I
         1: .line 70
            return
        end local 1 // int bufferSize
        end local 0 // org.bouncycastle.cms.CMSSignedDataStreamGenerator this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/bouncycastle/cms/CMSSignedDataStreamGenerator;
            0    2     1  bufferSize  I
    MethodParameters:
            Name  Flags
      bufferSize  

  public java.io.OutputStream open(java.io.OutputStream);
    descriptor: (Ljava/io/OutputStream;)Ljava/io/OutputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.bouncycastle.cms.CMSSignedDataStreamGenerator this
        start local 1 // java.io.OutputStream out
         0: .line 80
            aload 0 /* this */
            aload 1 /* out */
            iconst_0
            invokevirtual org.bouncycastle.cms.CMSSignedDataStreamGenerator.open:(Ljava/io/OutputStream;Z)Ljava/io/OutputStream;
            areturn
        end local 1 // java.io.OutputStream out
        end local 0 // org.bouncycastle.cms.CMSSignedDataStreamGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/cms/CMSSignedDataStreamGenerator;
            0    1     1   out  Ljava/io/OutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      out   

  public java.io.OutputStream open(java.io.OutputStream, boolean);
    descriptor: (Ljava/io/OutputStream;Z)Ljava/io/OutputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.bouncycastle.cms.CMSSignedDataStreamGenerator this
        start local 1 // java.io.OutputStream out
        start local 2 // boolean encapsulate
         0: .line 94
            aload 0 /* this */
            getstatic org.bouncycastle.asn1.cms.CMSObjectIdentifiers.data:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 1 /* out */
            iload 2 /* encapsulate */
            invokevirtual org.bouncycastle.cms.CMSSignedDataStreamGenerator.open:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Ljava/io/OutputStream;Z)Ljava/io/OutputStream;
            areturn
        end local 2 // boolean encapsulate
        end local 1 // java.io.OutputStream out
        end local 0 // org.bouncycastle.cms.CMSSignedDataStreamGenerator this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/bouncycastle/cms/CMSSignedDataStreamGenerator;
            0    1     1          out  Ljava/io/OutputStream;
            0    1     2  encapsulate  Z
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      out          
      encapsulate  

  public java.io.OutputStream open(java.io.OutputStream, boolean, java.io.OutputStream);
    descriptor: (Ljava/io/OutputStream;ZLjava/io/OutputStream;)Ljava/io/OutputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.bouncycastle.cms.CMSSignedDataStreamGenerator this
        start local 1 // java.io.OutputStream out
        start local 2 // boolean encapsulate
        start local 3 // java.io.OutputStream dataOutputStream
         0: .line 113
            aload 0 /* this */
            getstatic org.bouncycastle.asn1.cms.CMSObjectIdentifiers.data:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 1 /* out */
            iload 2 /* encapsulate */
            aload 3 /* dataOutputStream */
            invokevirtual org.bouncycastle.cms.CMSSignedDataStreamGenerator.open:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Ljava/io/OutputStream;ZLjava/io/OutputStream;)Ljava/io/OutputStream;
            areturn
        end local 3 // java.io.OutputStream dataOutputStream
        end local 2 // boolean encapsulate
        end local 1 // java.io.OutputStream out
        end local 0 // org.bouncycastle.cms.CMSSignedDataStreamGenerator this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0              this  Lorg/bouncycastle/cms/CMSSignedDataStreamGenerator;
            0    1     1               out  Ljava/io/OutputStream;
            0    1     2       encapsulate  Z
            0    1     3  dataOutputStream  Ljava/io/OutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                  Name  Flags
      out               
      encapsulate       
      dataOutputStream  

  public java.io.OutputStream open(org.bouncycastle.asn1.ASN1ObjectIdentifier, java.io.OutputStream, boolean);
    descriptor: (Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Ljava/io/OutputStream;Z)Ljava/io/OutputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.bouncycastle.cms.CMSSignedDataStreamGenerator this
        start local 1 // org.bouncycastle.asn1.ASN1ObjectIdentifier eContentType
        start local 2 // java.io.OutputStream out
        start local 3 // boolean encapsulate
         0: .line 128
            aload 0 /* this */
            aload 1 /* eContentType */
            aload 2 /* out */
            iload 3 /* encapsulate */
            aconst_null
            invokevirtual org.bouncycastle.cms.CMSSignedDataStreamGenerator.open:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Ljava/io/OutputStream;ZLjava/io/OutputStream;)Ljava/io/OutputStream;
            areturn
        end local 3 // boolean encapsulate
        end local 2 // java.io.OutputStream out
        end local 1 // org.bouncycastle.asn1.ASN1ObjectIdentifier eContentType
        end local 0 // org.bouncycastle.cms.CMSSignedDataStreamGenerator this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/bouncycastle/cms/CMSSignedDataStreamGenerator;
            0    1     1  eContentType  Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            0    1     2           out  Ljava/io/OutputStream;
            0    1     3   encapsulate  Z
    Exceptions:
      throws java.io.IOException
    MethodParameters:
              Name  Flags
      eContentType  
      out           
      encapsulate   

  public java.io.OutputStream open(org.bouncycastle.asn1.ASN1ObjectIdentifier, java.io.OutputStream, boolean, java.io.OutputStream);
    descriptor: (Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Ljava/io/OutputStream;ZLjava/io/OutputStream;)Ljava/io/OutputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=12, args_size=5
        start local 0 // org.bouncycastle.cms.CMSSignedDataStreamGenerator this
        start local 1 // org.bouncycastle.asn1.ASN1ObjectIdentifier eContentType
        start local 2 // java.io.OutputStream out
        start local 3 // boolean encapsulate
        start local 4 // java.io.OutputStream dataOutputStream
         0: .line 181
            new org.bouncycastle.asn1.BERSequenceGenerator
            dup
            aload 2 /* out */
            invokespecial org.bouncycastle.asn1.BERSequenceGenerator.<init>:(Ljava/io/OutputStream;)V
            astore 5 /* sGen */
        start local 5 // org.bouncycastle.asn1.BERSequenceGenerator sGen
         1: .line 183
            aload 5 /* sGen */
            getstatic org.bouncycastle.asn1.cms.CMSObjectIdentifiers.signedData:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.BERSequenceGenerator.addObject:(Lorg/bouncycastle/asn1/ASN1Encodable;)V
         2: .line 188
            new org.bouncycastle.asn1.BERSequenceGenerator
            dup
            aload 5 /* 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 6 /* sigGen */
        start local 6 // org.bouncycastle.asn1.BERSequenceGenerator sigGen
         3: .line 190
            aload 6 /* sigGen */
            aload 0 /* this */
            aload 1 /* eContentType */
            invokevirtual org.bouncycastle.cms.CMSSignedDataStreamGenerator.calculateVersion:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Lorg/bouncycastle/asn1/ASN1Integer;
            invokevirtual org.bouncycastle.asn1.BERSequenceGenerator.addObject:(Lorg/bouncycastle/asn1/ASN1Encodable;)V
         4: .line 192
            new org.bouncycastle.asn1.ASN1EncodableVector
            dup
            invokespecial org.bouncycastle.asn1.ASN1EncodableVector.<init>:()V
            astore 7 /* digestAlgs */
        start local 7 // org.bouncycastle.asn1.ASN1EncodableVector digestAlgs
         5: .line 197
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSSignedDataStreamGenerator._signers:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8 /* it */
        start local 8 // java.util.Iterator it
         6: goto 10
         7: .line 199
      StackMap locals: org.bouncycastle.cms.CMSSignedDataStreamGenerator org.bouncycastle.asn1.ASN1ObjectIdentifier java.io.OutputStream int java.io.OutputStream org.bouncycastle.asn1.BERSequenceGenerator org.bouncycastle.asn1.BERSequenceGenerator org.bouncycastle.asn1.ASN1EncodableVector java.util.Iterator
      StackMap stack:
            aload 8 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.bouncycastle.cms.SignerInformation
            astore 9 /* signer */
        start local 9 // org.bouncycastle.cms.SignerInformation signer
         8: .line 200
            getstatic org.bouncycastle.cms.CMSSignedHelper.INSTANCE:Lorg/bouncycastle/cms/CMSSignedHelper;
            aload 9 /* 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;
            astore 10 /* digAlg */
        start local 10 // org.bouncycastle.asn1.x509.AlgorithmIdentifier digAlg
         9: .line 202
            aload 7 /* digestAlgs */
            aload 10 /* digAlg */
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/ASN1Encodable;)V
        end local 10 // org.bouncycastle.asn1.x509.AlgorithmIdentifier digAlg
        end local 9 // org.bouncycastle.cms.SignerInformation signer
        10: .line 197
      StackMap locals:
      StackMap stack:
            aload 8 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        end local 8 // java.util.Iterator it
        11: .line 209
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSSignedDataStreamGenerator.signerGens:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8 /* it */
        start local 8 // java.util.Iterator it
        12: goto 15
        13: .line 211
      StackMap locals:
      StackMap stack:
            aload 8 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.bouncycastle.cms.SignerInfoGenerator
            astore 9 /* signerGen */
        start local 9 // org.bouncycastle.cms.SignerInfoGenerator signerGen
        14: .line 213
            aload 7 /* digestAlgs */
            aload 9 /* signerGen */
            invokevirtual org.bouncycastle.cms.SignerInfoGenerator.getDigestAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/ASN1Encodable;)V
        end local 9 // org.bouncycastle.cms.SignerInfoGenerator signerGen
        15: .line 209
      StackMap locals:
      StackMap stack:
            aload 8 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        end local 8 // java.util.Iterator it
        16: .line 216
            aload 6 /* sigGen */
            invokevirtual org.bouncycastle.asn1.BERSequenceGenerator.getRawOutputStream:()Ljava/io/OutputStream;
            new org.bouncycastle.asn1.DERSet
            dup
            aload 7 /* 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
        17: .line 218
            new org.bouncycastle.asn1.BERSequenceGenerator
            dup
            aload 6 /* sigGen */
            invokevirtual org.bouncycastle.asn1.BERSequenceGenerator.getRawOutputStream:()Ljava/io/OutputStream;
            invokespecial org.bouncycastle.asn1.BERSequenceGenerator.<init>:(Ljava/io/OutputStream;)V
            astore 8 /* eiGen */
        start local 8 // org.bouncycastle.asn1.BERSequenceGenerator eiGen
        18: .line 219
            aload 8 /* eiGen */
            aload 1 /* eContentType */
            invokevirtual org.bouncycastle.asn1.BERSequenceGenerator.addObject:(Lorg/bouncycastle/asn1/ASN1Encodable;)V
        19: .line 222
            iload 3 /* encapsulate */
            ifeq 21
        20: .line 223
            aload 8 /* eiGen */
            invokevirtual org.bouncycastle.asn1.BERSequenceGenerator.getRawOutputStream:()Ljava/io/OutputStream;
            iconst_0
            iconst_1
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSSignedDataStreamGenerator._bufferSize:I
            invokestatic org.bouncycastle.cms.CMSUtils.createBEROctetOutputStream:(Ljava/io/OutputStream;IZI)Ljava/io/OutputStream;
            goto 22
        21: .line 224
      StackMap locals: org.bouncycastle.cms.CMSSignedDataStreamGenerator org.bouncycastle.asn1.ASN1ObjectIdentifier java.io.OutputStream int java.io.OutputStream org.bouncycastle.asn1.BERSequenceGenerator org.bouncycastle.asn1.BERSequenceGenerator org.bouncycastle.asn1.ASN1EncodableVector org.bouncycastle.asn1.BERSequenceGenerator
      StackMap stack:
            aconst_null
        22: .line 222
      StackMap locals:
      StackMap stack: java.io.OutputStream
            astore 9 /* encapStream */
        start local 9 // java.io.OutputStream encapStream
        23: .line 227
            aload 4 /* dataOutputStream */
            aload 9 /* encapStream */
            invokestatic org.bouncycastle.cms.CMSUtils.getSafeTeeOutputStream:(Ljava/io/OutputStream;Ljava/io/OutputStream;)Ljava/io/OutputStream;
            astore 10 /* contentStream */
        start local 10 // java.io.OutputStream contentStream
        24: .line 230
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSSignedDataStreamGenerator.signerGens:Ljava/util/List;
            aload 10 /* contentStream */
            invokestatic org.bouncycastle.cms.CMSUtils.attachSignersToOutputStream:(Ljava/util/Collection;Ljava/io/OutputStream;)Ljava/io/OutputStream;
            astore 11 /* sigStream */
        start local 11 // java.io.OutputStream sigStream
        25: .line 232
            new org.bouncycastle.cms.CMSSignedDataStreamGenerator$CmsSignedDataOutputStream
            dup
            aload 0 /* this */
            aload 11 /* sigStream */
            aload 1 /* eContentType */
            aload 5 /* sGen */
            aload 6 /* sigGen */
            aload 8 /* eiGen */
            invokespecial org.bouncycastle.cms.CMSSignedDataStreamGenerator$CmsSignedDataOutputStream.<init>:(Lorg/bouncycastle/cms/CMSSignedDataStreamGenerator;Ljava/io/OutputStream;Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/BERSequenceGenerator;Lorg/bouncycastle/asn1/BERSequenceGenerator;Lorg/bouncycastle/asn1/BERSequenceGenerator;)V
            areturn
        end local 11 // java.io.OutputStream sigStream
        end local 10 // java.io.OutputStream contentStream
        end local 9 // java.io.OutputStream encapStream
        end local 8 // org.bouncycastle.asn1.BERSequenceGenerator eiGen
        end local 7 // org.bouncycastle.asn1.ASN1EncodableVector digestAlgs
        end local 6 // org.bouncycastle.asn1.BERSequenceGenerator sigGen
        end local 5 // org.bouncycastle.asn1.BERSequenceGenerator sGen
        end local 4 // java.io.OutputStream dataOutputStream
        end local 3 // boolean encapsulate
        end local 2 // java.io.OutputStream out
        end local 1 // org.bouncycastle.asn1.ASN1ObjectIdentifier eContentType
        end local 0 // org.bouncycastle.cms.CMSSignedDataStreamGenerator this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   26     0              this  Lorg/bouncycastle/cms/CMSSignedDataStreamGenerator;
            0   26     1      eContentType  Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            0   26     2               out  Ljava/io/OutputStream;
            0   26     3       encapsulate  Z
            0   26     4  dataOutputStream  Ljava/io/OutputStream;
            1   26     5              sGen  Lorg/bouncycastle/asn1/BERSequenceGenerator;
            3   26     6            sigGen  Lorg/bouncycastle/asn1/BERSequenceGenerator;
            5   26     7        digestAlgs  Lorg/bouncycastle/asn1/ASN1EncodableVector;
            6   11     8                it  Ljava/util/Iterator;
            8   10     9            signer  Lorg/bouncycastle/cms/SignerInformation;
            9   10    10            digAlg  Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
           12   16     8                it  Ljava/util/Iterator;
           14   15     9         signerGen  Lorg/bouncycastle/cms/SignerInfoGenerator;
           18   26     8             eiGen  Lorg/bouncycastle/asn1/BERSequenceGenerator;
           23   26     9       encapStream  Ljava/io/OutputStream;
           24   26    10     contentStream  Ljava/io/OutputStream;
           25   26    11         sigStream  Ljava/io/OutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                  Name  Flags
      eContentType      
      out               
      encapsulate       
      dataOutputStream  

  public java.util.List<org.bouncycastle.asn1.x509.AlgorithmIdentifier> getDigestAlgorithms();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // org.bouncycastle.cms.CMSSignedDataStreamGenerator this
         0: .line 242
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* digestAlorithms */
        start local 1 // java.util.List digestAlorithms
         1: .line 247
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSSignedDataStreamGenerator._signers:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2 /* it */
        start local 2 // java.util.Iterator it
         2: goto 6
         3: .line 249
      StackMap locals: java.util.List java.util.Iterator
      StackMap stack:
            aload 2 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.bouncycastle.cms.SignerInformation
            astore 3 /* signer */
        start local 3 // org.bouncycastle.cms.SignerInformation signer
         4: .line 250
            getstatic org.bouncycastle.cms.CMSSignedHelper.INSTANCE:Lorg/bouncycastle/cms/CMSSignedHelper;
            aload 3 /* 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;
            astore 4 /* digAlg */
        start local 4 // org.bouncycastle.asn1.x509.AlgorithmIdentifier digAlg
         5: .line 252
            aload 1 /* digestAlorithms */
            aload 4 /* digAlg */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // org.bouncycastle.asn1.x509.AlgorithmIdentifier digAlg
        end local 3 // org.bouncycastle.cms.SignerInformation signer
         6: .line 247
      StackMap locals:
      StackMap stack:
            aload 2 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        end local 2 // java.util.Iterator it
         7: .line 259
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSSignedDataStreamGenerator.signerGens:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2 /* it */
        start local 2 // java.util.Iterator it
         8: goto 11
         9: .line 261
      StackMap locals:
      StackMap stack:
            aload 2 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.bouncycastle.cms.SignerInfoGenerator
            astore 3 /* signerGen */
        start local 3 // org.bouncycastle.cms.SignerInfoGenerator signerGen
        10: .line 263
            aload 1 /* digestAlorithms */
            aload 3 /* signerGen */
            invokevirtual org.bouncycastle.cms.SignerInfoGenerator.getDigestAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // org.bouncycastle.cms.SignerInfoGenerator signerGen
        11: .line 259
      StackMap locals:
      StackMap stack:
            aload 2 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        end local 2 // java.util.Iterator it
        12: .line 266
            aload 1 /* digestAlorithms */
            areturn
        end local 1 // java.util.List digestAlorithms
        end local 0 // org.bouncycastle.cms.CMSSignedDataStreamGenerator this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   13     0             this  Lorg/bouncycastle/cms/CMSSignedDataStreamGenerator;
            1   13     1  digestAlorithms  Ljava/util/List;
            2    7     2               it  Ljava/util/Iterator;
            4    6     3           signer  Lorg/bouncycastle/cms/SignerInformation;
            5    6     4           digAlg  Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            8   12     2               it  Ljava/util/Iterator;
           10   11     3        signerGen  Lorg/bouncycastle/cms/SignerInfoGenerator;
    Signature: ()Ljava/util/List<Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;>;

  private org.bouncycastle.asn1.ASN1Integer calculateVersion(org.bouncycastle.asn1.ASN1ObjectIdentifier);
    descriptor: (Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Lorg/bouncycastle/asn1/ASN1Integer;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=9, args_size=2
        start local 0 // org.bouncycastle.cms.CMSSignedDataStreamGenerator this
        start local 1 // org.bouncycastle.asn1.ASN1ObjectIdentifier contentOid
         0: .line 290
            iconst_0
            istore 2 /* otherCert */
        start local 2 // boolean otherCert
         1: .line 291
            iconst_0
            istore 3 /* otherCrl */
        start local 3 // boolean otherCrl
         2: .line 292
            iconst_0
            istore 4 /* attrCertV1Found */
        start local 4 // boolean attrCertV1Found
         3: .line 293
            iconst_0
            istore 5 /* attrCertV2Found */
        start local 5 // boolean attrCertV2Found
         4: .line 295
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSSignedDataStreamGenerator.certs:Ljava/util/List;
            ifnull 19
         5: .line 297
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSSignedDataStreamGenerator.certs:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6 /* it */
        start local 6 // java.util.Iterator it
         6: goto 18
         7: .line 299
      StackMap locals: org.bouncycastle.cms.CMSSignedDataStreamGenerator org.bouncycastle.asn1.ASN1ObjectIdentifier int int int int java.util.Iterator
      StackMap stack:
            aload 6 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 7 /* obj */
        start local 7 // java.lang.Object obj
         8: .line 300
            aload 7 /* obj */
            instanceof org.bouncycastle.asn1.ASN1TaggedObject
            ifeq 18
         9: .line 302
            aload 7 /* obj */
            checkcast org.bouncycastle.asn1.ASN1TaggedObject
            astore 8 /* tagged */
        start local 8 // org.bouncycastle.asn1.ASN1TaggedObject tagged
        10: .line 304
            aload 8 /* tagged */
            invokevirtual org.bouncycastle.asn1.ASN1TaggedObject.getTagNo:()I
            iconst_1
            if_icmpne 13
        11: .line 306
            iconst_1
            istore 4 /* attrCertV1Found */
        12: .line 307
            goto 18
        13: .line 308
      StackMap locals: java.lang.Object org.bouncycastle.asn1.ASN1TaggedObject
      StackMap stack:
            aload 8 /* tagged */
            invokevirtual org.bouncycastle.asn1.ASN1TaggedObject.getTagNo:()I
            iconst_2
            if_icmpne 16
        14: .line 310
            iconst_1
            istore 5 /* attrCertV2Found */
        15: .line 311
            goto 18
        16: .line 312
      StackMap locals:
      StackMap stack:
            aload 8 /* tagged */
            invokevirtual org.bouncycastle.asn1.ASN1TaggedObject.getTagNo:()I
            iconst_3
            if_icmpne 18
        17: .line 314
            iconst_1
            istore 2 /* otherCert */
        end local 8 // org.bouncycastle.asn1.ASN1TaggedObject tagged
        end local 7 // java.lang.Object obj
        18: .line 297
      StackMap locals:
      StackMap stack:
            aload 6 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        end local 6 // java.util.Iterator it
        19: .line 320
      StackMap locals:
      StackMap stack:
            iload 2 /* otherCert */
            ifeq 21
        20: .line 322
            new org.bouncycastle.asn1.ASN1Integer
            dup
            ldc 5
            invokespecial org.bouncycastle.asn1.ASN1Integer.<init>:(J)V
            areturn
        21: .line 325
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSSignedDataStreamGenerator.crls:Ljava/util/List;
            ifnull 28
        22: .line 327
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSSignedDataStreamGenerator.crls:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6 /* it */
        start local 6 // java.util.Iterator it
        23: goto 27
        24: .line 329
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 6 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 7 /* obj */
        start local 7 // java.lang.Object obj
        25: .line 330
            aload 7 /* obj */
            instanceof org.bouncycastle.asn1.ASN1TaggedObject
            ifeq 27
        26: .line 332
            iconst_1
            istore 3 /* otherCrl */
        end local 7 // java.lang.Object obj
        27: .line 327
      StackMap locals:
      StackMap stack:
            aload 6 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 24
        end local 6 // java.util.Iterator it
        28: .line 337
      StackMap locals:
      StackMap stack:
            iload 3 /* otherCrl */
            ifeq 30
        29: .line 339
            new org.bouncycastle.asn1.ASN1Integer
            dup
            ldc 5
            invokespecial org.bouncycastle.asn1.ASN1Integer.<init>:(J)V
            areturn
        30: .line 342
      StackMap locals:
      StackMap stack:
            iload 5 /* attrCertV2Found */
            ifeq 32
        31: .line 344
            new org.bouncycastle.asn1.ASN1Integer
            dup
            ldc 4
            invokespecial org.bouncycastle.asn1.ASN1Integer.<init>:(J)V
            areturn
        32: .line 347
      StackMap locals:
      StackMap stack:
            iload 4 /* attrCertV1Found */
            ifeq 34
        33: .line 349
            new org.bouncycastle.asn1.ASN1Integer
            dup
            ldc 3
            invokespecial org.bouncycastle.asn1.ASN1Integer.<init>:(J)V
            areturn
        34: .line 352
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSSignedDataStreamGenerator._signers:Ljava/util/List;
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSSignedDataStreamGenerator.signerGens:Ljava/util/List;
            invokevirtual org.bouncycastle.cms.CMSSignedDataStreamGenerator.checkForVersion3:(Ljava/util/List;Ljava/util/List;)Z
            ifeq 36
        35: .line 354
            new org.bouncycastle.asn1.ASN1Integer
            dup
            ldc 3
            invokespecial org.bouncycastle.asn1.ASN1Integer.<init>:(J)V
            areturn
        36: .line 357
      StackMap locals:
      StackMap stack:
            getstatic org.bouncycastle.asn1.cms.CMSObjectIdentifiers.data:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 1 /* contentOid */
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifne 38
        37: .line 359
            new org.bouncycastle.asn1.ASN1Integer
            dup
            ldc 3
            invokespecial org.bouncycastle.asn1.ASN1Integer.<init>:(J)V
            areturn
        38: .line 362
      StackMap locals:
      StackMap stack:
            new org.bouncycastle.asn1.ASN1Integer
            dup
            lconst_1
            invokespecial org.bouncycastle.asn1.ASN1Integer.<init>:(J)V
            areturn
        end local 5 // boolean attrCertV2Found
        end local 4 // boolean attrCertV1Found
        end local 3 // boolean otherCrl
        end local 2 // boolean otherCert
        end local 1 // org.bouncycastle.asn1.ASN1ObjectIdentifier contentOid
        end local 0 // org.bouncycastle.cms.CMSSignedDataStreamGenerator this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   39     0             this  Lorg/bouncycastle/cms/CMSSignedDataStreamGenerator;
            0   39     1       contentOid  Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            1   39     2        otherCert  Z
            2   39     3         otherCrl  Z
            3   39     4  attrCertV1Found  Z
            4   39     5  attrCertV2Found  Z
            6   19     6               it  Ljava/util/Iterator;
            8   18     7              obj  Ljava/lang/Object;
           10   18     8           tagged  Lorg/bouncycastle/asn1/ASN1TaggedObject;
           23   28     6               it  Ljava/util/Iterator;
           25   27     7              obj  Ljava/lang/Object;
    MethodParameters:
            Name  Flags
      contentOid  

  private boolean checkForVersion3(java.util.List, java.util.List);
    descriptor: (Ljava/util/List;Ljava/util/List;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // org.bouncycastle.cms.CMSSignedDataStreamGenerator this
        start local 1 // java.util.List signerInfos
        start local 2 // java.util.List signerInfoGens
         0: .line 367
            aload 1 /* signerInfos */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3 /* it */
        start local 3 // java.util.Iterator it
         1: goto 5
         2: .line 369
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 3 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.bouncycastle.cms.SignerInformation
            invokevirtual org.bouncycastle.cms.SignerInformation.toASN1Structure:()Lorg/bouncycastle/asn1/cms/SignerInfo;
            invokestatic org.bouncycastle.asn1.cms.SignerInfo.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/cms/SignerInfo;
            astore 4 /* s */
        start local 4 // org.bouncycastle.asn1.cms.SignerInfo s
         3: .line 371
            aload 4 /* s */
            invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getVersion:()Lorg/bouncycastle/asn1/ASN1Integer;
            invokevirtual org.bouncycastle.asn1.ASN1Integer.getValue:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.intValue:()I
            iconst_3
            if_icmpne 5
         4: .line 373
            iconst_1
            ireturn
        end local 4 // org.bouncycastle.asn1.cms.SignerInfo s
         5: .line 367
      StackMap locals:
      StackMap stack:
            aload 3 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        end local 3 // java.util.Iterator it
         6: .line 377
            aload 2 /* signerInfoGens */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3 /* it */
        start local 3 // java.util.Iterator it
         7: goto 11
         8: .line 379
      StackMap locals:
      StackMap stack:
            aload 3 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.bouncycastle.cms.SignerInfoGenerator
            astore 4 /* s */
        start local 4 // org.bouncycastle.cms.SignerInfoGenerator s
         9: .line 381
            aload 4 /* s */
            invokevirtual org.bouncycastle.cms.SignerInfoGenerator.getGeneratedVersion:()I
            iconst_3
            if_icmpne 11
        10: .line 383
            iconst_1
            ireturn
        end local 4 // org.bouncycastle.cms.SignerInfoGenerator s
        11: .line 377
      StackMap locals:
      StackMap stack:
            aload 3 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        end local 3 // java.util.Iterator it
        12: .line 387
            iconst_0
            ireturn
        end local 2 // java.util.List signerInfoGens
        end local 1 // java.util.List signerInfos
        end local 0 // org.bouncycastle.cms.CMSSignedDataStreamGenerator this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   13     0            this  Lorg/bouncycastle/cms/CMSSignedDataStreamGenerator;
            0   13     1     signerInfos  Ljava/util/List;
            0   13     2  signerInfoGens  Ljava/util/List;
            1    6     3              it  Ljava/util/Iterator;
            3    5     4               s  Lorg/bouncycastle/asn1/cms/SignerInfo;
            7   12     3              it  Ljava/util/Iterator;
            9   11     4               s  Lorg/bouncycastle/cms/SignerInfoGenerator;
    MethodParameters:
                Name  Flags
      signerInfos     
      signerInfoGens  
}
SourceFile: "CMSSignedDataStreamGenerator.java"
NestMembers:
  org.bouncycastle.cms.CMSSignedDataStreamGenerator$CmsSignedDataOutputStream
InnerClasses:
  private CmsSignedDataOutputStream = org.bouncycastle.cms.CMSSignedDataStreamGenerator$CmsSignedDataOutputStream of org.bouncycastle.cms.CMSSignedDataStreamGenerator