public class org.bouncycastle.mime.smime.SMIMESignedWriter$Builder
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bouncycastle.mime.smime.SMIMESignedWriter$Builder
  super_class: java.lang.Object
{
  private static final java.lang.String[] detHeaders;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String[] detValues;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String[] encHeaders;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String[] encValues;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final org.bouncycastle.cms.CMSSignedDataStreamGenerator sigGen;
    descriptor: Lorg/bouncycastle/cms/CMSSignedDataStreamGenerator;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Map<java.lang.String, java.lang.String> extraHeaders;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;

  private final boolean encapsulated;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Map micAlgs;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  java.lang.String contentTransferEncoding;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 82
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
         1: .line 83
            ldc "Content-Type"
            aastore
         2: .line 81
            putstatic org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.detHeaders:[Ljava/lang/String;
         3: .line 87
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
         4: .line 88
            ldc "multipart/signed; protocol=\"application/pkcs7-signature\""
            aastore
         5: .line 86
            putstatic org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.detValues:[Ljava/lang/String;
         6: .line 92
            iconst_4
            anewarray java.lang.String
            dup
            iconst_0
         7: .line 93
            ldc "Content-Type"
            aastore
            dup
            iconst_1
         8: .line 94
            ldc "Content-Disposition"
            aastore
            dup
            iconst_2
         9: .line 95
            ldc "Content-Transfer-Encoding"
            aastore
            dup
            iconst_3
        10: .line 96
            ldc "Content-Description"
            aastore
        11: .line 91
            putstatic org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.encHeaders:[Ljava/lang/String;
        12: .line 100
            iconst_4
            anewarray java.lang.String
            dup
            iconst_0
        13: .line 101
            ldc "application/pkcs7-mime; name=\"smime.p7m\"; smime-type=enveloped-data"
            aastore
            dup
            iconst_1
        14: .line 102
            ldc "attachment; filename=\"smime.p7m\""
            aastore
            dup
            iconst_2
        15: .line 103
            ldc "base64"
            aastore
            dup
            iconst_3
        16: .line 104
            ldc "S/MIME Signed Message"
            aastore
        17: .line 99
            putstatic org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.encValues:[Ljava/lang/String;
        18: .line 106
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bouncycastle.mime.smime.SMIMESignedWriter$Builder this
         0: .line 117
            aload 0 /* this */
            iconst_0
            invokespecial org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.<init>:(Z)V
         1: .line 118
            return
        end local 0 // org.bouncycastle.mime.smime.SMIMESignedWriter$Builder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bouncycastle/mime/smime/SMIMESignedWriter$Builder;

  public void <init>(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.bouncycastle.mime.smime.SMIMESignedWriter$Builder this
        start local 1 // boolean encapsulated
         0: .line 120
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 108
            aload 0 /* this */
            new org.bouncycastle.cms.CMSSignedDataStreamGenerator
            dup
            invokespecial org.bouncycastle.cms.CMSSignedDataStreamGenerator.<init>:()V
            putfield org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.sigGen:Lorg/bouncycastle/cms/CMSSignedDataStreamGenerator;
         2: .line 109
            aload 0 /* this */
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            putfield org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.extraHeaders:Ljava/util/Map;
         3: .line 111
            aload 0 /* this */
            getstatic org.bouncycastle.mime.smime.SMIMESignedWriter.STANDARD_MICALGS:Ljava/util/Map;
            putfield org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.micAlgs:Ljava/util/Map;
         4: .line 113
            aload 0 /* this */
            ldc "base64"
            putfield org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.contentTransferEncoding:Ljava/lang/String;
         5: .line 123
            aload 0 /* this */
            iload 1 /* encapsulated */
            putfield org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.encapsulated:Z
         6: .line 124
            return
        end local 1 // boolean encapsulated
        end local 0 // org.bouncycastle.mime.smime.SMIMESignedWriter$Builder this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Lorg/bouncycastle/mime/smime/SMIMESignedWriter$Builder;
            0    7     1  encapsulated  Z
    MethodParameters:
              Name  Flags
      encapsulated  

  public org.bouncycastle.mime.smime.SMIMESignedWriter$Builder withHeader(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Lorg/bouncycastle/mime/smime/SMIMESignedWriter$Builder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.bouncycastle.mime.smime.SMIMESignedWriter$Builder this
        start local 1 // java.lang.String headerName
        start local 2 // java.lang.String headerValue
         0: .line 136
            aload 0 /* this */
            getfield org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.extraHeaders:Ljava/util/Map;
            aload 1 /* headerName */
            aload 2 /* headerValue */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 138
            aload 0 /* this */
            areturn
        end local 2 // java.lang.String headerValue
        end local 1 // java.lang.String headerName
        end local 0 // org.bouncycastle.mime.smime.SMIMESignedWriter$Builder this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/bouncycastle/mime/smime/SMIMESignedWriter$Builder;
            0    2     1   headerName  Ljava/lang/String;
            0    2     2  headerValue  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      headerName   
      headerValue  

  public org.bouncycastle.mime.smime.SMIMESignedWriter$Builder addCertificate(org.bouncycastle.cert.X509CertificateHolder);
    descriptor: (Lorg/bouncycastle/cert/X509CertificateHolder;)Lorg/bouncycastle/mime/smime/SMIMESignedWriter$Builder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.mime.smime.SMIMESignedWriter$Builder this
        start local 1 // org.bouncycastle.cert.X509CertificateHolder certificate
         0: .line 144
            aload 0 /* this */
            getfield org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.sigGen:Lorg/bouncycastle/cms/CMSSignedDataStreamGenerator;
            aload 1 /* certificate */
            invokevirtual org.bouncycastle.cms.CMSSignedDataStreamGenerator.addCertificate:(Lorg/bouncycastle/cert/X509CertificateHolder;)V
         1: .line 146
            aload 0 /* this */
            areturn
        end local 1 // org.bouncycastle.cert.X509CertificateHolder certificate
        end local 0 // org.bouncycastle.mime.smime.SMIMESignedWriter$Builder this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/bouncycastle/mime/smime/SMIMESignedWriter$Builder;
            0    2     1  certificate  Lorg/bouncycastle/cert/X509CertificateHolder;
    Exceptions:
      throws org.bouncycastle.cms.CMSException
    MethodParameters:
             Name  Flags
      certificate  

  public org.bouncycastle.mime.smime.SMIMESignedWriter$Builder addCertificates(org.bouncycastle.util.Store);
    descriptor: (Lorg/bouncycastle/util/Store;)Lorg/bouncycastle/mime/smime/SMIMESignedWriter$Builder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.mime.smime.SMIMESignedWriter$Builder this
        start local 1 // org.bouncycastle.util.Store certificates
         0: .line 152
            aload 0 /* this */
            getfield org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.sigGen:Lorg/bouncycastle/cms/CMSSignedDataStreamGenerator;
            aload 1 /* certificates */
            invokevirtual org.bouncycastle.cms.CMSSignedDataStreamGenerator.addCertificates:(Lorg/bouncycastle/util/Store;)V
         1: .line 154
            aload 0 /* this */
            areturn
        end local 1 // org.bouncycastle.util.Store certificates
        end local 0 // org.bouncycastle.mime.smime.SMIMESignedWriter$Builder this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lorg/bouncycastle/mime/smime/SMIMESignedWriter$Builder;
            0    2     1  certificates  Lorg/bouncycastle/util/Store;
    Exceptions:
      throws org.bouncycastle.cms.CMSException
    MethodParameters:
              Name  Flags
      certificates  

  public org.bouncycastle.mime.smime.SMIMESignedWriter$Builder addSignerInfoGenerator(org.bouncycastle.cms.SignerInfoGenerator);
    descriptor: (Lorg/bouncycastle/cms/SignerInfoGenerator;)Lorg/bouncycastle/mime/smime/SMIMESignedWriter$Builder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.mime.smime.SMIMESignedWriter$Builder this
        start local 1 // org.bouncycastle.cms.SignerInfoGenerator signerGenerator
         0: .line 165
            aload 0 /* this */
            getfield org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.sigGen:Lorg/bouncycastle/cms/CMSSignedDataStreamGenerator;
            aload 1 /* signerGenerator */
            invokevirtual org.bouncycastle.cms.CMSSignedDataStreamGenerator.addSignerInfoGenerator:(Lorg/bouncycastle/cms/SignerInfoGenerator;)V
         1: .line 167
            aload 0 /* this */
            areturn
        end local 1 // org.bouncycastle.cms.SignerInfoGenerator signerGenerator
        end local 0 // org.bouncycastle.mime.smime.SMIMESignedWriter$Builder this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lorg/bouncycastle/mime/smime/SMIMESignedWriter$Builder;
            0    2     1  signerGenerator  Lorg/bouncycastle/cms/SignerInfoGenerator;
    MethodParameters:
                 Name  Flags
      signerGenerator  

  public org.bouncycastle.mime.smime.SMIMESignedWriter build(java.io.OutputStream);
    descriptor: (Ljava/io/OutputStream;)Lorg/bouncycastle/mime/smime/SMIMESignedWriter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // org.bouncycastle.mime.smime.SMIMESignedWriter$Builder this
        start local 1 // java.io.OutputStream mimeOut
         0: .line 172
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            astore 2 /* headers */
        start local 2 // java.util.Map headers
         1: .line 175
            aload 0 /* this */
            getfield org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.encapsulated:Z
            ifeq 9
         2: .line 177
            aconst_null
            astore 3 /* boundary */
        start local 3 // java.lang.String boundary
         3: .line 178
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         4: goto 7
         5: .line 180
      StackMap locals: java.util.Map java.lang.String int
      StackMap stack:
            aload 2 /* headers */
            getstatic org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.encHeaders:[Ljava/lang/String;
            iload 4 /* i */
            aaload
            getstatic org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.encValues:[Ljava/lang/String;
            iload 4 /* i */
            aaload
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 178
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 4 /* i */
            getstatic org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.encHeaders:[Ljava/lang/String;
            arraylength
            if_icmpne 5
        end local 4 // int i
         8: .line 182
            goto 19
        end local 3 // java.lang.String boundary
         9: .line 185
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.generateBoundary:()Ljava/lang/String;
            astore 3 /* boundary */
        start local 3 // java.lang.String boundary
        10: .line 188
            new java.lang.StringBuffer
            dup
            getstatic org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.detValues:[Ljava/lang/String;
            iconst_0
            aaload
            invokespecial java.lang.StringBuffer.<init>:(Ljava/lang/String;)V
            astore 4 /* contValue */
        start local 4 // java.lang.StringBuffer contValue
        11: .line 190
            aload 0 /* this */
            aload 4 /* contValue */
            aload 0 /* this */
            getfield org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.sigGen:Lorg/bouncycastle/cms/CMSSignedDataStreamGenerator;
            invokevirtual org.bouncycastle.cms.CMSSignedDataStreamGenerator.getDigestAlgorithms:()Ljava/util/List;
            invokevirtual org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.addHashHeader:(Ljava/lang/StringBuffer;Ljava/util/List;)V
        12: .line 192
            aload 0 /* this */
            aload 4 /* contValue */
            aload 3 /* boundary */
            invokevirtual org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.addBoundary:(Ljava/lang/StringBuffer;Ljava/lang/String;)V
        13: .line 193
            aload 2 /* headers */
            getstatic org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.detHeaders:[Ljava/lang/String;
            iconst_0
            aaload
            aload 4 /* contValue */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        14: .line 195
            iconst_1
            istore 5 /* i */
        start local 5 // int i
        15: goto 18
        16: .line 197
      StackMap locals: java.lang.String java.lang.StringBuffer int
      StackMap stack:
            aload 2 /* headers */
            getstatic org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.detHeaders:[Ljava/lang/String;
            iload 5 /* i */
            aaload
            getstatic org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.detValues:[Ljava/lang/String;
            iload 5 /* i */
            aaload
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        17: .line 195
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 5 /* i */
            getstatic org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.detHeaders:[Ljava/lang/String;
            arraylength
            if_icmplt 16
        end local 5 // int i
        end local 4 // java.lang.StringBuffer contValue
        19: .line 201
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.extraHeaders:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4 /* it */
        start local 4 // java.util.Iterator it
        20: goto 23
        21: .line 203
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 4 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 5 /* ent */
        start local 5 // java.util.Map$Entry ent
        22: .line 204
            aload 2 /* headers */
            aload 5 /* ent */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            aload 5 /* ent */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.String
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 5 // java.util.Map$Entry ent
        23: .line 201
      StackMap locals:
      StackMap stack:
            aload 4 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 21
        end local 4 // java.util.Iterator it
        24: .line 207
            new org.bouncycastle.mime.smime.SMIMESignedWriter
            dup
            aload 0 /* this */
            aload 2 /* headers */
            aload 3 /* boundary */
            aload 1 /* mimeOut */
            invokespecial org.bouncycastle.mime.smime.SMIMESignedWriter.<init>:(Lorg/bouncycastle/mime/smime/SMIMESignedWriter$Builder;Ljava/util/Map;Ljava/lang/String;Ljava/io/OutputStream;)V
            areturn
        end local 3 // java.lang.String boundary
        end local 2 // java.util.Map headers
        end local 1 // java.io.OutputStream mimeOut
        end local 0 // org.bouncycastle.mime.smime.SMIMESignedWriter$Builder this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   25     0       this  Lorg/bouncycastle/mime/smime/SMIMESignedWriter$Builder;
            0   25     1    mimeOut  Ljava/io/OutputStream;
            1   25     2    headers  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            3    9     3   boundary  Ljava/lang/String;
           10   25     3   boundary  Ljava/lang/String;
            4    8     4          i  I
           11   19     4  contValue  Ljava/lang/StringBuffer;
           15   19     5          i  I
           20   24     4         it  Ljava/util/Iterator;
           22   23     5        ent  Ljava/util/Map$Entry;
    MethodParameters:
         Name  Flags
      mimeOut  

  private void addHashHeader(java.lang.StringBuffer, java.util.List);
    descriptor: (Ljava/lang/StringBuffer;Ljava/util/List;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=8, args_size=3
        start local 0 // org.bouncycastle.mime.smime.SMIMESignedWriter$Builder this
        start local 1 // java.lang.StringBuffer header
        start local 2 // java.util.List signers
         0: .line 214
            iconst_0
            istore 3 /* count */
        start local 3 // int count
         1: .line 219
            aload 2 /* signers */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4 /* it */
        start local 4 // java.util.Iterator it
         2: .line 220
            new java.util.TreeSet
            dup
            invokespecial java.util.TreeSet.<init>:()V
            astore 5 /* micAlgSet */
        start local 5 // java.util.Set micAlgSet
         3: .line 222
            goto 10
         4: .line 224
      StackMap locals: int java.util.Iterator java.util.Set
      StackMap stack:
            aload 4 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.bouncycastle.asn1.x509.AlgorithmIdentifier
            astore 6 /* digest */
        start local 6 // org.bouncycastle.asn1.x509.AlgorithmIdentifier digest
         5: .line 226
            aload 0 /* this */
            getfield org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.micAlgs:Ljava/util/Map;
            aload 6 /* digest */
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* micAlg */
        start local 7 // java.lang.String micAlg
         6: .line 228
            aload 7 /* micAlg */
            ifnonnull 9
         7: .line 230
            aload 5 /* micAlgSet */
            ldc "unknown"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         8: .line 231
            goto 10
         9: .line 234
      StackMap locals: org.bouncycastle.asn1.x509.AlgorithmIdentifier java.lang.String
      StackMap stack:
            aload 5 /* micAlgSet */
            aload 7 /* micAlg */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // java.lang.String micAlg
        end local 6 // org.bouncycastle.asn1.x509.AlgorithmIdentifier digest
        10: .line 222
      StackMap locals:
      StackMap stack:
            aload 4 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        11: .line 238
            aload 5 /* micAlgSet */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4 /* it */
        12: .line 240
            goto 23
        13: .line 242
      StackMap locals:
      StackMap stack:
            aload 4 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* alg */
        start local 6 // java.lang.String alg
        14: .line 244
            iload 3 /* count */
            ifne 20
        15: .line 246
            aload 5 /* micAlgSet */
            invokeinterface java.util.Set.size:()I
            iconst_1
            if_icmpeq 18
        16: .line 248
            aload 1 /* header */
            ldc "; micalg=\""
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        17: .line 249
            goto 21
        18: .line 252
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* header */
            ldc "; micalg="
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        19: .line 254
            goto 21
        20: .line 257
      StackMap locals:
      StackMap stack:
            aload 1 /* header */
            bipush 44
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        21: .line 260
      StackMap locals:
      StackMap stack:
            aload 1 /* header */
            aload 6 /* alg */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        22: .line 262
            iinc 3 /* count */ 1
        end local 6 // java.lang.String alg
        23: .line 240
      StackMap locals:
      StackMap stack:
            aload 4 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        24: .line 265
            iload 3 /* count */
            ifeq 27
        25: .line 267
            aload 5 /* micAlgSet */
            invokeinterface java.util.Set.size:()I
            iconst_1
            if_icmpeq 27
        26: .line 269
            aload 1 /* header */
            bipush 34
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        27: .line 272
      StackMap locals:
      StackMap stack:
            return
        end local 5 // java.util.Set micAlgSet
        end local 4 // java.util.Iterator it
        end local 3 // int count
        end local 2 // java.util.List signers
        end local 1 // java.lang.StringBuffer header
        end local 0 // org.bouncycastle.mime.smime.SMIMESignedWriter$Builder this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   28     0       this  Lorg/bouncycastle/mime/smime/SMIMESignedWriter$Builder;
            0   28     1     header  Ljava/lang/StringBuffer;
            0   28     2    signers  Ljava/util/List;
            1   28     3      count  I
            2   28     4         it  Ljava/util/Iterator;
            3   28     5  micAlgSet  Ljava/util/Set;
            5   10     6     digest  Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            6   10     7     micAlg  Ljava/lang/String;
           14   23     6        alg  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      header   
      signers  

  private void addBoundary(java.lang.StringBuffer, java.lang.String);
    descriptor: (Ljava/lang/StringBuffer;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.bouncycastle.mime.smime.SMIMESignedWriter$Builder this
        start local 1 // java.lang.StringBuffer header
        start local 2 // java.lang.String boundary
         0: .line 278
            aload 1 /* header */
            ldc ";\r\n\tboundary=\""
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         1: .line 279
            aload 1 /* header */
            aload 2 /* boundary */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         2: .line 280
            aload 1 /* header */
            ldc "\""
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         3: .line 281
            return
        end local 2 // java.lang.String boundary
        end local 1 // java.lang.StringBuffer header
        end local 0 // org.bouncycastle.mime.smime.SMIMESignedWriter$Builder this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lorg/bouncycastle/mime/smime/SMIMESignedWriter$Builder;
            0    4     1    header  Ljava/lang/StringBuffer;
            0    4     2  boundary  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      header    
      boundary  

  private java.lang.String generateBoundary();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // org.bouncycastle.mime.smime.SMIMESignedWriter$Builder this
         0: .line 285
            new java.security.SecureRandom
            dup
            invokespecial java.security.SecureRandom.<init>:()V
            astore 1 /* random */
        start local 1 // java.security.SecureRandom random
         1: .line 287
            new java.lang.StringBuilder
            dup
            ldc "=="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            new java.math.BigInteger
            dup
            sipush 180
            aload 1 /* random */
            invokespecial java.math.BigInteger.<init>:(ILjava/util/Random;)V
            sipush 179
            invokevirtual java.math.BigInteger.setBit:(I)Ljava/math/BigInteger;
            bipush 16
            invokevirtual java.math.BigInteger.toString:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.security.SecureRandom random
        end local 0 // org.bouncycastle.mime.smime.SMIMESignedWriter$Builder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/bouncycastle/mime/smime/SMIMESignedWriter$Builder;
            1    2     1  random  Ljava/security/SecureRandom;
}
SourceFile: "SMIMESignedWriter.java"
NestHost: org.bouncycastle.mime.smime.SMIMESignedWriter
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public Builder = org.bouncycastle.mime.smime.SMIMESignedWriter$Builder of org.bouncycastle.mime.smime.SMIMESignedWriter