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[] ;
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[] ;
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> ;
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: iconst_1
anewarray java.lang.String
dup
iconst_0
1: ldc "Content-Type"
aastore
2: putstatic org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.detHeaders:[Ljava/lang/String;
3: iconst_1
anewarray java.lang.String
dup
iconst_0
4: ldc "multipart/signed; protocol=\"application/pkcs7-signature\""
aastore
5: putstatic org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.detValues:[Ljava/lang/String;
6: iconst_4
anewarray java.lang.String
dup
iconst_0
7: ldc "Content-Type"
aastore
dup
iconst_1
8: ldc "Content-Disposition"
aastore
dup
iconst_2
9: ldc "Content-Transfer-Encoding"
aastore
dup
iconst_3
10: ldc "Content-Description"
aastore
11: putstatic org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.encHeaders:[Ljava/lang/String;
12: iconst_4
anewarray java.lang.String
dup
iconst_0
13: ldc "application/pkcs7-mime; name=\"smime.p7m\"; smime-type=enveloped-data"
aastore
dup
iconst_1
14: ldc "attachment; filename=\"smime.p7m\""
aastore
dup
iconst_2
15: ldc "base64"
aastore
dup
iconst_3
16: ldc "S/MIME Signed Message"
aastore
17: putstatic org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.encValues:[Ljava/lang/String;
18: 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 0: aload 0
iconst_0
invokespecial org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.<init>:(Z)V
1: return
end local 0 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 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
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: aload 0
new java.util.LinkedHashMap
dup
invokespecial java.util.LinkedHashMap.<init>:()V
putfield org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.extraHeaders:Ljava/util/Map;
3: aload 0
getstatic org.bouncycastle.mime.smime.SMIMESignedWriter.STANDARD_MICALGS:Ljava/util/Map;
putfield org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.micAlgs:Ljava/util/Map;
4: aload 0
ldc "base64"
putfield org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.contentTransferEncoding:Ljava/lang/String;
5: aload 0
iload 1
putfield org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.encapsulated:Z
6: return
end local 1 end local 0 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 (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 start local 1 start local 2 0: aload 0
getfield org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.extraHeaders:Ljava/util/Map;
aload 1
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
areturn
end local 2 end local 1 end local 0 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 start local 1 0: aload 0
getfield org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.sigGen:Lorg/bouncycastle/cms/CMSSignedDataStreamGenerator;
aload 1
invokevirtual org.bouncycastle.cms.CMSSignedDataStreamGenerator.addCertificate:(Lorg/bouncycastle/cert/X509CertificateHolder;)V
1: aload 0
areturn
end local 1 end local 0 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 start local 1 0: aload 0
getfield org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.sigGen:Lorg/bouncycastle/cms/CMSSignedDataStreamGenerator;
aload 1
invokevirtual org.bouncycastle.cms.CMSSignedDataStreamGenerator.addCertificates:(Lorg/bouncycastle/util/Store;)V
1: aload 0
areturn
end local 1 end local 0 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 start local 1 0: aload 0
getfield org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.sigGen:Lorg/bouncycastle/cms/CMSSignedDataStreamGenerator;
aload 1
invokevirtual org.bouncycastle.cms.CMSSignedDataStreamGenerator.addSignerInfoGenerator:(Lorg/bouncycastle/cms/SignerInfoGenerator;)V
1: aload 0
areturn
end local 1 end local 0 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 start local 1 0: new java.util.LinkedHashMap
dup
invokespecial java.util.LinkedHashMap.<init>:()V
astore 2
start local 2 1: aload 0
getfield org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.encapsulated:Z
ifeq 9
2: aconst_null
astore 3
start local 3 3: iconst_0
istore 4
start local 4 4: goto 7
5: StackMap locals: java.util.Map java.lang.String int
StackMap stack:
aload 2
getstatic org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.encHeaders:[Ljava/lang/String;
iload 4
aaload
getstatic org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.encValues:[Ljava/lang/String;
iload 4
aaload
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
6: iinc 4 1
StackMap locals:
StackMap stack:
7: iload 4
getstatic org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.encHeaders:[Ljava/lang/String;
arraylength
if_icmpne 5
end local 4 8: goto 19
end local 3 9: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.generateBoundary:()Ljava/lang/String;
astore 3
start local 3 10: 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
start local 4 11: aload 0
aload 4
aload 0
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: aload 0
aload 4
aload 3
invokevirtual org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.addBoundary:(Ljava/lang/StringBuffer;Ljava/lang/String;)V
13: aload 2
getstatic org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.detHeaders:[Ljava/lang/String;
iconst_0
aaload
aload 4
invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
14: iconst_1
istore 5
start local 5 15: goto 18
16: StackMap locals: java.lang.String java.lang.StringBuffer int
StackMap stack:
aload 2
getstatic org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.detHeaders:[Ljava/lang/String;
iload 5
aaload
getstatic org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.detValues:[Ljava/lang/String;
iload 5
aaload
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
17: iinc 5 1
StackMap locals:
StackMap stack:
18: iload 5
getstatic org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.detHeaders:[Ljava/lang/String;
arraylength
if_icmplt 16
end local 5 end local 4 19: StackMap locals:
StackMap stack:
aload 0
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
start local 4 20: goto 23
21: StackMap locals: java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 5
start local 5 22: aload 2
aload 5
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.String
aload 5
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 23: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 21
end local 4 24: new org.bouncycastle.mime.smime.SMIMESignedWriter
dup
aload 0
aload 2
aload 3
aload 1
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 end local 2 end local 1 end local 0 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 (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 start local 1 start local 2 0: iconst_0
istore 3
start local 3 1: aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
start local 4 2: new java.util.TreeSet
dup
invokespecial java.util.TreeSet.<init>:()V
astore 5
start local 5 3: goto 10
4: StackMap locals: int java.util.Iterator java.util.Set
StackMap stack:
aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.bouncycastle.asn1.x509.AlgorithmIdentifier
astore 6
start local 6 5: aload 0
getfield org.bouncycastle.mime.smime.SMIMESignedWriter$Builder.micAlgs:Ljava/util/Map;
aload 6
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
start local 7 6: aload 7
ifnonnull 9
7: aload 5
ldc "unknown"
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
8: goto 10
9: StackMap locals: org.bouncycastle.asn1.x509.AlgorithmIdentifier java.lang.String
StackMap stack:
aload 5
aload 7
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 7 end local 6 10: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
11: aload 5
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 4
12: goto 23
13: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 6
start local 6 14: iload 3
ifne 20
15: aload 5
invokeinterface java.util.Set.size:()I
iconst_1
if_icmpeq 18
16: aload 1
ldc "; micalg=\""
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
17: goto 21
18: StackMap locals: java.lang.String
StackMap stack:
aload 1
ldc "; micalg="
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
19: goto 21
20: StackMap locals:
StackMap stack:
aload 1
bipush 44
invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
pop
21: StackMap locals:
StackMap stack:
aload 1
aload 6
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
22: iinc 3 1
end local 6 23: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 13
24: iload 3
ifeq 27
25: aload 5
invokeinterface java.util.Set.size:()I
iconst_1
if_icmpeq 27
26: aload 1
bipush 34
invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
pop
27: StackMap locals:
StackMap stack:
return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 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 start local 1 start local 2 0: aload 1
ldc ";\r\n\tboundary=\""
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
1: aload 1
aload 2
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
2: aload 1
ldc "\""
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
3: return
end local 2 end local 1 end local 0 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 0: new java.security.SecureRandom
dup
invokespecial java.security.SecureRandom.<init>:()V
astore 1
start local 1 1: new java.lang.StringBuilder
dup
ldc "=="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
new java.math.BigInteger
dup
sipush 180
aload 1
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 end local 0 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