resolve darcs stupidity
[org.ibex.core.git] / src / org / bouncycastle / asn1 / x509 / X509CertificateStructure.java
index 68479c5..ed55485 100644 (file)
@@ -16,38 +16,45 @@ import org.bouncycastle.asn1.pkcs.*;
 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);
         }
@@ -73,12 +80,12 @@ public class X509CertificateStructure
         return tbsCert.getIssuer();
     }
 
-    public DERUTCTime getStartDate()
+    public Time getStartDate()
     {
         return tbsCert.getStartDate();
     }
 
-    public DERUTCTime getEndDate()
+    public Time getEndDate()
     {
         return tbsCert.getEndDate();
     }