2002/03/21 01:19:32
[org.ibex.core.git] / src / org / bouncycastle / asn1 / x509 / DigestInfo.java
diff --git a/src/org/bouncycastle/asn1/x509/DigestInfo.java b/src/org/bouncycastle/asn1/x509/DigestInfo.java
new file mode 100644 (file)
index 0000000..b15d37e
--- /dev/null
@@ -0,0 +1,57 @@
+package org.bouncycastle.asn1.x509;
+
+import java.util.Enumeration;
+
+import org.bouncycastle.asn1.*;
+import org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers;
+
+/**
+ * <pre>
+ * DigestInfo::=SEQUENCE{
+ *          digestAlgorithm  AlgorithmIdentifier,
+ *          digest OCTET STRING }
+ * </pre>
+ */
+public class DigestInfo
+    implements PKCSObjectIdentifiers, DEREncodable
+{
+    private byte[]                  digest;
+    private AlgorithmIdentifier     algId;
+
+    public DigestInfo(
+        AlgorithmIdentifier  algId,
+        byte[]               digest)
+    {
+        this.digest = digest;
+        this.algId = algId;
+    }
+
+    public DigestInfo(
+        DERConstructedSequence  seq)
+    {
+        Enumeration             e = seq.getObjects();
+
+        algId = new AlgorithmIdentifier((DERConstructedSequence)e.nextElement());
+        digest = ((DEROctetString)e.nextElement()).getOctets();
+    }
+
+    public AlgorithmIdentifier getAlgorithmId()
+    {
+        return algId;
+    }
+
+    public byte[] getDigest()
+    {
+        return digest;
+    }
+
+    public DERObject getDERObject()
+    {
+        DERConstructedSequence  seq = new DERConstructedSequence();
+
+        seq.addObject(algId);
+        seq.addObject(new DEROctetString(digest));
+
+        return seq;
+    }
+}