+ timeStampToken.getTimeStampInfo().getGenTime());
System.out.println("Time stamp gen time: " + timeStampToken.getTimeStampInfo().getGenTime()); System.out.println("Time stamp tsa name: " + timeStampToken.getTimeStampInfo().getTsa().getName()); System.out.println("certs=" + certs); String hashAlgorithm = timeStampToken.getTimeStampInfo().getMessageImprintAlgOID().getId(); timeStampToken.getTimeStampInfo().getMessageImprintDigest())) verifyCertificateChain(timeStampToken.getCertificates(), certFromTimeStamp, timeStampToken.getTimeStampInfo().getGenTime());
private List<TSDMetas> extractMetas(InputStream stream) { List<TSDMetas> tsdMetasList = new ArrayList<>(); try { CMSTimeStampedData cmsTimeStampedData = new CMSTimeStampedData(stream); TimeStampToken[] tokens = cmsTimeStampedData.getTimeStampTokens(); for (int i = 0; i < tokens.length; i++) { TSDMetas tsdMetas = new TSDMetas(true, tokens[i].getTimeStampInfo().getGenTime(), tokens[i].getTimeStampInfo().getPolicy().getId(), tokens[i].getTimeStampInfo().getSerialNumber(), tokens[i].getTimeStampInfo().getTsa(), tokens[i].getTimeStampInfo().getHashAlgorithm().getAlgorithm().getId()); tsdMetasList.add(tsdMetas); } } catch (Exception ex) { LOG.error("Error in TSDParser.buildMetas {}", ex.getMessage()); tsdMetasList.clear(); } return tsdMetasList; }
tsToken.getTimeStampInfo().getGenTime(), certs); String digestAlgUri = uriForDigest(tsTokenInfo.getMessageImprintAlgOID()); MessageDigest md = messageDigestProvider.getEngine(digestAlgUri); if (!Arrays.equals(md.digest(tsDigestInput), tsTokenInfo.getMessageImprintDigest())) return tsTokenInfo.getGenTime();
/** * Retrieves timestamp msg-imprint digest * @return timestamp msg-imprint digest */ public byte[] getMessageImprint() { byte[] b = null; if(m_tsTok != null) { b = m_tsTok.getTimeStampInfo().getMessageImprintDigest(); } return b; }
public static void verifyTimeStampTokenDigest( TimeStampToken timeStampToken, TimeStampDigestInput digestInput) throws XAdESValidationException { LOG.debug("digest verification: algo=" + timeStampToken.getTimeStampInfo().getMessageImprintAlgOID()); MessageDigest md; try { md = MessageDigest.getInstance(timeStampToken.getTimeStampInfo() .getMessageImprintAlgOID()); } catch (NoSuchAlgorithmException e) { throw new XAdESValidationException(e); } // LOG.debug("digest input: " + new String(digestInput.getBytes())); if (!Arrays.equals(md.digest(digestInput.getBytes()), timeStampToken .getTimeStampInfo().getMessageImprintDigest())) { throw new XAdESValidationException( "Digest verification failure for " + "timestamp token"); } }
/** * Checks if the {@code TimeStampToken} matches the signed data. * * @param data the array of {@code byte} representing the timestamped data * @return true if the data is verified by the TimeStampToken */ public boolean matchData(final byte[] data) { try { messageImprintData = data != null; final TimeStampTokenInfo timeStampInfo = timeStamp.getTimeStampInfo(); final ASN1ObjectIdentifier hashAlgorithm = timeStampInfo.getHashAlgorithm().getAlgorithm(); final DigestAlgorithm digestAlgorithm = DigestAlgorithm.forOID(hashAlgorithm); final byte[] computedDigest = DSSUtils.digest(digestAlgorithm, data); final byte[] timestampDigest = timeStampInfo.getMessageImprintDigest(); messageImprintIntact = Arrays.equals(computedDigest, timestampDigest); if (!messageImprintIntact) { LOG.error("Extracted data from the document: {}", DSSUtils.encodeHexString(data, 200)); LOG.error("Computed digest ({}) on the extracted data from the document : {}", digestAlgorithm, DSSUtils.encodeHexString(computedDigest)); LOG.error("Digest present in TimestampToken: {}", DSSUtils.encodeHexString(timestampDigest)); LOG.error("Digest in TimestampToken matches digest of extracted data from document: {}", messageImprintIntact); } } catch (DSSException e) { messageImprintIntact = false; signedDataMessage = "Timestamp digest problem: " + e.getMessage(); } return messageImprintIntact; }
/** * Retrieves the {@code DigestAlgorithm} used to generate the digest value to timestamp. * * @return {@code DigestAlgorithm} */ public DigestAlgorithm getSignedDataDigestAlgo() { final ASN1ObjectIdentifier oid = timeStamp.getTimeStampInfo().getHashAlgorithm().getAlgorithm(); return DigestAlgorithm.forOID(oid); }
/** * Checks if the timestamp refers to this document. * @return true if it checks false otherwise * @throws GeneralSecurityException on error * @since 2.1.6 */ 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; }
/** * Checks if the timestamp refers to this document. * * @return true if it checks false otherwise * @throws GeneralSecurityException on error */ public boolean verifyTimestampImprint() throws GeneralSecurityException { // TODO ensure this method works correctly 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); }
/** * Retrieves timestamp responses signature * algorithm OID. * @return responses signature algorithm OID */ public String getAlgorithmOid() { String oid = null; if(m_tsTinfo != null) { oid = m_tsTinfo.getMessageImprintAlgOID().getId(); } return oid; }
/** * Retrieves timestamp responses policy * @return responses policy */ public String getPolicy() { String oid = null; if(m_tsTinfo != null) { oid = m_tsTinfo.getPolicy().getId(); } return oid; }
/** * Retorna os dados da TSA (Time Stamping Authority) * * @return os atributos do certificado da TSA */ public String getAutoridadeCarimboTempo() { return timeStampToken.getTimeStampInfo().getTsa().toString(); }
public byte[] getMessageImprintDigest() { return timeStampToken.getTimeStampInfo().getMessageImprintDigest(); }
Digest digest = DigestFactory.getInstance().factoryDefault(); TimeStampTokenInfo info = timeStampToken.getTimeStampInfo(); ASN1ObjectIdentifier algOID = info.getMessageImprintAlgOID(); digest.setAlgorithm(algOID.toString()); calculatedHash = digest.digest(content); if (Arrays.equals(calculatedHash, timeStampToken.getTimeStampInfo().getMessageImprintDigest())) { logger.info(timeStampMessagesBundle.getString("info.timestamp.hash.ok")); } else {
public String getAlgoritmoDoHash() { return timeStampToken.getTimeStampInfo().getHashAlgorithm().getAlgorithm().toString(); }
/** * Checks if the timestamp refers to this document. * * @return true if it checks false otherwise * @throws GeneralSecurityException on error */ public boolean verifyTimestampImprint() throws GeneralSecurityException { // TODO ensure this method works correctly 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); }
this.timeStampToken = new TimeStampToken(contentInfoTsp); TimeStampTokenInfo info = timeStampToken.getTimeStampInfo(); String algOID = info.getMessageImprintAlgOID().getId(); messageDigest = DigestAlgorithms.getMessageDigestFromOid(algOID, null);
public String getPolicy() { return timeStampToken.getTimeStampInfo().getPolicy().toString(); }
/** * * The attributes of the Time Stamp Authority's certificate. * @return Authority information */ public String getTimeStampAuthorityInfo() { return timeStampToken.getTimeStampInfo().getTsa().toString(); }