public class org.bouncycastle.mime.smime.SMimeMultipartContext implements org.bouncycastle.mime.MimeMultipartContext
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.mime.smime.SMimeMultipartContext
super_class: java.lang.Object
{
private final org.bouncycastle.mime.smime.SMimeParserContext parserContext;
descriptor: Lorg/bouncycastle/mime/smime/SMimeParserContext;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private org.bouncycastle.operator.DigestCalculator[] calculators;
descriptor: [Lorg/bouncycastle/operator/DigestCalculator;
flags: (0x0002) ACC_PRIVATE
public void (org.bouncycastle.mime.MimeParserContext, org.bouncycastle.mime.Headers);
descriptor: (Lorg/bouncycastle/mime/MimeParserContext;Lorg/bouncycastle/mime/Headers;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
checkcast org.bouncycastle.mime.smime.SMimeParserContext
putfield org.bouncycastle.mime.smime.SMimeMultipartContext.parserContext:Lorg/bouncycastle/mime/smime/SMimeParserContext;
2: aload 0
aload 0
aload 2
invokevirtual org.bouncycastle.mime.smime.SMimeMultipartContext.createDigestCalculators:(Lorg/bouncycastle/mime/Headers;)[Lorg/bouncycastle/operator/DigestCalculator;
putfield org.bouncycastle.mime.smime.SMimeMultipartContext.calculators:[Lorg/bouncycastle/operator/DigestCalculator;
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/SMimeMultipartContext;
0 4 1 parserContext Lorg/bouncycastle/mime/MimeParserContext;
0 4 2 headers Lorg/bouncycastle/mime/Headers;
MethodParameters:
Name Flags
parserContext
headers
org.bouncycastle.operator.DigestCalculator[] getDigestCalculators();
descriptor: ()[Lorg/bouncycastle/operator/DigestCalculator;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.mime.smime.SMimeMultipartContext.calculators:[Lorg/bouncycastle/operator/DigestCalculator;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/mime/smime/SMimeMultipartContext;
java.io.OutputStream getDigestOutputStream();
descriptor: ()Ljava/io/OutputStream;
flags: (0x0000)
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.mime.smime.SMimeMultipartContext.calculators:[Lorg/bouncycastle/operator/DigestCalculator;
arraylength
iconst_1
if_icmpne 2
1: aload 0
getfield org.bouncycastle.mime.smime.SMimeMultipartContext.calculators:[Lorg/bouncycastle/operator/DigestCalculator;
iconst_0
aaload
invokeinterface org.bouncycastle.operator.DigestCalculator.getOutputStream:()Ljava/io/OutputStream;
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.mime.smime.SMimeMultipartContext.calculators:[Lorg/bouncycastle/operator/DigestCalculator;
iconst_0
aaload
invokeinterface org.bouncycastle.operator.DigestCalculator.getOutputStream:()Ljava/io/OutputStream;
astore 1
start local 1 3: iconst_1
istore 2
start local 2 4: goto 7
5: StackMap locals: java.io.OutputStream int
StackMap stack:
new org.bouncycastle.util.io.TeeOutputStream
dup
aload 0
getfield org.bouncycastle.mime.smime.SMimeMultipartContext.calculators:[Lorg/bouncycastle/operator/DigestCalculator;
iload 2
aaload
invokeinterface org.bouncycastle.operator.DigestCalculator.getOutputStream:()Ljava/io/OutputStream;
aload 1
invokespecial org.bouncycastle.util.io.TeeOutputStream.<init>:(Ljava/io/OutputStream;Ljava/io/OutputStream;)V
astore 1
6: iinc 2 1
StackMap locals:
StackMap stack:
7: iload 2
aload 0
getfield org.bouncycastle.mime.smime.SMimeMultipartContext.calculators:[Lorg/bouncycastle/operator/DigestCalculator;
arraylength
if_icmplt 5
end local 2 8: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/bouncycastle/mime/smime/SMimeMultipartContext;
3 9 1 compoundStream Ljava/io/OutputStream;
4 8 2 i I
private org.bouncycastle.operator.DigestCalculator[] (org.bouncycastle.mime.Headers);
descriptor: (Lorg/bouncycastle/mime/Headers;)[Lorg/bouncycastle/operator/DigestCalculator;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=8, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.bouncycastle.mime.Headers.getContentTypeAttributes:()Ljava/util/Map;
astore 2
start local 2 1: aload 2
ldc "micalg"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
astore 3
start local 3 2: aload 3
ifnonnull 4
3: new java.lang.IllegalStateException
dup
ldc "No micalg field on content-type header"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals: java.util.Map java.lang.String
StackMap stack:
aload 3
aload 3
bipush 61
invokevirtual java.lang.String.indexOf:(I)I
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
ldc ","
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
astore 4
start local 4 5: aload 4
arraylength
anewarray org.bouncycastle.operator.DigestCalculator
astore 5
start local 5 6: iconst_0
istore 6
start local 6 7: goto 13
8: StackMap locals: java.lang.String[] org.bouncycastle.operator.DigestCalculator[] int
StackMap stack:
aload 4
iload 6
aaload
invokestatic org.bouncycastle.mime.smime.SMimeUtils.lessQuotes:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.String.trim:()Ljava/lang/String;
astore 7
start local 7 9: aload 5
iload 6
aload 0
getfield org.bouncycastle.mime.smime.SMimeMultipartContext.parserContext:Lorg/bouncycastle/mime/smime/SMimeParserContext;
invokevirtual org.bouncycastle.mime.smime.SMimeParserContext.getDigestCalculatorProvider:()Lorg/bouncycastle/operator/DigestCalculatorProvider;
10: new org.bouncycastle.asn1.x509.AlgorithmIdentifier
dup
aload 7
invokestatic org.bouncycastle.mime.smime.SMimeUtils.getDigestOID:(Ljava/lang/String;)Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)V
11: invokeinterface org.bouncycastle.operator.DigestCalculatorProvider.get:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)Lorg/bouncycastle/operator/DigestCalculator;
aastore
end local 7 12: iinc 6 1
StackMap locals:
StackMap stack:
13: iload 6
aload 4
arraylength
if_icmplt 8
end local 6 14: aload 5
15: areturn
end local 5 end local 4 end local 3 end local 2 16: StackMap locals: org.bouncycastle.mime.smime.SMimeMultipartContext org.bouncycastle.mime.Headers
StackMap stack: org.bouncycastle.operator.OperatorCreationException
pop
17: aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/bouncycastle/mime/smime/SMimeMultipartContext;
0 18 1 headers Lorg/bouncycastle/mime/Headers;
1 16 2 contentTypeFields Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
2 16 3 micalgs Ljava/lang/String;
5 16 4 algs [Ljava/lang/String;
6 16 5 dcOut [Lorg/bouncycastle/operator/DigestCalculator;
7 14 6 t I
9 12 7 alg Ljava/lang/String;
Exception table:
from to target type
0 15 16 Class org.bouncycastle.operator.OperatorCreationException
MethodParameters:
Name Flags
headers
public org.bouncycastle.mime.MimeContext createContext(int);
descriptor: (I)Lorg/bouncycastle/mime/MimeContext;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: new org.bouncycastle.mime.smime.SMimeMultipartContext$1
dup
aload 0
iload 1
invokespecial org.bouncycastle.mime.smime.SMimeMultipartContext$1.<init>:(Lorg/bouncycastle/mime/smime/SMimeMultipartContext;I)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/mime/smime/SMimeMultipartContext;
0 1 1 partNo I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
partNo final
public java.io.InputStream (org.bouncycastle.mime.Headers, java.io.InputStream);
descriptor: (Lorg/bouncycastle/mime/Headers;Ljava/io/InputStream;)Ljava/io/InputStream;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/mime/smime/SMimeMultipartContext;
0 1 1 headers Lorg/bouncycastle/mime/Headers;
0 1 2 contentStream Ljava/io/InputStream;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
headers
contentStream
}
SourceFile: "SMimeMultipartContext.java"
NestMembers:
org.bouncycastle.mime.smime.SMimeMultipartContext$1
InnerClasses:
org.bouncycastle.mime.smime.SMimeMultipartContext$1