1
2 package org.bouncycastle.asn1.x509;
3
4 import org.bouncycastle.asn1.*;
5 import org.bouncycastle.asn1.pkcs.*;
6
7
20 public class CertificateList
21 implements DEREncodable
22 {
23 TBSCertList tbsCertList;
24 AlgorithmIdentifier sigAlgId;
25 DERBitString sig;
26
27 public static CertificateList getInstance(
28 ASN1TaggedObject obj,
29 boolean explicit)
30 {
31 return getInstance(ASN1Sequence.getInstance(obj, explicit));
32 }
33
34 public static CertificateList getInstance(
35 Object obj)
36 {
37 if (obj instanceof CertificateList)
38 {
39 return (CertificateList)obj;
40 }
41 else if (obj instanceof ASN1Sequence)
42 {
43 return new CertificateList((ASN1Sequence)obj);
44 }
45
46 throw new IllegalArgumentException("unknown object in factory");
47 }
48
49 public CertificateList(
50 ASN1Sequence seq)
51 {
52 tbsCertList = TBSCertList.getInstance(seq.getObjectAt(0));
53 sigAlgId = AlgorithmIdentifier.getInstance(seq.getObjectAt(1));
54 sig = (DERBitString)seq.getObjectAt(2);
55 }
56
57 public TBSCertList getTBSCertList()
58 {
59 return tbsCertList;
60 }
61
62 public TBSCertList.CRLEntry[] getRevokedCertificates()
63 {
64 return tbsCertList.getRevokedCertificates();
65 }
66
67 public AlgorithmIdentifier getSignatureAlgorithm()
68 {
69 return sigAlgId;
70 }
71
72 public DERBitString getSignature()
73 {
74 return sig;
75 }
76
77 public int getVersion()
78 {
79 return tbsCertList.getVersion();
80 }
81
82 public X509Name getIssuer()
83 {
84 return tbsCertList.getIssuer();
85 }
86
87 public Time getThisUpdate()
88 {
89 return tbsCertList.getThisUpdate();
90 }
91
92 public Time getNextUpdate()
93 {
94 return tbsCertList.getNextUpdate();
95 }
96
97 public DERObject getDERObject()
98 {
99 DERConstructedSequence seq = new DERConstructedSequence();
100 seq.addObject(tbsCertList);
101 seq.addObject(sigAlgId);
102 seq.addObject(sig);
103 return seq;
104 }
105 }
106