public class org.bouncycastle.tsp.TimeStampToken
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.tsp.TimeStampToken
super_class: java.lang.Object
{
org.bouncycastle.cms.CMSSignedData tsToken;
descriptor: Lorg/bouncycastle/cms/CMSSignedData;
flags: (0x0000)
org.bouncycastle.cms.SignerInformation tsaSignerInfo;
descriptor: Lorg/bouncycastle/cms/SignerInformation;
flags: (0x0000)
java.util.Date genTime;
descriptor: Ljava/util/Date;
flags: (0x0000)
org.bouncycastle.tsp.TimeStampTokenInfo tstInfo;
descriptor: Lorg/bouncycastle/tsp/TimeStampTokenInfo;
flags: (0x0000)
org.bouncycastle.tsp.TimeStampToken$CertID certID;
descriptor: Lorg/bouncycastle/tsp/TimeStampToken$CertID;
flags: (0x0000)
public void <init>(org.bouncycastle.asn1.cms.ContentInfo);
descriptor: (Lorg/bouncycastle/asn1/cms/ContentInfo;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic org.bouncycastle.tsp.TimeStampToken.getSignedData:(Lorg/bouncycastle/asn1/cms/ContentInfo;)Lorg/bouncycastle/cms/CMSSignedData;
invokespecial org.bouncycastle.tsp.TimeStampToken.<init>:(Lorg/bouncycastle/cms/CMSSignedData;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/tsp/TimeStampToken;
0 2 1 contentInfo Lorg/bouncycastle/asn1/cms/ContentInfo;
Exceptions:
throws org.bouncycastle.tsp.TSPException, java.io.IOException
MethodParameters:
Name Flags
contentInfo
private static org.bouncycastle.cms.CMSSignedData getSignedData(org.bouncycastle.asn1.cms.ContentInfo);
descriptor: (Lorg/bouncycastle/asn1/cms/ContentInfo;)Lorg/bouncycastle/cms/CMSSignedData;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: new org.bouncycastle.cms.CMSSignedData
dup
aload 0
invokespecial org.bouncycastle.cms.CMSSignedData.<init>:(Lorg/bouncycastle/asn1/cms/ContentInfo;)V
1: areturn
2: StackMap locals:
StackMap stack: org.bouncycastle.cms.CMSException
astore 1
start local 1 3: new org.bouncycastle.tsp.TSPException
dup
new java.lang.StringBuilder
dup
ldc "TSP parsing error: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual org.bouncycastle.cms.CMSException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 1
invokevirtual org.bouncycastle.cms.CMSException.getCause:()Ljava/lang/Throwable;
invokespecial org.bouncycastle.tsp.TSPException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 contentInfo Lorg/bouncycastle/asn1/cms/ContentInfo;
3 4 1 e Lorg/bouncycastle/cms/CMSException;
Exception table:
from to target type
0 1 2 Class org.bouncycastle.cms.CMSException
Exceptions:
throws org.bouncycastle.tsp.TSPException
MethodParameters:
Name Flags
contentInfo
public void <init>(org.bouncycastle.cms.CMSSignedData);
descriptor: (Lorg/bouncycastle/cms/CMSSignedData;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=8, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield org.bouncycastle.tsp.TimeStampToken.tsToken:Lorg/bouncycastle/cms/CMSSignedData;
2: aload 0
getfield org.bouncycastle.tsp.TimeStampToken.tsToken:Lorg/bouncycastle/cms/CMSSignedData;
invokevirtual org.bouncycastle.cms.CMSSignedData.getSignedContentTypeOID:()Ljava/lang/String;
getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.id_ct_TSTInfo:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 4
3: new org.bouncycastle.tsp.TSPValidationException
dup
ldc "ContentInfo object not for a time stamp."
invokespecial org.bouncycastle.tsp.TSPValidationException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals: org.bouncycastle.tsp.TimeStampToken org.bouncycastle.cms.CMSSignedData
StackMap stack:
aload 0
getfield org.bouncycastle.tsp.TimeStampToken.tsToken:Lorg/bouncycastle/cms/CMSSignedData;
invokevirtual org.bouncycastle.cms.CMSSignedData.getSignerInfos:()Lorg/bouncycastle/cms/SignerInformationStore;
invokevirtual org.bouncycastle.cms.SignerInformationStore.getSigners:()Ljava/util/Collection;
astore 2
start local 2 5: aload 2
invokeinterface java.util.Collection.size:()I
iconst_1
if_icmpeq 10
6: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Time-stamp token signed by "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
7: aload 2
invokeinterface java.util.Collection.size:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
8: ldc " signers, but it must contain just the TSA signature."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
9: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals: java.util.Collection
StackMap stack:
aload 0
aload 2
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.bouncycastle.cms.SignerInformation
putfield org.bouncycastle.tsp.TimeStampToken.tsaSignerInfo:Lorg/bouncycastle/cms/SignerInformation;
11: aload 0
getfield org.bouncycastle.tsp.TimeStampToken.tsToken:Lorg/bouncycastle/cms/CMSSignedData;
invokevirtual org.bouncycastle.cms.CMSSignedData.getSignedContent:()Lorg/bouncycastle/cms/CMSTypedData;
astore 3
start local 3 12: new java.io.ByteArrayOutputStream
dup
invokespecial java.io.ByteArrayOutputStream.<init>:()V
astore 4
start local 4 13: aload 3
aload 4
invokeinterface org.bouncycastle.cms.CMSProcessable.write:(Ljava/io/OutputStream;)V
14: new org.bouncycastle.asn1.ASN1InputStream
dup
new java.io.ByteArrayInputStream
dup
aload 4
invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
invokespecial org.bouncycastle.asn1.ASN1InputStream.<init>:(Ljava/io/InputStream;)V
astore 5
start local 5 15: aload 0
new org.bouncycastle.tsp.TimeStampTokenInfo
dup
aload 5
invokevirtual org.bouncycastle.asn1.ASN1InputStream.readObject:()Lorg/bouncycastle/asn1/ASN1Primitive;
invokestatic org.bouncycastle.asn1.tsp.TSTInfo.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/tsp/TSTInfo;
invokespecial org.bouncycastle.tsp.TimeStampTokenInfo.<init>:(Lorg/bouncycastle/asn1/tsp/TSTInfo;)V
putfield org.bouncycastle.tsp.TimeStampToken.tstInfo:Lorg/bouncycastle/tsp/TimeStampTokenInfo;
16: aload 0
getfield org.bouncycastle.tsp.TimeStampToken.tsaSignerInfo:Lorg/bouncycastle/cms/SignerInformation;
invokevirtual org.bouncycastle.cms.SignerInformation.getSignedAttributes:()Lorg/bouncycastle/asn1/cms/AttributeTable;
getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.id_aa_signingCertificate:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.cms.AttributeTable.get:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Lorg/bouncycastle/asn1/cms/Attribute;
astore 6
start local 6 17: aload 6
ifnull 21
18: aload 6
invokevirtual org.bouncycastle.asn1.cms.Attribute.getAttrValues:()Lorg/bouncycastle/asn1/ASN1Set;
iconst_0
invokevirtual org.bouncycastle.asn1.ASN1Set.getObjectAt:(I)Lorg/bouncycastle/asn1/ASN1Encodable;
invokestatic org.bouncycastle.asn1.ess.SigningCertificate.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/ess/SigningCertificate;
astore 7
start local 7 19: aload 0
new org.bouncycastle.tsp.TimeStampToken$CertID
dup
aload 0
aload 7
invokevirtual org.bouncycastle.asn1.ess.SigningCertificate.getCerts:()[Lorg/bouncycastle/asn1/ess/ESSCertID;
iconst_0
aaload
invokestatic org.bouncycastle.asn1.ess.ESSCertID.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/ess/ESSCertID;
invokespecial org.bouncycastle.tsp.TimeStampToken$CertID.<init>:(Lorg/bouncycastle/tsp/TimeStampToken;Lorg/bouncycastle/asn1/ess/ESSCertID;)V
putfield org.bouncycastle.tsp.TimeStampToken.certID:Lorg/bouncycastle/tsp/TimeStampToken$CertID;
end local 7 20: goto 29
21: StackMap locals: org.bouncycastle.tsp.TimeStampToken org.bouncycastle.cms.CMSSignedData java.util.Collection org.bouncycastle.cms.CMSProcessable java.io.ByteArrayOutputStream org.bouncycastle.asn1.ASN1InputStream org.bouncycastle.asn1.cms.Attribute
StackMap stack:
aload 0
getfield org.bouncycastle.tsp.TimeStampToken.tsaSignerInfo:Lorg/bouncycastle/cms/SignerInformation;
invokevirtual org.bouncycastle.cms.SignerInformation.getSignedAttributes:()Lorg/bouncycastle/asn1/cms/AttributeTable;
getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.id_aa_signingCertificateV2:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.cms.AttributeTable.get:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Lorg/bouncycastle/asn1/cms/Attribute;
astore 6
22: aload 6
ifnonnull 24
23: new org.bouncycastle.tsp.TSPValidationException
dup
ldc "no signing certificate attribute found, time stamp invalid."
invokespecial org.bouncycastle.tsp.TSPValidationException.<init>:(Ljava/lang/String;)V
athrow
24: StackMap locals:
StackMap stack:
aload 6
invokevirtual org.bouncycastle.asn1.cms.Attribute.getAttrValues:()Lorg/bouncycastle/asn1/ASN1Set;
iconst_0
invokevirtual org.bouncycastle.asn1.ASN1Set.getObjectAt:(I)Lorg/bouncycastle/asn1/ASN1Encodable;
invokestatic org.bouncycastle.asn1.ess.SigningCertificateV2.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/ess/SigningCertificateV2;
astore 7
start local 7 25: aload 0
new org.bouncycastle.tsp.TimeStampToken$CertID
dup
aload 0
aload 7
invokevirtual org.bouncycastle.asn1.ess.SigningCertificateV2.getCerts:()[Lorg/bouncycastle/asn1/ess/ESSCertIDv2;
iconst_0
aaload
invokestatic org.bouncycastle.asn1.ess.ESSCertIDv2.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/ess/ESSCertIDv2;
invokespecial org.bouncycastle.tsp.TimeStampToken$CertID.<init>:(Lorg/bouncycastle/tsp/TimeStampToken;Lorg/bouncycastle/asn1/ess/ESSCertIDv2;)V
putfield org.bouncycastle.tsp.TimeStampToken.certID:Lorg/bouncycastle/tsp/TimeStampToken$CertID;
end local 7 end local 6 end local 5 end local 4 end local 3 26: goto 29
27: StackMap locals: org.bouncycastle.tsp.TimeStampToken org.bouncycastle.cms.CMSSignedData java.util.Collection
StackMap stack: org.bouncycastle.cms.CMSException
astore 3
start local 3 28: new org.bouncycastle.tsp.TSPException
dup
aload 3
invokevirtual org.bouncycastle.cms.CMSException.getMessage:()Ljava/lang/String;
aload 3
invokevirtual org.bouncycastle.cms.CMSException.getUnderlyingException:()Ljava/lang/Exception;
invokespecial org.bouncycastle.tsp.TSPException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 29: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 this Lorg/bouncycastle/tsp/TimeStampToken;
0 30 1 signedData Lorg/bouncycastle/cms/CMSSignedData;
5 30 2 signers Ljava/util/Collection;
12 26 3 content Lorg/bouncycastle/cms/CMSProcessable;
13 26 4 bOut Ljava/io/ByteArrayOutputStream;
15 26 5 aIn Lorg/bouncycastle/asn1/ASN1InputStream;
17 26 6 attr Lorg/bouncycastle/asn1/cms/Attribute;
19 20 7 signCert Lorg/bouncycastle/asn1/ess/SigningCertificate;
25 26 7 signCertV2 Lorg/bouncycastle/asn1/ess/SigningCertificateV2;
28 29 3 e Lorg/bouncycastle/cms/CMSException;
Exception table:
from to target type
11 26 27 Class org.bouncycastle.cms.CMSException
Exceptions:
throws org.bouncycastle.tsp.TSPException, java.io.IOException
MethodParameters:
Name Flags
signedData
public org.bouncycastle.tsp.TimeStampTokenInfo getTimeStampInfo();
descriptor: ()Lorg/bouncycastle/tsp/TimeStampTokenInfo;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.tsp.TimeStampToken.tstInfo:Lorg/bouncycastle/tsp/TimeStampTokenInfo;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/tsp/TimeStampToken;
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.tsp.TimeStampToken.tsaSignerInfo:Lorg/bouncycastle/cms/SignerInformation;
invokevirtual org.bouncycastle.cms.SignerInformation.getSID:()Lorg/bouncycastle/cms/SignerId;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/tsp/TimeStampToken;
public org.bouncycastle.asn1.cms.AttributeTable getSignedAttributes();
descriptor: ()Lorg/bouncycastle/asn1/cms/AttributeTable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.tsp.TimeStampToken.tsaSignerInfo:Lorg/bouncycastle/cms/SignerInformation;
invokevirtual org.bouncycastle.cms.SignerInformation.getSignedAttributes:()Lorg/bouncycastle/asn1/cms/AttributeTable;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/tsp/TimeStampToken;
public org.bouncycastle.asn1.cms.AttributeTable getUnsignedAttributes();
descriptor: ()Lorg/bouncycastle/asn1/cms/AttributeTable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.tsp.TimeStampToken.tsaSignerInfo:Lorg/bouncycastle/cms/SignerInformation;
invokevirtual org.bouncycastle.cms.SignerInformation.getUnsignedAttributes:()Lorg/bouncycastle/asn1/cms/AttributeTable;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/tsp/TimeStampToken;
public org.bouncycastle.util.Store getCertificates();
descriptor: ()Lorg/bouncycastle/util/Store;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.tsp.TimeStampToken.tsToken:Lorg/bouncycastle/cms/CMSSignedData;
invokevirtual org.bouncycastle.cms.CMSSignedData.getCertificates:()Lorg/bouncycastle/util/Store;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/tsp/TimeStampToken;
public org.bouncycastle.util.Store getCRLs();
descriptor: ()Lorg/bouncycastle/util/Store;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.tsp.TimeStampToken.tsToken:Lorg/bouncycastle/cms/CMSSignedData;
invokevirtual org.bouncycastle.cms.CMSSignedData.getCRLs:()Lorg/bouncycastle/util/Store;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/tsp/TimeStampToken;
public org.bouncycastle.util.Store getAttributeCertificates();
descriptor: ()Lorg/bouncycastle/util/Store;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.tsp.TimeStampToken.tsToken:Lorg/bouncycastle/cms/CMSSignedData;
invokevirtual org.bouncycastle.cms.CMSSignedData.getAttributeCertificates:()Lorg/bouncycastle/util/Store;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/tsp/TimeStampToken;
public void validate(org.bouncycastle.cms.SignerInformationVerifier);
descriptor: (Lorg/bouncycastle/cms/SignerInformationVerifier;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=9, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.bouncycastle.cms.SignerInformationVerifier.hasAssociatedCertificate:()Z
ifne 2
1: new java.lang.IllegalArgumentException
dup
ldc "verifier provider needs an associated certificate"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.bouncycastle.cms.SignerInformationVerifier.getAssociatedCertificate:()Lorg/bouncycastle/cert/X509CertificateHolder;
astore 2
start local 2 3: aload 1
aload 0
getfield org.bouncycastle.tsp.TimeStampToken.certID:Lorg/bouncycastle/tsp/TimeStampToken$CertID;
invokevirtual org.bouncycastle.tsp.TimeStampToken$CertID.getHashAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
invokevirtual org.bouncycastle.cms.SignerInformationVerifier.getDigestCalculator:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)Lorg/bouncycastle/operator/DigestCalculator;
astore 3
start local 3 4: aload 3
invokeinterface org.bouncycastle.operator.DigestCalculator.getOutputStream:()Ljava/io/OutputStream;
astore 4
start local 4 5: aload 4
aload 2
invokevirtual org.bouncycastle.cert.X509CertificateHolder.getEncoded:()[B
invokevirtual java.io.OutputStream.write:([B)V
6: aload 4
invokevirtual java.io.OutputStream.close:()V
7: aload 0
getfield org.bouncycastle.tsp.TimeStampToken.certID:Lorg/bouncycastle/tsp/TimeStampToken$CertID;
invokevirtual org.bouncycastle.tsp.TimeStampToken$CertID.getCertHash:()[B
aload 3
invokeinterface org.bouncycastle.operator.DigestCalculator.getDigest:()[B
invokestatic org.bouncycastle.util.Arrays.constantTimeAreEqual:([B[B)Z
ifne 9
8: new org.bouncycastle.tsp.TSPValidationException
dup
ldc "certificate hash does not match certID hash."
invokespecial org.bouncycastle.tsp.TSPValidationException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals: org.bouncycastle.cert.X509CertificateHolder org.bouncycastle.operator.DigestCalculator java.io.OutputStream
StackMap stack:
aload 0
getfield org.bouncycastle.tsp.TimeStampToken.certID:Lorg/bouncycastle/tsp/TimeStampToken$CertID;
invokevirtual org.bouncycastle.tsp.TimeStampToken$CertID.getIssuerSerial:()Lorg/bouncycastle/asn1/x509/IssuerSerial;
ifnull 24
10: new org.bouncycastle.asn1.cms.IssuerAndSerialNumber
dup
aload 2
invokevirtual org.bouncycastle.cert.X509CertificateHolder.toASN1Structure:()Lorg/bouncycastle/asn1/x509/Certificate;
invokespecial org.bouncycastle.asn1.cms.IssuerAndSerialNumber.<init>:(Lorg/bouncycastle/asn1/x509/Certificate;)V
astore 5
start local 5 11: aload 0
getfield org.bouncycastle.tsp.TimeStampToken.certID:Lorg/bouncycastle/tsp/TimeStampToken$CertID;
invokevirtual org.bouncycastle.tsp.TimeStampToken$CertID.getIssuerSerial:()Lorg/bouncycastle/asn1/x509/IssuerSerial;
invokevirtual org.bouncycastle.asn1.x509.IssuerSerial.getSerial:()Lorg/bouncycastle/asn1/ASN1Integer;
aload 5
invokevirtual org.bouncycastle.asn1.cms.IssuerAndSerialNumber.getSerialNumber:()Lorg/bouncycastle/asn1/ASN1Integer;
invokevirtual org.bouncycastle.asn1.ASN1Integer.equals:(Ljava/lang/Object;)Z
ifne 13
12: new org.bouncycastle.tsp.TSPValidationException
dup
ldc "certificate serial number does not match certID for signature."
invokespecial org.bouncycastle.tsp.TSPValidationException.<init>:(Ljava/lang/String;)V
athrow
13: StackMap locals: org.bouncycastle.asn1.cms.IssuerAndSerialNumber
StackMap stack:
aload 0
getfield org.bouncycastle.tsp.TimeStampToken.certID:Lorg/bouncycastle/tsp/TimeStampToken$CertID;
invokevirtual org.bouncycastle.tsp.TimeStampToken$CertID.getIssuerSerial:()Lorg/bouncycastle/asn1/x509/IssuerSerial;
invokevirtual org.bouncycastle.asn1.x509.IssuerSerial.getIssuer:()Lorg/bouncycastle/asn1/x509/GeneralNames;
invokevirtual org.bouncycastle.asn1.x509.GeneralNames.getNames:()[Lorg/bouncycastle/asn1/x509/GeneralName;
astore 6
start local 6 14: iconst_0
istore 7
start local 7 15: iconst_0
istore 8
start local 8 16: goto 21
17: StackMap locals: org.bouncycastle.asn1.x509.GeneralName[] int int
StackMap stack:
aload 6
iload 8
aaload
invokevirtual org.bouncycastle.asn1.x509.GeneralName.getTagNo:()I
iconst_4
if_icmpne 20
aload 6
iload 8
aaload
invokevirtual org.bouncycastle.asn1.x509.GeneralName.getName:()Lorg/bouncycastle/asn1/ASN1Encodable;
invokestatic org.bouncycastle.asn1.x500.X500Name.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/x500/X500Name;
aload 5
invokevirtual org.bouncycastle.asn1.cms.IssuerAndSerialNumber.getName:()Lorg/bouncycastle/asn1/x500/X500Name;
invokestatic org.bouncycastle.asn1.x500.X500Name.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/x500/X500Name;
invokevirtual org.bouncycastle.asn1.x500.X500Name.equals:(Ljava/lang/Object;)Z
ifeq 20
18: iconst_1
istore 7
19: goto 22
20: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
21: iload 8
aload 6
arraylength
if_icmpne 17
end local 8 22: StackMap locals:
StackMap stack:
iload 7
ifne 24
23: new org.bouncycastle.tsp.TSPValidationException
dup
ldc "certificate name does not match certID for signature. "
invokespecial org.bouncycastle.tsp.TSPValidationException.<init>:(Ljava/lang/String;)V
athrow
end local 7 end local 6 end local 5 24: StackMap locals:
StackMap stack:
aload 2
invokestatic org.bouncycastle.tsp.TSPUtil.validateCertificate:(Lorg/bouncycastle/cert/X509CertificateHolder;)V
25: aload 2
aload 0
getfield org.bouncycastle.tsp.TimeStampToken.tstInfo:Lorg/bouncycastle/tsp/TimeStampTokenInfo;
invokevirtual org.bouncycastle.tsp.TimeStampTokenInfo.getGenTime:()Ljava/util/Date;
invokevirtual org.bouncycastle.cert.X509CertificateHolder.isValidOn:(Ljava/util/Date;)Z
ifne 27
26: new org.bouncycastle.tsp.TSPValidationException
dup
ldc "certificate not valid when time stamp created."
invokespecial org.bouncycastle.tsp.TSPValidationException.<init>:(Ljava/lang/String;)V
athrow
27: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.tsp.TimeStampToken.tsaSignerInfo:Lorg/bouncycastle/cms/SignerInformation;
aload 1
invokevirtual org.bouncycastle.cms.SignerInformation.verify:(Lorg/bouncycastle/cms/SignerInformationVerifier;)Z
ifne 37
28: new org.bouncycastle.tsp.TSPValidationException
dup
ldc "signature not created by certificate."
invokespecial org.bouncycastle.tsp.TSPValidationException.<init>:(Ljava/lang/String;)V
athrow
end local 4 end local 3 end local 2 29: StackMap locals: org.bouncycastle.tsp.TimeStampToken org.bouncycastle.cms.SignerInformationVerifier
StackMap stack: org.bouncycastle.cms.CMSException
astore 2
start local 2 30: aload 2
invokevirtual org.bouncycastle.cms.CMSException.getUnderlyingException:()Ljava/lang/Exception;
ifnull 32
31: new org.bouncycastle.tsp.TSPException
dup
aload 2
invokevirtual org.bouncycastle.cms.CMSException.getMessage:()Ljava/lang/String;
aload 2
invokevirtual org.bouncycastle.cms.CMSException.getUnderlyingException:()Ljava/lang/Exception;
invokespecial org.bouncycastle.tsp.TSPException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
32: StackMap locals: org.bouncycastle.cms.CMSException
StackMap stack:
new org.bouncycastle.tsp.TSPException
dup
new java.lang.StringBuilder
dup
ldc "CMS exception: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 2
invokespecial org.bouncycastle.tsp.TSPException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 33: StackMap locals: org.bouncycastle.tsp.TimeStampToken org.bouncycastle.cms.SignerInformationVerifier
StackMap stack: java.io.IOException
astore 2
start local 2 34: new org.bouncycastle.tsp.TSPException
dup
new java.lang.StringBuilder
dup
ldc "problem processing certificate: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 2
invokespecial org.bouncycastle.tsp.TSPException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 35: StackMap locals:
StackMap stack: org.bouncycastle.operator.OperatorCreationException
astore 2
start local 2 36: new org.bouncycastle.tsp.TSPException
dup
new java.lang.StringBuilder
dup
ldc "unable to create digest: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
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 2
invokespecial org.bouncycastle.tsp.TSPException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 37: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 38 0 this Lorg/bouncycastle/tsp/TimeStampToken;
0 38 1 sigVerifier Lorg/bouncycastle/cms/SignerInformationVerifier;
3 29 2 certHolder Lorg/bouncycastle/cert/X509CertificateHolder;
4 29 3 calc Lorg/bouncycastle/operator/DigestCalculator;
5 29 4 cOut Ljava/io/OutputStream;
11 24 5 issuerSerial Lorg/bouncycastle/asn1/cms/IssuerAndSerialNumber;
14 24 6 names [Lorg/bouncycastle/asn1/x509/GeneralName;
15 24 7 found Z
16 22 8 i I
30 33 2 e Lorg/bouncycastle/cms/CMSException;
34 35 2 e Ljava/io/IOException;
36 37 2 e Lorg/bouncycastle/operator/OperatorCreationException;
Exception table:
from to target type
2 29 29 Class org.bouncycastle.cms.CMSException
2 29 33 Class java.io.IOException
2 29 35 Class org.bouncycastle.operator.OperatorCreationException
Exceptions:
throws org.bouncycastle.tsp.TSPException, org.bouncycastle.tsp.TSPValidationException
MethodParameters:
Name Flags
sigVerifier
public boolean isSignatureValid(org.bouncycastle.cms.SignerInformationVerifier);
descriptor: (Lorg/bouncycastle/cms/SignerInformationVerifier;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.bouncycastle.tsp.TimeStampToken.tsaSignerInfo:Lorg/bouncycastle/cms/SignerInformation;
aload 1
invokevirtual org.bouncycastle.cms.SignerInformation.verify:(Lorg/bouncycastle/cms/SignerInformationVerifier;)Z
1: ireturn
2: StackMap locals:
StackMap stack: org.bouncycastle.cms.CMSException
astore 2
start local 2 3: aload 2
invokevirtual org.bouncycastle.cms.CMSException.getUnderlyingException:()Ljava/lang/Exception;
ifnull 5
4: new org.bouncycastle.tsp.TSPException
dup
aload 2
invokevirtual org.bouncycastle.cms.CMSException.getMessage:()Ljava/lang/String;
aload 2
invokevirtual org.bouncycastle.cms.CMSException.getUnderlyingException:()Ljava/lang/Exception;
invokespecial org.bouncycastle.tsp.TSPException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
5: StackMap locals: org.bouncycastle.cms.CMSException
StackMap stack:
new org.bouncycastle.tsp.TSPException
dup
new java.lang.StringBuilder
dup
ldc "CMS exception: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 2
invokespecial org.bouncycastle.tsp.TSPException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/bouncycastle/tsp/TimeStampToken;
0 6 1 sigVerifier Lorg/bouncycastle/cms/SignerInformationVerifier;
3 6 2 e Lorg/bouncycastle/cms/CMSException;
Exception table:
from to target type
0 1 2 Class org.bouncycastle.cms.CMSException
Exceptions:
throws org.bouncycastle.tsp.TSPException
MethodParameters:
Name Flags
sigVerifier
public org.bouncycastle.cms.CMSSignedData toCMSSignedData();
descriptor: ()Lorg/bouncycastle/cms/CMSSignedData;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.tsp.TimeStampToken.tsToken:Lorg/bouncycastle/cms/CMSSignedData;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/tsp/TimeStampToken;
public byte[] getEncoded();
descriptor: ()[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.tsp.TimeStampToken.tsToken:Lorg/bouncycastle/cms/CMSSignedData;
invokevirtual org.bouncycastle.cms.CMSSignedData.getEncoded:()[B
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/tsp/TimeStampToken;
Exceptions:
throws java.io.IOException
}
SourceFile: "TimeStampToken.java"
NestMembers:
org.bouncycastle.tsp.TimeStampToken$CertID
InnerClasses:
private CertID = org.bouncycastle.tsp.TimeStampToken$CertID of org.bouncycastle.tsp.TimeStampToken