Example usage for org.bouncycastle.asn1.tsp MessageImprint getHashedMessage

List of usage examples for org.bouncycastle.asn1.tsp MessageImprint getHashedMessage

Introduction

In this page you can find the example usage for org.bouncycastle.asn1.tsp MessageImprint getHashedMessage.

Prototype

public byte[] getHashedMessage() 

Source Link

Usage

From source file:com.itextpdf.signatures.PdfPKCS7.java

License:Open Source License

/**
 * Verify the digest.//from ww w  .  j  a va2 s.  c  o m
 *
 * @return <CODE>true</CODE> if the signature checks out, <CODE>false</CODE> otherwise
 * @throws SignatureException                     on error
 * @throws java.security.GeneralSecurityException
 */
public boolean verify() throws GeneralSecurityException {
    if (verified)
        return verifyResult;
    if (isTsp) {
        TimeStampTokenInfo info = timeStampToken.getTimeStampInfo();
        MessageImprint imprint = info.toASN1Structure().getMessageImprint();
        byte[] md = messageDigest.digest();
        byte[] imphashed = imprint.getHashedMessage();
        verifyResult = Arrays.equals(md, imphashed);
    } else {
        if (sigAttr != null || sigAttrDer != null) {
            final byte[] msgDigestBytes = messageDigest.digest();
            boolean verifyRSAdata = true;
            // Stefan Santesson fixed a bug, keeping the code backward compatible
            boolean encContDigestCompare = false;
            if (RSAdata != null) {
                verifyRSAdata = Arrays.equals(msgDigestBytes, RSAdata);
                encContDigest.update(RSAdata);
                encContDigestCompare = Arrays.equals(encContDigest.digest(), digestAttr);
            }
            boolean absentEncContDigestCompare = Arrays.equals(msgDigestBytes, digestAttr);
            boolean concludingDigestCompare = absentEncContDigestCompare || encContDigestCompare;
            boolean sigVerify = verifySigAttributes(sigAttr) || verifySigAttributes(sigAttrDer);
            verifyResult = concludingDigestCompare && sigVerify && verifyRSAdata;
        } else {
            if (RSAdata != null)
                sig.update(messageDigest.digest());
            verifyResult = sig.verify(digest);
        }
    }
    verified = true;
    return verifyResult;
}

From source file:com.itextpdf.signatures.PdfPKCS7.java

License:Open Source License

/**
 * Checks if the timestamp refers to this document.
 *
 * @return true if it checks false otherwise
 * @throws GeneralSecurityException on error
 *///from   w  ww  .  j  a v a2 s . c o  m
public boolean verifyTimestampImprint() throws GeneralSecurityException {
    if (timeStampToken == null)
        return false;
    TimeStampTokenInfo info = timeStampToken.getTimeStampInfo();
    MessageImprint imprint = info.toASN1Structure().getMessageImprint();
    String algOID = info.getHashAlgorithm().getAlgorithm().getId();
    byte[] md = SignUtils.getMessageDigest(DigestAlgorithms.getDigest(algOID)).digest(digest);
    byte[] imphashed = imprint.getHashedMessage();
    return Arrays.equals(md, imphashed);
}

From source file:com.itextpdf.text.pdf.PdfPKCS7.java

License:Open Source License

/**
 * Checks if the timestamp refers to this document.
 * @throws java.security.NoSuchAlgorithmException on error
 * @return true if it checks false otherwise
 * @since   2.1.6// ww w  .  j  ava 2s .c  om
 */
public boolean verifyTimestampImprint() throws NoSuchAlgorithmException {
    if (timeStampToken == null)
        return false;
    MessageImprint imprint = timeStampToken.getTimeStampInfo().toTSTInfo().getMessageImprint();
    byte[] md = MessageDigest.getInstance("SHA-1").digest(digest);
    byte[] imphashed = imprint.getHashedMessage();
    boolean res = Arrays.equals(md, imphashed);
    return res;
}

From source file:com.itextpdf.text.pdf.security.PdfPKCS7.java

License:Open Source License

/**
 * Checks if the timestamp refers to this document.
 * @return true if it checks false otherwise
 * @throws GeneralSecurityException on error
 * @since   2.1.6// ww w . ja v  a 2  s  .  co  m
 */
public boolean verifyTimestampImprint() throws GeneralSecurityException {
    if (timeStampToken == null)
        return false;
    TimeStampTokenInfo info = timeStampToken.getTimeStampInfo();
    MessageImprint imprint = info.toASN1Structure().getMessageImprint();
    String algOID = info.getMessageImprintAlgOID().getId();
    byte[] md = new BouncyCastleDigest().getMessageDigest(DigestAlgorithms.getDigest(algOID)).digest(digest);
    byte[] imphashed = imprint.getHashedMessage();
    boolean res = Arrays.equals(md, imphashed);
    return res;
}