2002/03/21 01:19:32
[org.ibex.core.git] / src / org / bouncycastle / asn1 / x509 / DigestInfo.java
1 package org.bouncycastle.asn1.x509;
2
3 import java.util.Enumeration;
4
5 import org.bouncycastle.asn1.*;
6 import org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers;
7
8 /**
9  * <pre>
10  * DigestInfo::=SEQUENCE{
11  *          digestAlgorithm  AlgorithmIdentifier,
12  *          digest OCTET STRING }
13  * </pre>
14  */
15 public class DigestInfo
16     implements PKCSObjectIdentifiers, DEREncodable
17 {
18     private byte[]                  digest;
19     private AlgorithmIdentifier     algId;
20
21     public DigestInfo(
22         AlgorithmIdentifier  algId,
23         byte[]               digest)
24     {
25         this.digest = digest;
26         this.algId = algId;
27     }
28
29     public DigestInfo(
30         DERConstructedSequence  seq)
31     {
32         Enumeration             e = seq.getObjects();
33
34         algId = new AlgorithmIdentifier((DERConstructedSequence)e.nextElement());
35         digest = ((DEROctetString)e.nextElement()).getOctets();
36     }
37
38     public AlgorithmIdentifier getAlgorithmId()
39     {
40         return algId;
41     }
42
43     public byte[] getDigest()
44     {
45         return digest;
46     }
47
48     public DERObject getDERObject()
49     {
50         DERConstructedSequence  seq = new DERConstructedSequence();
51
52         seq.addObject(algId);
53         seq.addObject(new DEROctetString(digest));
54
55         return seq;
56     }
57 }