2002/03/21 01:19:32
[org.ibex.core.git] / src / org / bouncycastle / asn1 / x509 / RSAPublicKeyStructure.java
diff --git a/src/org/bouncycastle/asn1/x509/RSAPublicKeyStructure.java b/src/org/bouncycastle/asn1/x509/RSAPublicKeyStructure.java
new file mode 100644 (file)
index 0000000..b792fe1
--- /dev/null
@@ -0,0 +1,60 @@
+package org.bouncycastle.asn1.x509;
+
+import java.util.Enumeration;
+import java.math.BigInteger;
+
+import org.bouncycastle.asn1.*;
+
+public class RSAPublicKeyStructure
+    implements DEREncodable
+{
+    private BigInteger  modulus;
+    private BigInteger  publicExponent;
+
+    public RSAPublicKeyStructure(
+        BigInteger  modulus,
+        BigInteger  publicExponent)
+    {
+        this.modulus = modulus;
+        this.publicExponent = publicExponent;
+    }
+
+    public RSAPublicKeyStructure(
+        DERConstructedSequence  seq)
+    {
+        Enumeration e = seq.getObjects();
+
+        modulus = ((DERInteger)e.nextElement()).getValue();
+        publicExponent = ((DERInteger)e.nextElement()).getValue();
+    }
+
+    public BigInteger getModulus()
+    {
+        return modulus;
+    }
+
+    public BigInteger getPublicExponent()
+    {
+        return publicExponent;
+    }
+
+    /**
+     * This outputs the key in PKCS1v2 format.
+     * <pre>
+     *      RSAPublicKey ::= SEQUENCE {
+     *                          modulus INTEGER, -- n
+     *                          publicExponent INTEGER, -- e
+     *                      }
+     * </pre>
+     * <p>
+     */
+    public DERObject getDERObject()
+    {
+        DERConstructedSequence  seq = new DERConstructedSequence();
+
+        seq.addObject(new DERInteger(getModulus()));
+        seq.addObject(new DERInteger(getPublicExponent()));
+
+        return seq;
+    }
+}