2 package org.bouncycastle.asn1.x509;
4 import org.bouncycastle.asn1.*;
5 import org.bouncycastle.asn1.pkcs.*;
10 * The X.509 v2 CRL syntax is as follows. For signature calculation,
11 * the data that is to be signed is ASN.1 DER encoded.
14 * CertificateList ::= SEQUENCE {
15 * tbsCertList TBSCertList,
16 * signatureAlgorithm AlgorithmIdentifier,
17 * signatureValue BIT STRING }
20 public class CertificateList
21 implements DEREncodable
23 TBSCertList tbsCertList;
24 AlgorithmIdentifier sigAlgId;
27 public static CertificateList getInstance(
31 return getInstance(ASN1Sequence.getInstance(obj, explicit));
34 public static CertificateList getInstance(
37 if (obj instanceof CertificateList)
39 return (CertificateList)obj;
41 else if (obj instanceof ASN1Sequence)
43 return new CertificateList((ASN1Sequence)obj);
46 throw new IllegalArgumentException("unknown object in factory");
49 public CertificateList(
52 tbsCertList = TBSCertList.getInstance(seq.getObjectAt(0));
53 sigAlgId = AlgorithmIdentifier.getInstance(seq.getObjectAt(1));
54 sig = (DERBitString)seq.getObjectAt(2);
57 public TBSCertList getTBSCertList()
62 public TBSCertList.CRLEntry[] getRevokedCertificates()
64 return tbsCertList.getRevokedCertificates();
67 public AlgorithmIdentifier getSignatureAlgorithm()
72 public DERBitString getSignature()
77 public int getVersion()
79 return tbsCertList.getVersion();
82 public X509Name getIssuer()
84 return tbsCertList.getIssuer();
87 public Time getThisUpdate()
89 return tbsCertList.getThisUpdate();
92 public Time getNextUpdate()
94 return tbsCertList.getNextUpdate();
97 public DERObject getDERObject()
99 DERConstructedSequence seq = new DERConstructedSequence();
100 seq.addObject(tbsCertList);
101 seq.addObject(sigAlgId);