public class X509CertificateStructure
implements DEREncodable, X509ObjectIdentifiers, PKCSObjectIdentifiers
{
- DERConstructedSequence seq;
+ ASN1Sequence seq;
TBSCertificateStructure tbsCert;
AlgorithmIdentifier sigAlgId;
DERBitString sig;
+ public static X509CertificateStructure getInstance(
+ ASN1TaggedObject obj,
+ boolean explicit)
+ {
+ return getInstance(ASN1Sequence.getInstance(obj, explicit));
+ }
+
+ public static X509CertificateStructure getInstance(
+ Object obj)
+ {
+ if (obj instanceof X509CertificateStructure)
+ {
+ return (X509CertificateStructure)obj;
+ }
+ else if (obj instanceof ASN1Sequence)
+ {
+ return new X509CertificateStructure((ASN1Sequence)obj);
+ }
+
+ throw new IllegalArgumentException("unknown object in factory");
+ }
+
public X509CertificateStructure(
- DERConstructedSequence seq)
+ ASN1Sequence seq)
{
this.seq = seq;
//
// correct x509 certficate
//
- if (seq.getSize() == 3)
+ if (seq.size() == 3)
{
- if (seq.getObjectAt(0) instanceof TBSCertificateStructure)
- {
- tbsCert = (TBSCertificateStructure)seq.getObjectAt(0);
- }
- else
- {
- tbsCert = new TBSCertificateStructure((DERConstructedSequence)seq.getObjectAt(0));
- }
-
- if (seq.getObjectAt(1) instanceof AlgorithmIdentifier)
- {
- sigAlgId = (AlgorithmIdentifier)seq.getObjectAt(1);
- }
- else
- {
- sigAlgId = new AlgorithmIdentifier((DERConstructedSequence)seq.getObjectAt(1));
- }
+ tbsCert = TBSCertificateStructure.getInstance(seq.getObjectAt(0));
+ sigAlgId = AlgorithmIdentifier.getInstance(seq.getObjectAt(1));
sig = (DERBitString)seq.getObjectAt(2);
}
return tbsCert.getIssuer();
}
- public DERUTCTime getStartDate()
+ public Time getStartDate()
{
return tbsCert.getStartDate();
}
- public DERUTCTime getEndDate()
+ public Time getEndDate()
{
return tbsCert.getEndDate();
}