package org.bouncycastle.asn1.tsp; import org.bouncycastle.asn1.ASN1Encodable; import org.bouncycastle.asn1.ASN1EncodableVector; import org.bouncycastle.asn1.ASN1OctetString; import org.bouncycastle.asn1.ASN1Sequence; import org.bouncycastle.asn1.DERObject; import org.bouncycastle.asn1.DEROctetString; import org.bouncycastle.asn1.DERSequence; import org.bouncycastle.asn1.x509.AlgorithmIdentifier; public class MessageImprint extends ASN1Encodable { AlgorithmIdentifier hashAlgorithm; byte[] hashedMessage; /** * @param o * @return a MessageImprint object. */ public static MessageImprint getInstance(Object o) { if (o == null || o instanceof MessageImprint) { return (MessageImprint)o; } else if (o instanceof ASN1Sequence) { return new MessageImprint((ASN1Sequence)o); } throw new IllegalArgumentException("Bad object in factory."); } public MessageImprint( ASN1Sequence seq) { this.hashAlgorithm = AlgorithmIdentifier.getInstance(seq.getObjectAt(0)); this.hashedMessage = ASN1OctetString.getInstance(seq.getObjectAt(1)).getOctets(); } public MessageImprint( AlgorithmIdentifier hashAlgorithm, byte[] hashedMessage) { this.hashAlgorithm = hashAlgorithm; this.hashedMessage = hashedMessage; } public AlgorithmIdentifier getHashAlgorithm() { return hashAlgorithm; } public byte[] getHashedMessage() { return hashedMessage; } /** * <pre> * MessageImprint ::= SEQUENCE { * hashAlgorithm AlgorithmIdentifier, * hashedMessage OCTET STRING } * </pre> */ public DERObject toASN1Object() { ASN1EncodableVector v = new ASN1EncodableVector(); v.add(hashAlgorithm); v.add(new DEROctetString(hashedMessage)); return new DERSequence(v); } }