resolve darcs stupidity
[org.ibex.core.git] / src / org / bouncycastle / asn1 / x509 / DSAParameter.java
index b6234bb..3cd24d9 100644 (file)
@@ -1,6 +1,6 @@
 package org.bouncycastle.asn1.x509;
 
-import java.math.*;
+import java.math.BigInteger;
 import java.util.*;
 
 import org.bouncycastle.asn1.*;
@@ -10,6 +10,29 @@ public class DSAParameter
 {
     DERInteger      p, q, g;
 
+    public static DSAParameter getInstance(
+        ASN1TaggedObject obj,
+        boolean          explicit)
+    {
+        return getInstance(ASN1Sequence.getInstance(obj, explicit));
+    }
+
+    public static DSAParameter getInstance(
+        Object obj)
+    {
+        if(obj == null || obj instanceof DSAParameter) 
+        {
+            return (DSAParameter)obj;
+        }
+        
+        if(obj instanceof ASN1Sequence) 
+        {
+            return new DSAParameter((ASN1Sequence)obj);
+        }
+        
+        throw new IllegalArgumentException("Invalid DSAParameter: " + obj.getClass().getName());
+    }
+
     public DSAParameter(
         BigInteger  p,
         BigInteger  q,
@@ -21,7 +44,7 @@ public class DSAParameter
     }
 
     public DSAParameter(
-        DERConstructedSequence  seq)
+        ASN1Sequence  seq)
     {
         Enumeration     e = seq.getObjects();
 
@@ -47,12 +70,12 @@ public class DSAParameter
 
     public DERObject getDERObject()
     {
-        DERConstructedSequence  seq = new DERConstructedSequence();
+        DEREncodableVector  v = new DEREncodableVector();
 
-        seq.addObject(p);
-        seq.addObject(q);
-        seq.addObject(g);
+        v.add(p);
+        v.add(q);
+        v.add(g);
 
-        return seq;
+        return new DERSequence(v);
     }
 }