import java.util.Enumeration;
import org.bouncycastle.asn1.*;
-import org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers;
/**
* <pre>
* </pre>
*/
public class DigestInfo
- implements PKCSObjectIdentifiers, DEREncodable
+ implements DEREncodable
{
private byte[] digest;
private AlgorithmIdentifier algId;
+ public static DigestInfo getInstance(
+ ASN1TaggedObject obj,
+ boolean explicit)
+ {
+ return getInstance(ASN1Sequence.getInstance(obj, explicit));
+ }
+
+ public static DigestInfo getInstance(
+ Object obj)
+ {
+ if (obj instanceof DigestInfo)
+ {
+ return (DigestInfo)obj;
+ }
+ else if (obj instanceof ASN1Sequence)
+ {
+ return new DigestInfo((ASN1Sequence)obj);
+ }
+
+ throw new IllegalArgumentException("unknown object in factory");
+ }
+
public DigestInfo(
AlgorithmIdentifier algId,
byte[] digest)
}
public DigestInfo(
- DERConstructedSequence seq)
+ ASN1Sequence obj)
{
- Enumeration e = seq.getObjects();
+ Enumeration e = obj.getObjects();
- algId = new AlgorithmIdentifier((DERConstructedSequence)e.nextElement());
- digest = ((DEROctetString)e.nextElement()).getOctets();
+ algId = AlgorithmIdentifier.getInstance(e.nextElement());
+ digest = ((ASN1OctetString)e.nextElement()).getOctets();
}
public AlgorithmIdentifier getAlgorithmId()
public DERObject getDERObject()
{
- DERConstructedSequence seq = new DERConstructedSequence();
+ DEREncodableVector v = new DEREncodableVector();
- seq.addObject(algId);
- seq.addObject(new DEROctetString(digest));
+ v.add(algId);
+ v.add(new DEROctetString(digest));
- return seq;
+ return new DERSequence(v);
}
}