1 package org.bouncycastle.asn1.x509;
3 import org.bouncycastle.asn1.*;
4 import org.bouncycastle.asn1.pkcs.*;
7 * an X509Certificate structure.
9 * Certificate ::= SEQUENCE {
10 * tbsCertificate TBSCertificate,
11 * signatureAlgorithm AlgorithmIdentifier,
12 * signature BIT STRING
16 public class X509CertificateStructure
17 implements DEREncodable, X509ObjectIdentifiers, PKCSObjectIdentifiers
19 DERConstructedSequence seq;
20 TBSCertificateStructure tbsCert;
21 AlgorithmIdentifier sigAlgId;
24 public X509CertificateStructure(
25 DERConstructedSequence seq)
30 // correct x509 certficate
32 if (seq.getSize() == 3)
34 if (seq.getObjectAt(0) instanceof TBSCertificateStructure)
36 tbsCert = (TBSCertificateStructure)seq.getObjectAt(0);
40 tbsCert = new TBSCertificateStructure((DERConstructedSequence)seq.getObjectAt(0));
43 if (seq.getObjectAt(1) instanceof AlgorithmIdentifier)
45 sigAlgId = (AlgorithmIdentifier)seq.getObjectAt(1);
49 sigAlgId = new AlgorithmIdentifier((DERConstructedSequence)seq.getObjectAt(1));
52 sig = (DERBitString)seq.getObjectAt(2);
56 public TBSCertificateStructure getTBSCertificate()
61 public int getVersion()
63 return tbsCert.getVersion();
66 public DERInteger getSerialNumber()
68 return tbsCert.getSerialNumber();
71 public X509Name getIssuer()
73 return tbsCert.getIssuer();
76 public DERUTCTime getStartDate()
78 return tbsCert.getStartDate();
81 public DERUTCTime getEndDate()
83 return tbsCert.getEndDate();
86 public X509Name getSubject()
88 return tbsCert.getSubject();
91 public SubjectPublicKeyInfo getSubjectPublicKeyInfo()
93 return tbsCert.getSubjectPublicKeyInfo();
96 public AlgorithmIdentifier getSignatureAlgorithm()
101 public DERBitString getSignature()
106 public DERObject getDERObject()