tr.gov.turkiye.esign.cms.MessageDigest.java Source code

Java tutorial

Introduction

Here is the source code for tr.gov.turkiye.esign.cms.MessageDigest.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package tr.gov.turkiye.esign.cms;

import org.bouncycastle.asn1.ASN1Object;
import org.bouncycastle.asn1.DEROctetString;
import tr.gov.turkiye.esign.exception.SmartCardException;
import tr.gov.turkiye.esign.util.Util;

/**
 * The message-digest attribute type specifies the message digest of the
   encapContentInfo eContent OCTET STRING being signed in signed-data
or authenticated in authenticated-data.
   * <br><br>
 * MessageDigest ::= DEROctetString content
 * @author sercan
 */
public class MessageDigest implements CMSObject {
    /**
     * DEROctetString instance of MessageDigest
     */
    DEROctetString contentDigest;

    /**
     * Creates MessageDigest instance
     * @param content the input for digest
     * @param isSHA256 the algorithm requested is SHA256 or not
     * @throws SmartCardException 
     */
    public MessageDigest(byte[] content, boolean isSHA256) throws SmartCardException {
        byte[] contentDigestBytes;
        if (isSHA256) {
            contentDigestBytes = Util.digestSHA256(content);
        } else {
            contentDigestBytes = Util.digestSHA1(content);
        }
        contentDigest = new DEROctetString(contentDigestBytes);
    }

    @Override
    public ASN1Object toASN1Object() {
        return contentDigest;
    }

}