public class org.bouncycastle.tsp.TSPUtil
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.tsp.TSPUtil
super_class: java.lang.Object
{
private static java.util.List EMPTY_LIST;
descriptor: Ljava/util/List;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static final java.util.Map digestLengths;
descriptor: Ljava/util/Map;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.Map digestNames;
descriptor: Ljava/util/Map;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
putstatic org.bouncycastle.tsp.TSPUtil.EMPTY_LIST:Ljava/util/List;
1: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putstatic org.bouncycastle.tsp.TSPUtil.digestLengths:Ljava/util/Map;
2: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putstatic org.bouncycastle.tsp.TSPUtil.digestNames:Ljava/util/Map;
3: getstatic org.bouncycastle.tsp.TSPUtil.digestLengths:Ljava/util/Map;
getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.md5:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
bipush 16
invokestatic org.bouncycastle.util.Integers.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: getstatic org.bouncycastle.tsp.TSPUtil.digestLengths:Ljava/util/Map;
getstatic org.bouncycastle.asn1.oiw.OIWObjectIdentifiers.idSHA1:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
bipush 20
invokestatic org.bouncycastle.util.Integers.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
5: getstatic org.bouncycastle.tsp.TSPUtil.digestLengths:Ljava/util/Map;
getstatic org.bouncycastle.asn1.nist.NISTObjectIdentifiers.id_sha224:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
bipush 28
invokestatic org.bouncycastle.util.Integers.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
6: getstatic org.bouncycastle.tsp.TSPUtil.digestLengths:Ljava/util/Map;
getstatic org.bouncycastle.asn1.nist.NISTObjectIdentifiers.id_sha256:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
bipush 32
invokestatic org.bouncycastle.util.Integers.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
7: getstatic org.bouncycastle.tsp.TSPUtil.digestLengths:Ljava/util/Map;
getstatic org.bouncycastle.asn1.nist.NISTObjectIdentifiers.id_sha384:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
bipush 48
invokestatic org.bouncycastle.util.Integers.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
8: getstatic org.bouncycastle.tsp.TSPUtil.digestLengths:Ljava/util/Map;
getstatic org.bouncycastle.asn1.nist.NISTObjectIdentifiers.id_sha512:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
bipush 64
invokestatic org.bouncycastle.util.Integers.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
9: getstatic org.bouncycastle.tsp.TSPUtil.digestLengths:Ljava/util/Map;
getstatic org.bouncycastle.asn1.teletrust.TeleTrusTObjectIdentifiers.ripemd128:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
bipush 16
invokestatic org.bouncycastle.util.Integers.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
10: getstatic org.bouncycastle.tsp.TSPUtil.digestLengths:Ljava/util/Map;
getstatic org.bouncycastle.asn1.teletrust.TeleTrusTObjectIdentifiers.ripemd160:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
bipush 20
invokestatic org.bouncycastle.util.Integers.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
11: getstatic org.bouncycastle.tsp.TSPUtil.digestLengths:Ljava/util/Map;
getstatic org.bouncycastle.asn1.teletrust.TeleTrusTObjectIdentifiers.ripemd256:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
bipush 32
invokestatic org.bouncycastle.util.Integers.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
12: getstatic org.bouncycastle.tsp.TSPUtil.digestLengths:Ljava/util/Map;
getstatic org.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiers.gostR3411:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
bipush 32
invokestatic org.bouncycastle.util.Integers.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
13: getstatic org.bouncycastle.tsp.TSPUtil.digestLengths:Ljava/util/Map;
getstatic org.bouncycastle.asn1.rosstandart.RosstandartObjectIdentifiers.id_tc26_gost_3411_12_256:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
bipush 32
invokestatic org.bouncycastle.util.Integers.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
14: getstatic org.bouncycastle.tsp.TSPUtil.digestLengths:Ljava/util/Map;
getstatic org.bouncycastle.asn1.rosstandart.RosstandartObjectIdentifiers.id_tc26_gost_3411_12_512:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
bipush 64
invokestatic org.bouncycastle.util.Integers.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
15: getstatic org.bouncycastle.tsp.TSPUtil.digestLengths:Ljava/util/Map;
getstatic org.bouncycastle.asn1.gm.GMObjectIdentifiers.sm3:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
bipush 32
invokestatic org.bouncycastle.util.Integers.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
16: getstatic org.bouncycastle.tsp.TSPUtil.digestNames:Ljava/util/Map;
getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.md5:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
ldc "MD5"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
17: getstatic org.bouncycastle.tsp.TSPUtil.digestNames:Ljava/util/Map;
getstatic org.bouncycastle.asn1.oiw.OIWObjectIdentifiers.idSHA1:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
ldc "SHA1"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
18: getstatic org.bouncycastle.tsp.TSPUtil.digestNames:Ljava/util/Map;
getstatic org.bouncycastle.asn1.nist.NISTObjectIdentifiers.id_sha224:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
ldc "SHA224"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
19: getstatic org.bouncycastle.tsp.TSPUtil.digestNames:Ljava/util/Map;
getstatic org.bouncycastle.asn1.nist.NISTObjectIdentifiers.id_sha256:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
ldc "SHA256"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
20: getstatic org.bouncycastle.tsp.TSPUtil.digestNames:Ljava/util/Map;
getstatic org.bouncycastle.asn1.nist.NISTObjectIdentifiers.id_sha384:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
ldc "SHA384"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
21: getstatic org.bouncycastle.tsp.TSPUtil.digestNames:Ljava/util/Map;
getstatic org.bouncycastle.asn1.nist.NISTObjectIdentifiers.id_sha512:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
ldc "SHA512"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
22: getstatic org.bouncycastle.tsp.TSPUtil.digestNames:Ljava/util/Map;
getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.sha1WithRSAEncryption:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
ldc "SHA1"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
23: getstatic org.bouncycastle.tsp.TSPUtil.digestNames:Ljava/util/Map;
getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.sha224WithRSAEncryption:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
ldc "SHA224"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
24: getstatic org.bouncycastle.tsp.TSPUtil.digestNames:Ljava/util/Map;
getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.sha256WithRSAEncryption:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
ldc "SHA256"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
25: getstatic org.bouncycastle.tsp.TSPUtil.digestNames:Ljava/util/Map;
getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.sha384WithRSAEncryption:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
ldc "SHA384"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
26: getstatic org.bouncycastle.tsp.TSPUtil.digestNames:Ljava/util/Map;
getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.sha512WithRSAEncryption:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
ldc "SHA512"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
27: getstatic org.bouncycastle.tsp.TSPUtil.digestNames:Ljava/util/Map;
getstatic org.bouncycastle.asn1.teletrust.TeleTrusTObjectIdentifiers.ripemd128:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
ldc "RIPEMD128"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
28: getstatic org.bouncycastle.tsp.TSPUtil.digestNames:Ljava/util/Map;
getstatic org.bouncycastle.asn1.teletrust.TeleTrusTObjectIdentifiers.ripemd160:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
ldc "RIPEMD160"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
29: getstatic org.bouncycastle.tsp.TSPUtil.digestNames:Ljava/util/Map;
getstatic org.bouncycastle.asn1.teletrust.TeleTrusTObjectIdentifiers.ripemd256:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
ldc "RIPEMD256"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
30: getstatic org.bouncycastle.tsp.TSPUtil.digestNames:Ljava/util/Map;
getstatic org.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiers.gostR3411:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
ldc "GOST3411"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
31: getstatic org.bouncycastle.tsp.TSPUtil.digestNames:Ljava/util/Map;
getstatic org.bouncycastle.asn1.rosstandart.RosstandartObjectIdentifiers.id_tc26_gost_3411_12_256:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
ldc "GOST3411-2012-256"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
32: getstatic org.bouncycastle.tsp.TSPUtil.digestNames:Ljava/util/Map;
getstatic org.bouncycastle.asn1.rosstandart.RosstandartObjectIdentifiers.id_tc26_gost_3411_12_512:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
ldc "GOST3411-2012-512"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
33: getstatic org.bouncycastle.tsp.TSPUtil.digestNames:Ljava/util/Map;
getstatic org.bouncycastle.asn1.gm.GMObjectIdentifiers.sm3:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
ldc "SM3"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
34: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/tsp/TSPUtil;
public static java.util.Collection getSignatureTimestamps(org.bouncycastle.cms.SignerInformation, org.bouncycastle.operator.DigestCalculatorProvider);
descriptor: (Lorg/bouncycastle/cms/SignerInformation;Lorg/bouncycastle/operator/DigestCalculatorProvider;)Ljava/util/Collection;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=15, args_size=2
start local 0 start local 1 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
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 32
3: aload 3
4: getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.id_aa_signatureTimeStampToken:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
5: invokevirtual org.bouncycastle.asn1.cms.AttributeTable.getAll:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Lorg/bouncycastle/asn1/ASN1EncodableVector;
astore 4
start local 4 6: iconst_0
istore 5
start local 5 7: goto 31
8: StackMap locals: org.bouncycastle.cms.SignerInformation org.bouncycastle.operator.DigestCalculatorProvider java.util.List org.bouncycastle.asn1.cms.AttributeTable org.bouncycastle.asn1.ASN1EncodableVector int
StackMap stack:
aload 4
iload 5
invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.get:(I)Lorg/bouncycastle/asn1/ASN1Encodable;
checkcast org.bouncycastle.asn1.cms.Attribute
astore 6
start local 6 9: aload 6
invokevirtual org.bouncycastle.asn1.cms.Attribute.getAttrValues:()Lorg/bouncycastle/asn1/ASN1Set;
astore 7
start local 7 10: iconst_0
istore 8
start local 8 11: goto 29
12: StackMap locals: org.bouncycastle.asn1.cms.Attribute org.bouncycastle.asn1.ASN1Set int
StackMap stack:
aload 7
iload 8
invokevirtual org.bouncycastle.asn1.ASN1Set.getObjectAt:(I)Lorg/bouncycastle/asn1/ASN1Encodable;
invokestatic org.bouncycastle.asn1.cms.ContentInfo.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/cms/ContentInfo;
astore 9
start local 9 13: new org.bouncycastle.tsp.TimeStampToken
dup
aload 9
invokespecial org.bouncycastle.tsp.TimeStampToken.<init>:(Lorg/bouncycastle/asn1/cms/ContentInfo;)V
astore 10
start local 10 14: aload 10
invokevirtual org.bouncycastle.tsp.TimeStampToken.getTimeStampInfo:()Lorg/bouncycastle/tsp/TimeStampTokenInfo;
astore 11
start local 11 15: aload 1
aload 11
invokevirtual org.bouncycastle.tsp.TimeStampTokenInfo.getHashAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
invokeinterface org.bouncycastle.operator.DigestCalculatorProvider.get:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)Lorg/bouncycastle/operator/DigestCalculator;
astore 12
start local 12 16: aload 12
invokeinterface org.bouncycastle.operator.DigestCalculator.getOutputStream:()Ljava/io/OutputStream;
astore 13
start local 13 17: aload 13
aload 0
invokevirtual org.bouncycastle.cms.SignerInformation.getSignature:()[B
invokevirtual java.io.OutputStream.write:([B)V
18: aload 13
invokevirtual java.io.OutputStream.close:()V
19: aload 12
invokeinterface org.bouncycastle.operator.DigestCalculator.getDigest:()[B
astore 14
start local 14 20: aload 14
aload 11
invokevirtual org.bouncycastle.tsp.TimeStampTokenInfo.getMessageImprintDigest:()[B
invokestatic org.bouncycastle.util.Arrays.constantTimeAreEqual:([B[B)Z
ifne 22
21: new org.bouncycastle.tsp.TSPValidationException
dup
ldc "Incorrect digest in message imprint"
invokespecial org.bouncycastle.tsp.TSPValidationException.<init>:(Ljava/lang/String;)V
athrow
22: StackMap locals: org.bouncycastle.cms.SignerInformation org.bouncycastle.operator.DigestCalculatorProvider java.util.List org.bouncycastle.asn1.cms.AttributeTable org.bouncycastle.asn1.ASN1EncodableVector int org.bouncycastle.asn1.cms.Attribute org.bouncycastle.asn1.ASN1Set int org.bouncycastle.asn1.cms.ContentInfo org.bouncycastle.tsp.TimeStampToken org.bouncycastle.tsp.TimeStampTokenInfo org.bouncycastle.operator.DigestCalculator java.io.OutputStream byte[]
StackMap stack:
aload 2
aload 10
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 23: goto 28
24: StackMap locals: org.bouncycastle.cms.SignerInformation org.bouncycastle.operator.DigestCalculatorProvider java.util.List org.bouncycastle.asn1.cms.AttributeTable org.bouncycastle.asn1.ASN1EncodableVector int org.bouncycastle.asn1.cms.Attribute org.bouncycastle.asn1.ASN1Set int
StackMap stack: org.bouncycastle.operator.OperatorCreationException
pop
25: new org.bouncycastle.tsp.TSPValidationException
dup
ldc "Unknown hash algorithm specified in timestamp"
invokespecial org.bouncycastle.tsp.TSPValidationException.<init>:(Ljava/lang/String;)V
athrow
26: StackMap locals:
StackMap stack: java.lang.Exception
pop
27: new org.bouncycastle.tsp.TSPValidationException
dup
ldc "Timestamp could not be parsed"
invokespecial org.bouncycastle.tsp.TSPValidationException.<init>:(Ljava/lang/String;)V
athrow
28: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
29: iload 8
aload 7
invokevirtual org.bouncycastle.asn1.ASN1Set.size:()I
if_icmplt 12
end local 8 end local 7 end local 6 30: iinc 5 1
StackMap locals:
StackMap stack:
31: iload 5
aload 4
invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.size:()I
if_icmplt 8
end local 5 end local 4 32: StackMap locals:
StackMap stack:
aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 signerInfo Lorg/bouncycastle/cms/SignerInformation;
0 33 1 digCalcProvider Lorg/bouncycastle/operator/DigestCalculatorProvider;
1 33 2 timestamps Ljava/util/List;
2 33 3 unsignedAttrs Lorg/bouncycastle/asn1/cms/AttributeTable;
6 32 4 allTSAttrs Lorg/bouncycastle/asn1/ASN1EncodableVector;
7 32 5 i I
9 30 6 tsAttr Lorg/bouncycastle/asn1/cms/Attribute;
10 30 7 tsAttrValues Lorg/bouncycastle/asn1/ASN1Set;
11 30 8 j I
13 23 9 contentInfo Lorg/bouncycastle/asn1/cms/ContentInfo;
14 23 10 timeStampToken Lorg/bouncycastle/tsp/TimeStampToken;
15 23 11 tstInfo Lorg/bouncycastle/tsp/TimeStampTokenInfo;
16 23 12 digCalc Lorg/bouncycastle/operator/DigestCalculator;
17 23 13 dOut Ljava/io/OutputStream;
20 23 14 expectedDigest [B
Exception table:
from to target type
12 23 24 Class org.bouncycastle.operator.OperatorCreationException
12 23 26 Class java.lang.Exception
Exceptions:
throws org.bouncycastle.tsp.TSPValidationException
MethodParameters:
Name Flags
signerInfo
digCalcProvider
public static void validateCertificate(org.bouncycastle.cert.X509CertificateHolder);
descriptor: (Lorg/bouncycastle/cert/X509CertificateHolder;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual org.bouncycastle.cert.X509CertificateHolder.toASN1Structure:()Lorg/bouncycastle/asn1/x509/Certificate;
invokevirtual org.bouncycastle.asn1.x509.Certificate.getVersionNumber:()I
iconst_3
if_icmpeq 2
1: new java.lang.IllegalArgumentException
dup
ldc "Certificate must have an ExtendedKeyUsage extension."
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getstatic org.bouncycastle.asn1.x509.Extension.extendedKeyUsage:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.cert.X509CertificateHolder.getExtension:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Lorg/bouncycastle/asn1/x509/Extension;
astore 1
start local 1 3: aload 1
ifnonnull 5
4: new org.bouncycastle.tsp.TSPValidationException
dup
ldc "Certificate must have an ExtendedKeyUsage extension."
invokespecial org.bouncycastle.tsp.TSPValidationException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: org.bouncycastle.asn1.x509.Extension
StackMap stack:
aload 1
invokevirtual org.bouncycastle.asn1.x509.Extension.isCritical:()Z
ifne 7
6: new org.bouncycastle.tsp.TSPValidationException
dup
ldc "Certificate must have an ExtendedKeyUsage extension marked as critical."
invokespecial org.bouncycastle.tsp.TSPValidationException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.bouncycastle.asn1.x509.Extension.getParsedValue:()Lorg/bouncycastle/asn1/ASN1Encodable;
invokestatic org.bouncycastle.asn1.x509.ExtendedKeyUsage.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/x509/ExtendedKeyUsage;
astore 2
start local 2 8: aload 2
getstatic org.bouncycastle.asn1.x509.KeyPurposeId.id_kp_timeStamping:Lorg/bouncycastle/asn1/x509/KeyPurposeId;
invokevirtual org.bouncycastle.asn1.x509.ExtendedKeyUsage.hasKeyPurposeId:(Lorg/bouncycastle/asn1/x509/KeyPurposeId;)Z
ifeq 9
aload 2
invokevirtual org.bouncycastle.asn1.x509.ExtendedKeyUsage.size:()I
iconst_1
if_icmpeq 10
9: StackMap locals: org.bouncycastle.asn1.x509.ExtendedKeyUsage
StackMap stack:
new org.bouncycastle.tsp.TSPValidationException
dup
ldc "ExtendedKeyUsage not solely time stamping."
invokespecial org.bouncycastle.tsp.TSPValidationException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 cert Lorg/bouncycastle/cert/X509CertificateHolder;
3 11 1 ext Lorg/bouncycastle/asn1/x509/Extension;
8 11 2 extKey Lorg/bouncycastle/asn1/x509/ExtendedKeyUsage;
Exceptions:
throws org.bouncycastle.tsp.TSPValidationException
MethodParameters:
Name Flags
cert
static int getDigestLength(java.lang.String);
descriptor: (Ljava/lang/String;)I
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: getstatic org.bouncycastle.tsp.TSPUtil.digestLengths:Ljava/util/Map;
aload 0
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
astore 1
start local 1 1: aload 1
ifnull 3
2: aload 1
invokevirtual java.lang.Integer.intValue:()I
ireturn
3: StackMap locals: java.lang.Integer
StackMap stack:
new org.bouncycastle.tsp.TSPException
dup
ldc "digest algorithm cannot be found."
invokespecial org.bouncycastle.tsp.TSPException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 digestAlgOID Ljava/lang/String;
1 4 1 length Ljava/lang/Integer;
Exceptions:
throws org.bouncycastle.tsp.TSPException
MethodParameters:
Name Flags
digestAlgOID
static java.util.List getExtensionOIDs(org.bouncycastle.asn1.x509.Extensions);
descriptor: (Lorg/bouncycastle/asn1/x509/Extensions;)Ljava/util/List;
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
ifnonnull 2
1: getstatic org.bouncycastle.tsp.TSPUtil.EMPTY_LIST:Ljava/util/List;
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.bouncycastle.asn1.x509.Extensions.getExtensionOIDs:()[Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 extensions Lorg/bouncycastle/asn1/x509/Extensions;
MethodParameters:
Name Flags
extensions
static void addExtension(org.bouncycastle.asn1.x509.ExtensionsGenerator, org.bouncycastle.asn1.ASN1ObjectIdentifier, boolean, org.bouncycastle.asn1.ASN1Encodable);
descriptor: (Lorg/bouncycastle/asn1/x509/ExtensionsGenerator;Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;ZLorg/bouncycastle/asn1/ASN1Encodable;)V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
iload 2
aload 3
invokevirtual org.bouncycastle.asn1.x509.ExtensionsGenerator.addExtension:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;ZLorg/bouncycastle/asn1/ASN1Encodable;)V
1: goto 4
2: StackMap locals:
StackMap stack: java.io.IOException
astore 4
start local 4 3: new org.bouncycastle.tsp.TSPIOException
dup
new java.lang.StringBuilder
dup
ldc "cannot encode extension: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.io.IOException.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.tsp.TSPIOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 4: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 extGenerator Lorg/bouncycastle/asn1/x509/ExtensionsGenerator;
0 5 1 oid Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
0 5 2 isCritical Z
0 5 3 value Lorg/bouncycastle/asn1/ASN1Encodable;
3 4 4 e Ljava/io/IOException;
Exception table:
from to target type
0 1 2 Class java.io.IOException
Exceptions:
throws org.bouncycastle.tsp.TSPIOException
MethodParameters:
Name Flags
extGenerator
oid
isCritical
value
}
SourceFile: "TSPUtil.java"