public class org.bouncycastle.cms.SignerInformation
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.cms.SignerInformation
super_class: java.lang.Object
{
private final org.bouncycastle.cms.SignerId sid;
descriptor: Lorg/bouncycastle/cms/SignerId;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.bouncycastle.cms.CMSProcessable content;
descriptor: Lorg/bouncycastle/cms/CMSProcessable;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final byte[] signature;
descriptor: [B
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.bouncycastle.asn1.ASN1ObjectIdentifier contentType;
descriptor: Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean isCounterSignature;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private org.bouncycastle.asn1.cms.AttributeTable signedAttributeValues;
descriptor: Lorg/bouncycastle/asn1/cms/AttributeTable;
flags: (0x0002) ACC_PRIVATE
private org.bouncycastle.asn1.cms.AttributeTable unsignedAttributeValues;
descriptor: Lorg/bouncycastle/asn1/cms/AttributeTable;
flags: (0x0002) ACC_PRIVATE
private byte[] resultDigest;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
protected final org.bouncycastle.asn1.cms.SignerInfo info;
descriptor: Lorg/bouncycastle/asn1/cms/SignerInfo;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final org.bouncycastle.asn1.x509.AlgorithmIdentifier digestAlgorithm;
descriptor: Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final org.bouncycastle.asn1.x509.AlgorithmIdentifier encryptionAlgorithm;
descriptor: Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final org.bouncycastle.asn1.ASN1Set signedAttributeSet;
descriptor: Lorg/bouncycastle/asn1/ASN1Set;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final org.bouncycastle.asn1.ASN1Set unsignedAttributeSet;
descriptor: Lorg/bouncycastle/asn1/ASN1Set;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
void <init>(org.bouncycastle.asn1.cms.SignerInfo, org.bouncycastle.asn1.ASN1ObjectIdentifier, org.bouncycastle.cms.CMSProcessable, byte[]);
descriptor: (Lorg/bouncycastle/asn1/cms/SignerInfo;Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/cms/CMSProcessable;[B)V
flags: (0x0000)
Code:
stack=5, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield org.bouncycastle.cms.SignerInformation.info:Lorg/bouncycastle/asn1/cms/SignerInfo;
2: aload 0
aload 2
putfield org.bouncycastle.cms.SignerInformation.contentType:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
3: aload 0
aload 2
ifnonnull 4
iconst_1
goto 5
StackMap locals: org.bouncycastle.cms.SignerInformation org.bouncycastle.asn1.cms.SignerInfo org.bouncycastle.asn1.ASN1ObjectIdentifier org.bouncycastle.cms.CMSProcessable byte[]
StackMap stack: org.bouncycastle.cms.SignerInformation
4: iconst_0
StackMap locals: org.bouncycastle.cms.SignerInformation org.bouncycastle.asn1.cms.SignerInfo org.bouncycastle.asn1.ASN1ObjectIdentifier org.bouncycastle.cms.CMSProcessable byte[]
StackMap stack: org.bouncycastle.cms.SignerInformation int
5: putfield org.bouncycastle.cms.SignerInformation.isCounterSignature:Z
6: aload 1
invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getSID:()Lorg/bouncycastle/asn1/cms/SignerIdentifier;
astore 5
start local 5 7: aload 5
invokevirtual org.bouncycastle.asn1.cms.SignerIdentifier.isTagged:()Z
ifeq 11
8: aload 5
invokevirtual org.bouncycastle.asn1.cms.SignerIdentifier.getId:()Lorg/bouncycastle/asn1/ASN1Encodable;
invokestatic org.bouncycastle.asn1.ASN1OctetString.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/ASN1OctetString;
astore 6
start local 6 9: aload 0
new org.bouncycastle.cms.SignerId
dup
aload 6
invokevirtual org.bouncycastle.asn1.ASN1OctetString.getOctets:()[B
invokespecial org.bouncycastle.cms.SignerId.<init>:([B)V
putfield org.bouncycastle.cms.SignerInformation.sid:Lorg/bouncycastle/cms/SignerId;
end local 6 10: goto 13
11: StackMap locals: org.bouncycastle.asn1.cms.SignerIdentifier
StackMap stack:
aload 5
invokevirtual org.bouncycastle.asn1.cms.SignerIdentifier.getId:()Lorg/bouncycastle/asn1/ASN1Encodable;
invokestatic org.bouncycastle.asn1.cms.IssuerAndSerialNumber.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/cms/IssuerAndSerialNumber;
astore 6
start local 6 12: aload 0
new org.bouncycastle.cms.SignerId
dup
aload 6
invokevirtual org.bouncycastle.asn1.cms.IssuerAndSerialNumber.getName:()Lorg/bouncycastle/asn1/x500/X500Name;
aload 6
invokevirtual org.bouncycastle.asn1.cms.IssuerAndSerialNumber.getSerialNumber:()Lorg/bouncycastle/asn1/ASN1Integer;
invokevirtual org.bouncycastle.asn1.ASN1Integer.getValue:()Ljava/math/BigInteger;
invokespecial org.bouncycastle.cms.SignerId.<init>:(Lorg/bouncycastle/asn1/x500/X500Name;Ljava/math/BigInteger;)V
putfield org.bouncycastle.cms.SignerInformation.sid:Lorg/bouncycastle/cms/SignerId;
end local 6 13: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getDigestAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
putfield org.bouncycastle.cms.SignerInformation.digestAlgorithm:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
14: aload 0
aload 1
invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getAuthenticatedAttributes:()Lorg/bouncycastle/asn1/ASN1Set;
putfield org.bouncycastle.cms.SignerInformation.signedAttributeSet:Lorg/bouncycastle/asn1/ASN1Set;
15: aload 0
aload 1
invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getUnauthenticatedAttributes:()Lorg/bouncycastle/asn1/ASN1Set;
putfield org.bouncycastle.cms.SignerInformation.unsignedAttributeSet:Lorg/bouncycastle/asn1/ASN1Set;
16: aload 0
aload 1
invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getDigestEncryptionAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
putfield org.bouncycastle.cms.SignerInformation.encryptionAlgorithm:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
17: aload 0
aload 1
invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getEncryptedDigest:()Lorg/bouncycastle/asn1/ASN1OctetString;
invokevirtual org.bouncycastle.asn1.ASN1OctetString.getOctets:()[B
putfield org.bouncycastle.cms.SignerInformation.signature:[B
18: aload 0
aload 3
putfield org.bouncycastle.cms.SignerInformation.content:Lorg/bouncycastle/cms/CMSProcessable;
19: aload 0
aload 4
putfield org.bouncycastle.cms.SignerInformation.resultDigest:[B
20: 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 21 0 this Lorg/bouncycastle/cms/SignerInformation;
0 21 1 info Lorg/bouncycastle/asn1/cms/SignerInfo;
0 21 2 contentType Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
0 21 3 content Lorg/bouncycastle/cms/CMSProcessable;
0 21 4 resultDigest [B
7 21 5 s Lorg/bouncycastle/asn1/cms/SignerIdentifier;
9 10 6 octs Lorg/bouncycastle/asn1/ASN1OctetString;
12 13 6 iAnds Lorg/bouncycastle/asn1/cms/IssuerAndSerialNumber;
MethodParameters:
Name Flags
info
contentType
content
resultDigest
protected void <init>(org.bouncycastle.cms.SignerInformation);
descriptor: (Lorg/bouncycastle/cms/SignerInformation;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
getfield org.bouncycastle.cms.SignerInformation.info:Lorg/bouncycastle/asn1/cms/SignerInfo;
putfield org.bouncycastle.cms.SignerInformation.info:Lorg/bouncycastle/asn1/cms/SignerInfo;
2: aload 0
aload 1
getfield org.bouncycastle.cms.SignerInformation.contentType:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
putfield org.bouncycastle.cms.SignerInformation.contentType:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
3: aload 0
aload 1
invokevirtual org.bouncycastle.cms.SignerInformation.isCounterSignature:()Z
putfield org.bouncycastle.cms.SignerInformation.isCounterSignature:Z
4: aload 0
aload 1
invokevirtual org.bouncycastle.cms.SignerInformation.getSID:()Lorg/bouncycastle/cms/SignerId;
putfield org.bouncycastle.cms.SignerInformation.sid:Lorg/bouncycastle/cms/SignerId;
5: aload 0
aload 0
getfield org.bouncycastle.cms.SignerInformation.info:Lorg/bouncycastle/asn1/cms/SignerInfo;
invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getDigestAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
putfield org.bouncycastle.cms.SignerInformation.digestAlgorithm:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
6: aload 0
aload 0
getfield org.bouncycastle.cms.SignerInformation.info:Lorg/bouncycastle/asn1/cms/SignerInfo;
invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getAuthenticatedAttributes:()Lorg/bouncycastle/asn1/ASN1Set;
putfield org.bouncycastle.cms.SignerInformation.signedAttributeSet:Lorg/bouncycastle/asn1/ASN1Set;
7: aload 0
aload 0
getfield org.bouncycastle.cms.SignerInformation.info:Lorg/bouncycastle/asn1/cms/SignerInfo;
invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getUnauthenticatedAttributes:()Lorg/bouncycastle/asn1/ASN1Set;
putfield org.bouncycastle.cms.SignerInformation.unsignedAttributeSet:Lorg/bouncycastle/asn1/ASN1Set;
8: aload 0
aload 0
getfield org.bouncycastle.cms.SignerInformation.info:Lorg/bouncycastle/asn1/cms/SignerInfo;
invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getDigestEncryptionAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
putfield org.bouncycastle.cms.SignerInformation.encryptionAlgorithm:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
9: aload 0
aload 0
getfield org.bouncycastle.cms.SignerInformation.info:Lorg/bouncycastle/asn1/cms/SignerInfo;
invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getEncryptedDigest:()Lorg/bouncycastle/asn1/ASN1OctetString;
invokevirtual org.bouncycastle.asn1.ASN1OctetString.getOctets:()[B
putfield org.bouncycastle.cms.SignerInformation.signature:[B
10: aload 0
aload 1
getfield org.bouncycastle.cms.SignerInformation.content:Lorg/bouncycastle/cms/CMSProcessable;
putfield org.bouncycastle.cms.SignerInformation.content:Lorg/bouncycastle/cms/CMSProcessable;
11: aload 0
aload 1
getfield org.bouncycastle.cms.SignerInformation.resultDigest:[B
putfield org.bouncycastle.cms.SignerInformation.resultDigest:[B
12: aload 0
aload 1
getfield org.bouncycastle.cms.SignerInformation.signedAttributeValues:Lorg/bouncycastle/asn1/cms/AttributeTable;
putfield org.bouncycastle.cms.SignerInformation.signedAttributeValues:Lorg/bouncycastle/asn1/cms/AttributeTable;
13: aload 0
aload 1
getfield org.bouncycastle.cms.SignerInformation.unsignedAttributeValues:Lorg/bouncycastle/asn1/cms/AttributeTable;
putfield org.bouncycastle.cms.SignerInformation.unsignedAttributeValues:Lorg/bouncycastle/asn1/cms/AttributeTable;
14: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/bouncycastle/cms/SignerInformation;
0 15 1 baseInfo Lorg/bouncycastle/cms/SignerInformation;
MethodParameters:
Name Flags
baseInfo
public boolean isCounterSignature();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.cms.SignerInformation.isCounterSignature:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/cms/SignerInformation;
public org.bouncycastle.asn1.ASN1ObjectIdentifier getContentType();
descriptor: ()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.cms.SignerInformation.contentType:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/cms/SignerInformation;
private byte[] encodeObj(org.bouncycastle.asn1.ASN1Encodable);
descriptor: (Lorg/bouncycastle/asn1/ASN1Encodable;)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnull 2
1: aload 1
invokeinterface org.bouncycastle.asn1.ASN1Encodable.toASN1Primitive:()Lorg/bouncycastle/asn1/ASN1Primitive;
invokevirtual org.bouncycastle.asn1.ASN1Primitive.getEncoded:()[B
areturn
2: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/bouncycastle/cms/SignerInformation;
0 3 1 obj Lorg/bouncycastle/asn1/ASN1Encodable;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
obj
public org.bouncycastle.cms.SignerId getSID();
descriptor: ()Lorg/bouncycastle/cms/SignerId;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.cms.SignerInformation.sid:Lorg/bouncycastle/cms/SignerId;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/cms/SignerInformation;
public int getVersion();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.cms.SignerInformation.info:Lorg/bouncycastle/asn1/cms/SignerInfo;
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
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/cms/SignerInformation;
public org.bouncycastle.asn1.x509.AlgorithmIdentifier getDigestAlgorithmID();
descriptor: ()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.cms.SignerInformation.digestAlgorithm:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/cms/SignerInformation;
public java.lang.String getDigestAlgOID();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.cms.SignerInformation.digestAlgorithm:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/cms/SignerInformation;
public byte[] getDigestAlgParams();
descriptor: ()[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
aload 0
getfield org.bouncycastle.cms.SignerInformation.digestAlgorithm:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getParameters:()Lorg/bouncycastle/asn1/ASN1Encodable;
invokevirtual org.bouncycastle.cms.SignerInformation.encodeObj:(Lorg/bouncycastle/asn1/ASN1Encodable;)[B
1: areturn
2: StackMap locals:
StackMap stack: java.lang.Exception
astore 1
start local 1 3: new java.lang.RuntimeException
dup
new java.lang.StringBuilder
dup
ldc "exception getting digest parameters "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/bouncycastle/cms/SignerInformation;
3 4 1 e Ljava/lang/Exception;
Exception table:
from to target type
0 1 2 Class java.lang.Exception
public byte[] getContentDigest();
descriptor: ()[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.cms.SignerInformation.resultDigest:[B
ifnonnull 2
1: new java.lang.IllegalStateException
dup
ldc "method can only be called after verify."
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.cms.SignerInformation.resultDigest:[B
invokestatic org.bouncycastle.util.Arrays.clone:([B)[B
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/bouncycastle/cms/SignerInformation;
public java.lang.String getEncryptionAlgOID();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.cms.SignerInformation.encryptionAlgorithm:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/cms/SignerInformation;
public byte[] getEncryptionAlgParams();
descriptor: ()[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
aload 0
getfield org.bouncycastle.cms.SignerInformation.encryptionAlgorithm:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getParameters:()Lorg/bouncycastle/asn1/ASN1Encodable;
invokevirtual org.bouncycastle.cms.SignerInformation.encodeObj:(Lorg/bouncycastle/asn1/ASN1Encodable;)[B
1: areturn
2: StackMap locals:
StackMap stack: java.lang.Exception
astore 1
start local 1 3: new java.lang.RuntimeException
dup
new java.lang.StringBuilder
dup
ldc "exception getting encryption parameters "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/bouncycastle/cms/SignerInformation;
3 4 1 e Ljava/lang/Exception;
Exception table:
from to target type
0 1 2 Class java.lang.Exception
public org.bouncycastle.asn1.cms.AttributeTable getSignedAttributes();
descriptor: ()Lorg/bouncycastle/asn1/cms/AttributeTable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.cms.SignerInformation.signedAttributeSet:Lorg/bouncycastle/asn1/ASN1Set;
ifnull 2
aload 0
getfield org.bouncycastle.cms.SignerInformation.signedAttributeValues:Lorg/bouncycastle/asn1/cms/AttributeTable;
ifnonnull 2
1: aload 0
new org.bouncycastle.asn1.cms.AttributeTable
dup
aload 0
getfield org.bouncycastle.cms.SignerInformation.signedAttributeSet:Lorg/bouncycastle/asn1/ASN1Set;
invokespecial org.bouncycastle.asn1.cms.AttributeTable.<init>:(Lorg/bouncycastle/asn1/ASN1Set;)V
putfield org.bouncycastle.cms.SignerInformation.signedAttributeValues:Lorg/bouncycastle/asn1/cms/AttributeTable;
2: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.cms.SignerInformation.signedAttributeValues:Lorg/bouncycastle/asn1/cms/AttributeTable;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/bouncycastle/cms/SignerInformation;
public org.bouncycastle.asn1.cms.AttributeTable getUnsignedAttributes();
descriptor: ()Lorg/bouncycastle/asn1/cms/AttributeTable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.cms.SignerInformation.unsignedAttributeSet:Lorg/bouncycastle/asn1/ASN1Set;
ifnull 2
aload 0
getfield org.bouncycastle.cms.SignerInformation.unsignedAttributeValues:Lorg/bouncycastle/asn1/cms/AttributeTable;
ifnonnull 2
1: aload 0
new org.bouncycastle.asn1.cms.AttributeTable
dup
aload 0
getfield org.bouncycastle.cms.SignerInformation.unsignedAttributeSet:Lorg/bouncycastle/asn1/ASN1Set;
invokespecial org.bouncycastle.asn1.cms.AttributeTable.<init>:(Lorg/bouncycastle/asn1/ASN1Set;)V
putfield org.bouncycastle.cms.SignerInformation.unsignedAttributeValues:Lorg/bouncycastle/asn1/cms/AttributeTable;
2: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.cms.SignerInformation.unsignedAttributeValues:Lorg/bouncycastle/asn1/cms/AttributeTable;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/bouncycastle/cms/SignerInformation;
public byte[] getSignature();
descriptor: ()[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.cms.SignerInformation.signature:[B
invokestatic org.bouncycastle.util.Arrays.clone:([B)[B
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/cms/SignerInformation;
public org.bouncycastle.cms.SignerInformationStore getCounterSignatures();
descriptor: ()Lorg/bouncycastle/cms/SignerInformationStore;
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=9, args_size=1
start local 0 0: aload 0
invokevirtual org.bouncycastle.cms.SignerInformation.getUnsignedAttributes:()Lorg/bouncycastle/asn1/cms/AttributeTable;
astore 1
start local 1 1: aload 1
ifnonnull 3
2: new org.bouncycastle.cms.SignerInformationStore
dup
new java.util.ArrayList
dup
iconst_0
invokespecial java.util.ArrayList.<init>:(I)V
invokespecial org.bouncycastle.cms.SignerInformationStore.<init>:(Ljava/util/Collection;)V
areturn
3: StackMap locals: org.bouncycastle.asn1.cms.AttributeTable
StackMap stack:
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 4: aload 1
getstatic org.bouncycastle.asn1.cms.CMSAttributes.counterSignature:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.cms.AttributeTable.getAll:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Lorg/bouncycastle/asn1/ASN1EncodableVector;
astore 3
start local 3 5: iconst_0
istore 4
start local 4 6: goto 16
7: StackMap locals: java.util.List org.bouncycastle.asn1.ASN1EncodableVector int
StackMap stack:
aload 3
iload 4
invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.get:(I)Lorg/bouncycastle/asn1/ASN1Encodable;
checkcast org.bouncycastle.asn1.cms.Attribute
astore 5
start local 5 8: aload 5
invokevirtual org.bouncycastle.asn1.cms.Attribute.getAttrValues:()Lorg/bouncycastle/asn1/ASN1Set;
astore 6
start local 6 9: aload 6
invokevirtual org.bouncycastle.asn1.ASN1Set.size:()I
pop
10: aload 6
invokevirtual org.bouncycastle.asn1.ASN1Set.getObjects:()Ljava/util/Enumeration;
astore 7
start local 7 11: goto 14
12: StackMap locals: org.bouncycastle.asn1.cms.Attribute org.bouncycastle.asn1.ASN1Set java.util.Enumeration
StackMap stack:
aload 7
invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
invokestatic org.bouncycastle.asn1.cms.SignerInfo.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/cms/SignerInfo;
astore 8
start local 8 13: aload 2
new org.bouncycastle.cms.SignerInformation
dup
aload 8
aconst_null
new org.bouncycastle.cms.CMSProcessableByteArray
dup
aload 0
invokevirtual org.bouncycastle.cms.SignerInformation.getSignature:()[B
invokespecial org.bouncycastle.cms.CMSProcessableByteArray.<init>:([B)V
aconst_null
invokespecial org.bouncycastle.cms.SignerInformation.<init>:(Lorg/bouncycastle/asn1/cms/SignerInfo;Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/cms/CMSProcessable;[B)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 8 14: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Enumeration.hasMoreElements:()Z
ifne 12
end local 7 end local 6 end local 5 15: iinc 4 1
StackMap locals:
StackMap stack:
16: iload 4
aload 3
invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.size:()I
if_icmplt 7
end local 4 17: new org.bouncycastle.cms.SignerInformationStore
dup
aload 2
invokespecial org.bouncycastle.cms.SignerInformationStore.<init>:(Ljava/util/Collection;)V
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/bouncycastle/cms/SignerInformation;
1 18 1 unsignedAttributeTable Lorg/bouncycastle/asn1/cms/AttributeTable;
4 18 2 counterSignatures Ljava/util/List;
5 18 3 allCSAttrs Lorg/bouncycastle/asn1/ASN1EncodableVector;
6 17 4 i I
8 15 5 counterSignatureAttribute Lorg/bouncycastle/asn1/cms/Attribute;
9 15 6 values Lorg/bouncycastle/asn1/ASN1Set;
11 15 7 en Ljava/util/Enumeration;
13 14 8 si Lorg/bouncycastle/asn1/cms/SignerInfo;
public byte[] getEncodedSignedAttributes();
descriptor: ()[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.cms.SignerInformation.signedAttributeSet:Lorg/bouncycastle/asn1/ASN1Set;
ifnull 2
1: aload 0
getfield org.bouncycastle.cms.SignerInformation.signedAttributeSet:Lorg/bouncycastle/asn1/ASN1Set;
ldc "DER"
invokevirtual org.bouncycastle.asn1.ASN1Set.getEncoded:(Ljava/lang/String;)[B
areturn
2: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/bouncycastle/cms/SignerInformation;
Exceptions:
throws java.io.IOException
private boolean doVerify(org.bouncycastle.cms.SignerInformationVerifier);
descriptor: (Lorg/bouncycastle/cms/SignerInformationVerifier;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=9, args_size=2
start local 0 start local 1 0: getstatic org.bouncycastle.cms.CMSSignedHelper.INSTANCE:Lorg/bouncycastle/cms/CMSSignedHelper;
aload 0
invokevirtual org.bouncycastle.cms.SignerInformation.getEncryptionAlgOID:()Ljava/lang/String;
invokevirtual org.bouncycastle.cms.CMSSignedHelper.getEncryptionAlgName:(Ljava/lang/String;)Ljava/lang/String;
astore 2
start local 2 1: aload 1
aload 0
getfield org.bouncycastle.cms.SignerInformation.encryptionAlgorithm:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
aload 0
getfield org.bouncycastle.cms.SignerInformation.info:Lorg/bouncycastle/asn1/cms/SignerInfo;
invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getDigestAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
invokevirtual org.bouncycastle.cms.SignerInformationVerifier.getContentVerifier:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)Lorg/bouncycastle/operator/ContentVerifier;
astore 3
start local 3 2: goto 5
end local 3 3: StackMap locals: org.bouncycastle.cms.SignerInformation org.bouncycastle.cms.SignerInformationVerifier java.lang.String
StackMap stack: org.bouncycastle.operator.OperatorCreationException
astore 4
start local 4 4: new org.bouncycastle.cms.CMSException
dup
new java.lang.StringBuilder
dup
ldc "can't create content verifier: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual org.bouncycastle.operator.OperatorCreationException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 4
invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
athrow
end local 4 start local 3 5: StackMap locals: org.bouncycastle.operator.ContentVerifier
StackMap stack:
aload 3
invokeinterface org.bouncycastle.operator.ContentVerifier.getOutputStream:()Ljava/io/OutputStream;
astore 4
start local 4 6: aload 0
getfield org.bouncycastle.cms.SignerInformation.resultDigest:[B
ifnonnull 28
7: aload 1
aload 0
invokevirtual org.bouncycastle.cms.SignerInformation.getDigestAlgorithmID:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
invokevirtual org.bouncycastle.cms.SignerInformationVerifier.getDigestCalculator:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)Lorg/bouncycastle/operator/DigestCalculator;
astore 5
start local 5 8: aload 0
getfield org.bouncycastle.cms.SignerInformation.content:Lorg/bouncycastle/cms/CMSProcessable;
ifnull 22
9: aload 5
invokeinterface org.bouncycastle.operator.DigestCalculator.getOutputStream:()Ljava/io/OutputStream;
astore 6
start local 6 10: aload 0
getfield org.bouncycastle.cms.SignerInformation.signedAttributeSet:Lorg/bouncycastle/asn1/ASN1Set;
ifnonnull 18
11: aload 3
instanceof org.bouncycastle.operator.RawContentVerifier
ifeq 14
12: aload 0
getfield org.bouncycastle.cms.SignerInformation.content:Lorg/bouncycastle/cms/CMSProcessable;
aload 6
invokeinterface org.bouncycastle.cms.CMSProcessable.write:(Ljava/io/OutputStream;)V
13: goto 20
14: StackMap locals: java.io.OutputStream org.bouncycastle.operator.DigestCalculator java.io.OutputStream
StackMap stack:
new org.bouncycastle.util.io.TeeOutputStream
dup
aload 6
aload 4
invokespecial org.bouncycastle.util.io.TeeOutputStream.<init>:(Ljava/io/OutputStream;Ljava/io/OutputStream;)V
astore 7
start local 7 15: aload 0
getfield org.bouncycastle.cms.SignerInformation.content:Lorg/bouncycastle/cms/CMSProcessable;
aload 7
invokeinterface org.bouncycastle.cms.CMSProcessable.write:(Ljava/io/OutputStream;)V
16: aload 7
invokevirtual java.io.OutputStream.close:()V
end local 7 17: goto 20
18: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.cms.SignerInformation.content:Lorg/bouncycastle/cms/CMSProcessable;
aload 6
invokeinterface org.bouncycastle.cms.CMSProcessable.write:(Ljava/io/OutputStream;)V
19: aload 4
aload 0
invokevirtual org.bouncycastle.cms.SignerInformation.getEncodedSignedAttributes:()[B
invokevirtual java.io.OutputStream.write:([B)V
20: StackMap locals:
StackMap stack:
aload 6
invokevirtual java.io.OutputStream.close:()V
end local 6 21: goto 26
22: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.cms.SignerInformation.signedAttributeSet:Lorg/bouncycastle/asn1/ASN1Set;
ifnull 25
23: aload 4
aload 0
invokevirtual org.bouncycastle.cms.SignerInformation.getEncodedSignedAttributes:()[B
invokevirtual java.io.OutputStream.write:([B)V
24: goto 26
25: StackMap locals:
StackMap stack:
new org.bouncycastle.cms.CMSException
dup
ldc "data not encapsulated in signature - use detached constructor."
invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;)V
athrow
26: StackMap locals:
StackMap stack:
aload 0
aload 5
invokeinterface org.bouncycastle.operator.DigestCalculator.getDigest:()[B
putfield org.bouncycastle.cms.SignerInformation.resultDigest:[B
end local 5 27: goto 33
28: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.cms.SignerInformation.signedAttributeSet:Lorg/bouncycastle/asn1/ASN1Set;
ifnonnull 32
29: aload 0
getfield org.bouncycastle.cms.SignerInformation.content:Lorg/bouncycastle/cms/CMSProcessable;
ifnull 33
30: aload 0
getfield org.bouncycastle.cms.SignerInformation.content:Lorg/bouncycastle/cms/CMSProcessable;
aload 4
invokeinterface org.bouncycastle.cms.CMSProcessable.write:(Ljava/io/OutputStream;)V
31: goto 33
32: StackMap locals:
StackMap stack:
aload 4
aload 0
invokevirtual org.bouncycastle.cms.SignerInformation.getEncodedSignedAttributes:()[B
invokevirtual java.io.OutputStream.write:([B)V
33: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.io.OutputStream.close:()V
end local 4 34: goto 39
35: StackMap locals: org.bouncycastle.cms.SignerInformation org.bouncycastle.cms.SignerInformationVerifier java.lang.String org.bouncycastle.operator.ContentVerifier
StackMap stack: java.io.IOException
astore 4
start local 4 36: new org.bouncycastle.cms.CMSException
dup
ldc "can't process mime object to create signature."
aload 4
invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
athrow
end local 4 37: StackMap locals:
StackMap stack: org.bouncycastle.operator.OperatorCreationException
astore 4
start local 4 38: new org.bouncycastle.cms.CMSException
dup
new java.lang.StringBuilder
dup
ldc "can't create digest calculator: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual org.bouncycastle.operator.OperatorCreationException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 4
invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
athrow
end local 4 39: StackMap locals:
StackMap stack:
aload 0
40: getstatic org.bouncycastle.asn1.cms.CMSAttributes.contentType:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
ldc "content-type"
41: invokevirtual org.bouncycastle.cms.SignerInformation.getSingleValuedSignedAttribute:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Ljava/lang/String;)Lorg/bouncycastle/asn1/ASN1Primitive;
astore 4
start local 4 42: aload 4
ifnonnull 45
43: aload 0
getfield org.bouncycastle.cms.SignerInformation.isCounterSignature:Z
ifne 52
aload 0
getfield org.bouncycastle.cms.SignerInformation.signedAttributeSet:Lorg/bouncycastle/asn1/ASN1Set;
ifnull 52
44: new org.bouncycastle.cms.CMSException
dup
ldc "The content-type attribute type MUST be present whenever signed attributes are present in signed-data"
invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;)V
athrow
45: StackMap locals: org.bouncycastle.asn1.ASN1Primitive
StackMap stack:
aload 0
getfield org.bouncycastle.cms.SignerInformation.isCounterSignature:Z
ifeq 47
46: new org.bouncycastle.cms.CMSException
dup
ldc "[For counter signatures,] the signedAttributes field MUST NOT contain a content-type attribute"
invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;)V
athrow
47: StackMap locals:
StackMap stack:
aload 4
instanceof org.bouncycastle.asn1.ASN1ObjectIdentifier
ifne 49
48: new org.bouncycastle.cms.CMSException
dup
ldc "content-type attribute value not of ASN.1 type 'OBJECT IDENTIFIER'"
invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;)V
athrow
49: StackMap locals:
StackMap stack:
aload 4
checkcast org.bouncycastle.asn1.ASN1ObjectIdentifier
astore 5
start local 5 50: aload 5
aload 0
getfield org.bouncycastle.cms.SignerInformation.contentType:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.equals:(Ljava/lang/Object;)Z
ifne 52
51: new org.bouncycastle.cms.CMSException
dup
ldc "content-type attribute value does not match eContentType"
invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;)V
athrow
end local 5 end local 4 52: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.bouncycastle.cms.SignerInformation.getSignedAttributes:()Lorg/bouncycastle/asn1/cms/AttributeTable;
astore 4
start local 4 53: aload 0
invokevirtual org.bouncycastle.cms.SignerInformation.getUnsignedAttributes:()Lorg/bouncycastle/asn1/cms/AttributeTable;
astore 5
start local 5 54: aload 5
ifnull 56
aload 5
getstatic org.bouncycastle.asn1.cms.CMSAttributes.cmsAlgorithmProtect:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.cms.AttributeTable.getAll:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Lorg/bouncycastle/asn1/ASN1EncodableVector;
invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.size:()I
ifle 56
55: new org.bouncycastle.cms.CMSException
dup
ldc "A cmsAlgorithmProtect attribute MUST be a signed attribute"
invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;)V
athrow
56: StackMap locals: org.bouncycastle.asn1.cms.AttributeTable org.bouncycastle.asn1.cms.AttributeTable
StackMap stack:
aload 4
ifnull 69
57: aload 4
getstatic org.bouncycastle.asn1.cms.CMSAttributes.cmsAlgorithmProtect:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.cms.AttributeTable.getAll:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Lorg/bouncycastle/asn1/ASN1EncodableVector;
astore 6
start local 6 58: aload 6
invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.size:()I
iconst_1
if_icmple 60
59: new org.bouncycastle.cms.CMSException
dup
ldc "Only one instance of a cmsAlgorithmProtect attribute can be present"
invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;)V
athrow
60: StackMap locals: org.bouncycastle.asn1.ASN1EncodableVector
StackMap stack:
aload 6
invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.size:()I
ifle 69
61: aload 6
iconst_0
invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.get:(I)Lorg/bouncycastle/asn1/ASN1Encodable;
invokestatic org.bouncycastle.asn1.cms.Attribute.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/cms/Attribute;
astore 7
start local 7 62: aload 7
invokevirtual org.bouncycastle.asn1.cms.Attribute.getAttrValues:()Lorg/bouncycastle/asn1/ASN1Set;
invokevirtual org.bouncycastle.asn1.ASN1Set.size:()I
iconst_1
if_icmpeq 64
63: new org.bouncycastle.cms.CMSException
dup
ldc "A cmsAlgorithmProtect attribute MUST contain exactly one value"
invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;)V
athrow
64: StackMap locals: org.bouncycastle.asn1.cms.Attribute
StackMap stack:
aload 7
invokevirtual org.bouncycastle.asn1.cms.Attribute.getAttributeValues:()[Lorg/bouncycastle/asn1/ASN1Encodable;
iconst_0
aaload
invokestatic org.bouncycastle.asn1.cms.CMSAlgorithmProtection.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/cms/CMSAlgorithmProtection;
astore 8
start local 8 65: aload 8
invokevirtual org.bouncycastle.asn1.cms.CMSAlgorithmProtection.getDigestAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
aload 0
getfield org.bouncycastle.cms.SignerInformation.info:Lorg/bouncycastle/asn1/cms/SignerInfo;
invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getDigestAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
invokestatic org.bouncycastle.cms.CMSUtils.isEquivalent:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)Z
ifne 67
66: new org.bouncycastle.cms.CMSException
dup
ldc "CMS Algorithm Identifier Protection check failed for digestAlgorithm"
invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;)V
athrow
67: StackMap locals: org.bouncycastle.asn1.cms.CMSAlgorithmProtection
StackMap stack:
aload 8
invokevirtual org.bouncycastle.asn1.cms.CMSAlgorithmProtection.getSignatureAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
aload 0
getfield org.bouncycastle.cms.SignerInformation.info:Lorg/bouncycastle/asn1/cms/SignerInfo;
invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getDigestEncryptionAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
invokestatic org.bouncycastle.cms.CMSUtils.isEquivalent:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)Z
ifne 69
68: new org.bouncycastle.cms.CMSException
dup
ldc "CMS Algorithm Identifier Protection check failed for signatureAlgorithm"
invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;)V
athrow
end local 8 end local 7 end local 6 end local 5 69: StackMap locals: org.bouncycastle.cms.SignerInformation org.bouncycastle.cms.SignerInformationVerifier java.lang.String org.bouncycastle.operator.ContentVerifier org.bouncycastle.asn1.cms.AttributeTable
StackMap stack:
aload 0
70: getstatic org.bouncycastle.asn1.cms.CMSAttributes.messageDigest:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
ldc "message-digest"
71: invokevirtual org.bouncycastle.cms.SignerInformation.getSingleValuedSignedAttribute:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Ljava/lang/String;)Lorg/bouncycastle/asn1/ASN1Primitive;
astore 5
start local 5 72: aload 5
ifnonnull 75
73: aload 0
getfield org.bouncycastle.cms.SignerInformation.signedAttributeSet:Lorg/bouncycastle/asn1/ASN1Set;
ifnull 80
74: new org.bouncycastle.cms.CMSException
dup
ldc "the message-digest signed attribute type MUST be present when there are any signed attributes present"
invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;)V
athrow
75: StackMap locals: org.bouncycastle.asn1.ASN1Primitive
StackMap stack:
aload 5
instanceof org.bouncycastle.asn1.ASN1OctetString
ifne 77
76: new org.bouncycastle.cms.CMSException
dup
ldc "message-digest attribute value not of ASN.1 type 'OCTET STRING'"
invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;)V
athrow
77: StackMap locals:
StackMap stack:
aload 5
checkcast org.bouncycastle.asn1.ASN1OctetString
astore 6
start local 6 78: aload 0
getfield org.bouncycastle.cms.SignerInformation.resultDigest:[B
aload 6
invokevirtual org.bouncycastle.asn1.ASN1OctetString.getOctets:()[B
invokestatic org.bouncycastle.util.Arrays.constantTimeAreEqual:([B[B)Z
ifne 80
79: new org.bouncycastle.cms.CMSSignerDigestMismatchException
dup
ldc "message-digest attribute value does not match calculated value"
invokespecial org.bouncycastle.cms.CMSSignerDigestMismatchException.<init>:(Ljava/lang/String;)V
athrow
end local 6 end local 5 80: StackMap locals:
StackMap stack:
aload 4
ifnull 83
81: aload 4
getstatic org.bouncycastle.asn1.cms.CMSAttributes.counterSignature:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.cms.AttributeTable.getAll:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Lorg/bouncycastle/asn1/ASN1EncodableVector;
invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.size:()I
ifle 83
82: new org.bouncycastle.cms.CMSException
dup
ldc "A countersignature attribute MUST NOT be a signed attribute"
invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;)V
athrow
83: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.bouncycastle.cms.SignerInformation.getUnsignedAttributes:()Lorg/bouncycastle/asn1/cms/AttributeTable;
astore 5
start local 5 84: aload 5
ifnull 93
85: aload 5
getstatic org.bouncycastle.asn1.cms.CMSAttributes.counterSignature:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.cms.AttributeTable.getAll:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Lorg/bouncycastle/asn1/ASN1EncodableVector;
astore 6
start local 6 86: iconst_0
istore 7
start local 7 87: goto 92
88: StackMap locals: org.bouncycastle.asn1.cms.AttributeTable org.bouncycastle.asn1.ASN1EncodableVector int
StackMap stack:
aload 6
iload 7
invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.get:(I)Lorg/bouncycastle/asn1/ASN1Encodable;
invokestatic org.bouncycastle.asn1.cms.Attribute.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/cms/Attribute;
astore 8
start local 8 89: aload 8
invokevirtual org.bouncycastle.asn1.cms.Attribute.getAttrValues:()Lorg/bouncycastle/asn1/ASN1Set;
invokevirtual org.bouncycastle.asn1.ASN1Set.size:()I
iconst_1
if_icmpge 91
90: new org.bouncycastle.cms.CMSException
dup
ldc "A countersignature attribute MUST contain at least one AttributeValue"
invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;)V
athrow
end local 8 91: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
92: iload 7
aload 6
invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.size:()I
if_icmplt 88
end local 7 end local 6 end local 5 93: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.cms.SignerInformation.signedAttributeSet:Lorg/bouncycastle/asn1/ASN1Set;
ifnonnull 102
aload 0
getfield org.bouncycastle.cms.SignerInformation.resultDigest:[B
ifnull 102
94: aload 3
instanceof org.bouncycastle.operator.RawContentVerifier
ifeq 102
95: aload 3
checkcast org.bouncycastle.operator.RawContentVerifier
astore 5
start local 5 96: aload 2
ldc "RSA"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 100
97: new org.bouncycastle.asn1.x509.DigestInfo
dup
new org.bouncycastle.asn1.x509.AlgorithmIdentifier
dup
aload 0
getfield org.bouncycastle.cms.SignerInformation.digestAlgorithm:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
getstatic org.bouncycastle.asn1.DERNull.INSTANCE:Lorg/bouncycastle/asn1/DERNull;
invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
aload 0
getfield org.bouncycastle.cms.SignerInformation.resultDigest:[B
invokespecial org.bouncycastle.asn1.x509.DigestInfo.<init>:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;[B)V
astore 6
start local 6 98: aload 5
aload 6
ldc "DER"
invokevirtual org.bouncycastle.asn1.x509.DigestInfo.getEncoded:(Ljava/lang/String;)[B
aload 0
invokevirtual org.bouncycastle.cms.SignerInformation.getSignature:()[B
invokeinterface org.bouncycastle.operator.RawContentVerifier.verify:([B[B)Z
99: ireturn
end local 6 100: StackMap locals: org.bouncycastle.operator.RawContentVerifier
StackMap stack:
aload 5
aload 0
getfield org.bouncycastle.cms.SignerInformation.resultDigest:[B
aload 0
invokevirtual org.bouncycastle.cms.SignerInformation.getSignature:()[B
invokeinterface org.bouncycastle.operator.RawContentVerifier.verify:([B[B)Z
101: ireturn
end local 5 102: StackMap locals:
StackMap stack:
aload 3
aload 0
invokevirtual org.bouncycastle.cms.SignerInformation.getSignature:()[B
invokeinterface org.bouncycastle.operator.ContentVerifier.verify:([B)Z
103: ireturn
104: StackMap locals:
StackMap stack: java.io.IOException
astore 5
start local 5 105: new org.bouncycastle.cms.CMSException
dup
ldc "can't process mime object to create signature."
aload 5
invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
athrow
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 106 0 this Lorg/bouncycastle/cms/SignerInformation;
0 106 1 verifier Lorg/bouncycastle/cms/SignerInformationVerifier;
1 106 2 encName Ljava/lang/String;
2 3 3 contentVerifier Lorg/bouncycastle/operator/ContentVerifier;
5 106 3 contentVerifier Lorg/bouncycastle/operator/ContentVerifier;
4 5 4 e Lorg/bouncycastle/operator/OperatorCreationException;
6 34 4 sigOut Ljava/io/OutputStream;
8 27 5 calc Lorg/bouncycastle/operator/DigestCalculator;
10 21 6 digOut Ljava/io/OutputStream;
15 17 7 cOut Ljava/io/OutputStream;
36 37 4 e Ljava/io/IOException;
38 39 4 e Lorg/bouncycastle/operator/OperatorCreationException;
42 52 4 validContentType Lorg/bouncycastle/asn1/ASN1Primitive;
50 52 5 signedContentType Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
53 106 4 signedAttrTable Lorg/bouncycastle/asn1/cms/AttributeTable;
54 69 5 unsignedAttrTable Lorg/bouncycastle/asn1/cms/AttributeTable;
58 69 6 protectionAttributes Lorg/bouncycastle/asn1/ASN1EncodableVector;
62 69 7 attr Lorg/bouncycastle/asn1/cms/Attribute;
65 69 8 algorithmProtection Lorg/bouncycastle/asn1/cms/CMSAlgorithmProtection;
72 80 5 validMessageDigest Lorg/bouncycastle/asn1/ASN1Primitive;
78 80 6 signedMessageDigest Lorg/bouncycastle/asn1/ASN1OctetString;
84 93 5 unsignedAttrTable Lorg/bouncycastle/asn1/cms/AttributeTable;
86 93 6 csAttrs Lorg/bouncycastle/asn1/ASN1EncodableVector;
87 93 7 i I
89 91 8 csAttr Lorg/bouncycastle/asn1/cms/Attribute;
96 102 5 rawVerifier Lorg/bouncycastle/operator/RawContentVerifier;
98 100 6 digInfo Lorg/bouncycastle/asn1/x509/DigestInfo;
105 106 5 e Ljava/io/IOException;
Exception table:
from to target type
1 2 3 Class org.bouncycastle.operator.OperatorCreationException
5 34 35 Class java.io.IOException
5 34 37 Class org.bouncycastle.operator.OperatorCreationException
93 99 104 Class java.io.IOException
100 101 104 Class java.io.IOException
102 103 104 Class java.io.IOException
Exceptions:
throws org.bouncycastle.cms.CMSException
MethodParameters:
Name Flags
verifier
public boolean verify(org.bouncycastle.cms.SignerInformationVerifier);
descriptor: (Lorg/bouncycastle/cms/SignerInformationVerifier;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.bouncycastle.cms.SignerInformation.getSigningTime:()Lorg/bouncycastle/asn1/cms/Time;
astore 2
start local 2 1: aload 1
invokevirtual org.bouncycastle.cms.SignerInformationVerifier.hasAssociatedCertificate:()Z
ifeq 6
2: aload 2
ifnull 6
3: aload 1
invokevirtual org.bouncycastle.cms.SignerInformationVerifier.getAssociatedCertificate:()Lorg/bouncycastle/cert/X509CertificateHolder;
astore 3
start local 3 4: aload 3
aload 2
invokevirtual org.bouncycastle.asn1.cms.Time.getDate:()Ljava/util/Date;
invokevirtual org.bouncycastle.cert.X509CertificateHolder.isValidOn:(Ljava/util/Date;)Z
ifne 6
5: new org.bouncycastle.cms.CMSVerifierCertificateNotValidException
dup
ldc "verifier not valid at signingTime"
invokespecial org.bouncycastle.cms.CMSVerifierCertificateNotValidException.<init>:(Ljava/lang/String;)V
athrow
end local 3 6: StackMap locals: org.bouncycastle.asn1.cms.Time
StackMap stack:
aload 0
aload 1
invokevirtual org.bouncycastle.cms.SignerInformation.doVerify:(Lorg/bouncycastle/cms/SignerInformationVerifier;)Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/bouncycastle/cms/SignerInformation;
0 7 1 verifier Lorg/bouncycastle/cms/SignerInformationVerifier;
1 7 2 signingTime Lorg/bouncycastle/asn1/cms/Time;
4 6 3 dcv Lorg/bouncycastle/cert/X509CertificateHolder;
Exceptions:
throws org.bouncycastle.cms.CMSException
MethodParameters:
Name Flags
verifier
public org.bouncycastle.asn1.cms.SignerInfo toASN1Structure();
descriptor: ()Lorg/bouncycastle/asn1/cms/SignerInfo;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.cms.SignerInformation.info:Lorg/bouncycastle/asn1/cms/SignerInfo;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/cms/SignerInformation;
private org.bouncycastle.asn1.ASN1Primitive getSingleValuedSignedAttribute(org.bouncycastle.asn1.ASN1ObjectIdentifier, java.lang.String);
descriptor: (Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Ljava/lang/String;)Lorg/bouncycastle/asn1/ASN1Primitive;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.bouncycastle.cms.SignerInformation.getUnsignedAttributes:()Lorg/bouncycastle/asn1/cms/AttributeTable;
astore 3
start local 3 1: aload 3
ifnull 6
2: aload 3
aload 1
invokevirtual org.bouncycastle.asn1.cms.AttributeTable.getAll:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Lorg/bouncycastle/asn1/ASN1EncodableVector;
invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.size:()I
ifle 6
3: new org.bouncycastle.cms.CMSException
dup
new java.lang.StringBuilder
dup
ldc "The "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
4: ldc " attribute MUST NOT be an unsigned attribute"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
5: invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals: org.bouncycastle.asn1.cms.AttributeTable
StackMap stack:
aload 0
invokevirtual org.bouncycastle.cms.SignerInformation.getSignedAttributes:()Lorg/bouncycastle/asn1/cms/AttributeTable;
astore 4
start local 4 7: aload 4
ifnonnull 9
8: aconst_null
areturn
9: StackMap locals: org.bouncycastle.asn1.cms.AttributeTable
StackMap stack:
aload 4
aload 1
invokevirtual org.bouncycastle.asn1.cms.AttributeTable.getAll:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Lorg/bouncycastle/asn1/ASN1EncodableVector;
astore 5
start local 5 10: aload 5
invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.size:()I
tableswitch { // 0 - 1
0: 11
1: 12
default: 19
}
11: StackMap locals: org.bouncycastle.asn1.ASN1EncodableVector
StackMap stack:
aconst_null
areturn
12: StackMap locals:
StackMap stack:
aload 5
iconst_0
invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.get:(I)Lorg/bouncycastle/asn1/ASN1Encodable;
checkcast org.bouncycastle.asn1.cms.Attribute
astore 6
start local 6 13: aload 6
invokevirtual org.bouncycastle.asn1.cms.Attribute.getAttrValues:()Lorg/bouncycastle/asn1/ASN1Set;
astore 7
start local 7 14: aload 7
invokevirtual org.bouncycastle.asn1.ASN1Set.size:()I
iconst_1
if_icmpeq 18
15: new org.bouncycastle.cms.CMSException
dup
new java.lang.StringBuilder
dup
ldc "A "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
16: ldc " attribute MUST have a single attribute value"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
17: invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;)V
athrow
18: StackMap locals: org.bouncycastle.asn1.cms.Attribute org.bouncycastle.asn1.ASN1Set
StackMap stack:
aload 7
iconst_0
invokevirtual org.bouncycastle.asn1.ASN1Set.getObjectAt:(I)Lorg/bouncycastle/asn1/ASN1Encodable;
invokeinterface org.bouncycastle.asn1.ASN1Encodable.toASN1Primitive:()Lorg/bouncycastle/asn1/ASN1Primitive;
areturn
end local 7 end local 6 19: StackMap locals:
StackMap stack:
new org.bouncycastle.cms.CMSException
dup
new java.lang.StringBuilder
dup
ldc "The SignedAttributes in a signerInfo MUST NOT include multiple instances of the "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
20: aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " attribute"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
21: invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;)V
athrow
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 22 0 this Lorg/bouncycastle/cms/SignerInformation;
0 22 1 attrOID Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
0 22 2 printableName Ljava/lang/String;
1 22 3 unsignedAttrTable Lorg/bouncycastle/asn1/cms/AttributeTable;
7 22 4 signedAttrTable Lorg/bouncycastle/asn1/cms/AttributeTable;
10 22 5 v Lorg/bouncycastle/asn1/ASN1EncodableVector;
13 19 6 t Lorg/bouncycastle/asn1/cms/Attribute;
14 19 7 attrValues Lorg/bouncycastle/asn1/ASN1Set;
Exceptions:
throws org.bouncycastle.cms.CMSException
MethodParameters:
Name Flags
attrOID
printableName
private org.bouncycastle.asn1.cms.Time getSigningTime();
descriptor: ()Lorg/bouncycastle/asn1/cms/Time;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
1: getstatic org.bouncycastle.asn1.cms.CMSAttributes.signingTime:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
ldc "signing-time"
2: invokevirtual org.bouncycastle.cms.SignerInformation.getSingleValuedSignedAttribute:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Ljava/lang/String;)Lorg/bouncycastle/asn1/ASN1Primitive;
astore 1
start local 1 3: aload 1
ifnonnull 5
4: aconst_null
areturn
5: StackMap locals: org.bouncycastle.asn1.ASN1Primitive
StackMap stack:
aload 1
invokestatic org.bouncycastle.asn1.cms.Time.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/cms/Time;
6: areturn
7: StackMap locals:
StackMap stack: java.lang.IllegalArgumentException
pop
8: new org.bouncycastle.cms.CMSException
dup
ldc "signing-time attribute value not a valid 'Time' structure"
invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/bouncycastle/cms/SignerInformation;
3 9 1 validSigningTime Lorg/bouncycastle/asn1/ASN1Primitive;
Exception table:
from to target type
5 6 7 Class java.lang.IllegalArgumentException
Exceptions:
throws org.bouncycastle.cms.CMSException
public static org.bouncycastle.cms.SignerInformation replaceUnsignedAttributes(org.bouncycastle.cms.SignerInformation, org.bouncycastle.asn1.cms.AttributeTable);
descriptor: (Lorg/bouncycastle/cms/SignerInformation;Lorg/bouncycastle/asn1/cms/AttributeTable;)Lorg/bouncycastle/cms/SignerInformation;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=10, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield org.bouncycastle.cms.SignerInformation.info:Lorg/bouncycastle/asn1/cms/SignerInfo;
astore 2
start local 2 1: aconst_null
astore 3
start local 3 2: aload 1
ifnull 4
3: new org.bouncycastle.asn1.DERSet
dup
aload 1
invokevirtual org.bouncycastle.asn1.cms.AttributeTable.toASN1EncodableVector:()Lorg/bouncycastle/asn1/ASN1EncodableVector;
invokespecial org.bouncycastle.asn1.DERSet.<init>:(Lorg/bouncycastle/asn1/ASN1EncodableVector;)V
astore 3
4: StackMap locals: org.bouncycastle.asn1.cms.SignerInfo org.bouncycastle.asn1.ASN1Set
StackMap stack:
new org.bouncycastle.cms.SignerInformation
dup
5: new org.bouncycastle.asn1.cms.SignerInfo
dup
aload 2
invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getSID:()Lorg/bouncycastle/asn1/cms/SignerIdentifier;
aload 2
invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getDigestAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
6: aload 2
invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getAuthenticatedAttributes:()Lorg/bouncycastle/asn1/ASN1Set;
aload 2
invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getDigestEncryptionAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
aload 2
invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getEncryptedDigest:()Lorg/bouncycastle/asn1/ASN1OctetString;
aload 3
7: invokespecial org.bouncycastle.asn1.cms.SignerInfo.<init>:(Lorg/bouncycastle/asn1/cms/SignerIdentifier;Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/asn1/ASN1Set;Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/asn1/ASN1OctetString;Lorg/bouncycastle/asn1/ASN1Set;)V
8: aload 0
getfield org.bouncycastle.cms.SignerInformation.contentType:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
aload 0
getfield org.bouncycastle.cms.SignerInformation.content:Lorg/bouncycastle/cms/CMSProcessable;
aconst_null
9: invokespecial org.bouncycastle.cms.SignerInformation.<init>:(Lorg/bouncycastle/asn1/cms/SignerInfo;Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/cms/CMSProcessable;[B)V
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 signerInformation Lorg/bouncycastle/cms/SignerInformation;
0 10 1 unsignedAttributes Lorg/bouncycastle/asn1/cms/AttributeTable;
1 10 2 sInfo Lorg/bouncycastle/asn1/cms/SignerInfo;
2 10 3 unsignedAttr Lorg/bouncycastle/asn1/ASN1Set;
MethodParameters:
Name Flags
signerInformation
unsignedAttributes
public static org.bouncycastle.cms.SignerInformation addCounterSigners(org.bouncycastle.cms.SignerInformation, org.bouncycastle.cms.SignerInformationStore);
descriptor: (Lorg/bouncycastle/cms/SignerInformation;Lorg/bouncycastle/cms/SignerInformationStore;)Lorg/bouncycastle/cms/SignerInformation;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=12, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield org.bouncycastle.cms.SignerInformation.info:Lorg/bouncycastle/asn1/cms/SignerInfo;
astore 2
start local 2 1: aload 0
invokevirtual org.bouncycastle.cms.SignerInformation.getUnsignedAttributes:()Lorg/bouncycastle/asn1/cms/AttributeTable;
astore 3
start local 3 2: aload 3
ifnull 5
3: aload 3
invokevirtual org.bouncycastle.asn1.cms.AttributeTable.toASN1EncodableVector:()Lorg/bouncycastle/asn1/ASN1EncodableVector;
astore 4
start local 4 4: goto 6
end local 4 5: StackMap locals: org.bouncycastle.asn1.cms.SignerInfo org.bouncycastle.asn1.cms.AttributeTable
StackMap stack:
new org.bouncycastle.asn1.ASN1EncodableVector
dup
invokespecial org.bouncycastle.asn1.ASN1EncodableVector.<init>:()V
astore 4
start local 4 6: StackMap locals: org.bouncycastle.asn1.ASN1EncodableVector
StackMap stack:
new org.bouncycastle.asn1.ASN1EncodableVector
dup
invokespecial org.bouncycastle.asn1.ASN1EncodableVector.<init>:()V
astore 5
start local 5 7: aload 1
invokevirtual org.bouncycastle.cms.SignerInformationStore.getSigners:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 6
start local 6 8: goto 10
9: StackMap locals: org.bouncycastle.asn1.ASN1EncodableVector java.util.Iterator
StackMap stack:
aload 5
aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.bouncycastle.cms.SignerInformation
invokevirtual org.bouncycastle.cms.SignerInformation.toASN1Structure:()Lorg/bouncycastle/asn1/cms/SignerInfo;
invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/ASN1Encodable;)V
10: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 9
end local 6 11: aload 4
new org.bouncycastle.asn1.cms.Attribute
dup
getstatic org.bouncycastle.asn1.cms.CMSAttributes.counterSignature:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
new org.bouncycastle.asn1.DERSet
dup
aload 5
invokespecial org.bouncycastle.asn1.DERSet.<init>:(Lorg/bouncycastle/asn1/ASN1EncodableVector;)V
invokespecial org.bouncycastle.asn1.cms.Attribute.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Set;)V
invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/ASN1Encodable;)V
12: new org.bouncycastle.cms.SignerInformation
dup
13: new org.bouncycastle.asn1.cms.SignerInfo
dup
aload 2
invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getSID:()Lorg/bouncycastle/asn1/cms/SignerIdentifier;
aload 2
invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getDigestAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
14: aload 2
invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getAuthenticatedAttributes:()Lorg/bouncycastle/asn1/ASN1Set;
aload 2
invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getDigestEncryptionAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
aload 2
invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getEncryptedDigest:()Lorg/bouncycastle/asn1/ASN1OctetString;
new org.bouncycastle.asn1.DERSet
dup
aload 4
invokespecial org.bouncycastle.asn1.DERSet.<init>:(Lorg/bouncycastle/asn1/ASN1EncodableVector;)V
15: invokespecial org.bouncycastle.asn1.cms.SignerInfo.<init>:(Lorg/bouncycastle/asn1/cms/SignerIdentifier;Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/asn1/ASN1Set;Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/asn1/ASN1OctetString;Lorg/bouncycastle/asn1/ASN1Set;)V
16: aload 0
getfield org.bouncycastle.cms.SignerInformation.contentType:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
aload 0
getfield org.bouncycastle.cms.SignerInformation.content:Lorg/bouncycastle/cms/CMSProcessable;
aconst_null
17: invokespecial org.bouncycastle.cms.SignerInformation.<init>:(Lorg/bouncycastle/asn1/cms/SignerInfo;Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/cms/CMSProcessable;[B)V
areturn
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 18 0 signerInformation Lorg/bouncycastle/cms/SignerInformation;
0 18 1 counterSigners Lorg/bouncycastle/cms/SignerInformationStore;
1 18 2 sInfo Lorg/bouncycastle/asn1/cms/SignerInfo;
2 18 3 unsignedAttr Lorg/bouncycastle/asn1/cms/AttributeTable;
4 5 4 v Lorg/bouncycastle/asn1/ASN1EncodableVector;
6 18 4 v Lorg/bouncycastle/asn1/ASN1EncodableVector;
7 18 5 sigs Lorg/bouncycastle/asn1/ASN1EncodableVector;
8 11 6 it Ljava/util/Iterator;
MethodParameters:
Name Flags
signerInformation
counterSigners
}
SourceFile: "SignerInformation.java"