/** * Returns a Hex encoded of the MD5 digest of binaries * * @param bytes * the bytes to be digested * @return the hex encoded MD5 digest */ public static String getMD5Digest(byte[] bytes) { return Utils.toHex(digest(DigestAlgorithm.MD5, bytes)); }
@Override public String getDigest(final DigestAlgorithm digestAlgorithm) { String base64EncodeDigest = base64EncodeDigestMap.get(digestAlgorithm); if (base64EncodeDigest == null) { final byte[] digestBytes = DSSUtils.digest(digestAlgorithm, this); base64EncodeDigest = Utils.toBase64(digestBytes); base64EncodeDigestMap.put(digestAlgorithm, base64EncodeDigest); } return base64EncodeDigest; }
/** * This method digests the given string with SHA1 algorithm and encode returned array of bytes as hex string. * * @param stringToDigest * Everything in the name * @return hex encoded digest value */ public static String getSHA1Digest(final String stringToDigest) { return Utils.toHex(digest(DigestAlgorithm.SHA1, stringToDigest.getBytes(StandardCharsets.UTF_8))); }
byte[] calculateDigestInternal(DigestAlgorithm digestAlgorithm) { logger.debug("Digest algorithm: " + digestAlgorithm); return DSSUtils.digest(digestAlgorithm, getBytes()); }
private byte[] getSignatureDigestValue(byte[] octets) { DigestAlgorithm usedDigestAlgorithm = getExtensionDigestAlgorithm(octets); String signatureValueInBase64 = signature.getSignatureValue().getFirstChild().getNodeValue(); byte[] signatureValue = Base64.decodeBase64(signatureValueInBase64.getBytes()); return DSSUtils.digest(usedDigestAlgorithm, signatureValue); }
@Override public String getDigest(DigestAlgorithm digestAlgorithm) { logger.debug("Digest algorithm: " + digestAlgorithm); byte[] digestBytes; try { digestBytes = DSSUtils.digest(digestAlgorithm, getTemporaryFileAsStream()); } catch (FileNotFoundException e) { logger.error(e.getMessage()); throw new DSSException(e); } return Base64.encodeBase64String(digestBytes); }
private void displayCertificateDigests(CertificateToken europanCert) { byte[] digestSHA256 = DSSUtils.digest(DigestAlgorithm.SHA256, europanCert.getEncoded()); byte[] digestSHA1 = DSSUtils.digest(DigestAlgorithm.SHA1, europanCert.getEncoded()); System.out.println("SHA256 digest (Hex) : " + getPrintableHex(digestSHA256)); System.out.println("SHA1 digest (Hex) : " + getPrintableHex(digestSHA1)); System.out.println("SHA256 digest (Base64) : " + Base64.encodeBase64String(digestSHA256)); System.out.println("SHA1 digest (Base64) : " + Base64.encodeBase64String(digestSHA1)); }
private boolean isMessageImprintsValid(byte[] dataFileBytes, TimeStampToken token) { return Arrays.equals(token.getTimeStampInfo().getMessageImprintDigest(), DSSUtils.digest(DigestAlgorithm.SHA256, dataFileBytes)); }
protected void addCRLBinary(byte[] binaries) { String base64Digest = Utils.toBase64(DSSUtils.digest(DigestAlgorithm.SHA256, binaries)); addCRLBinary(base64Digest, binaries); }
public static byte[] digest(DigestAlgorithm digestAlgorithm, DSSDocument document) { try (InputStream is = document.openStream()) { return digest(digestAlgorithm, is); } catch (IOException e) { throw new DSSException(e); } }
private byte[] signRSA(DigestAlgorithm digestAlgorithm, byte[] dataToSign) { try { logger.debug("Signing with PKCS#11 and " + digestAlgorithm.name()); byte[] digestToSign = DSSUtils.digest(digestAlgorithm.getDssDigestAlgorithm(), dataToSign); byte[] digestWithPadding = addPadding(digestToSign, digestAlgorithm); return signDigest(digestWithPadding); } catch (Exception e) { logger.error("Failed to sign with PKCS#11: " + e.getMessage()); throw new TechnicalException("Failed to sign with PKCS#11: " + e.getMessage(), e); } }
public SignedInfo(byte[] dataToDigest, SignatureParameters signatureParameters) { DigestAlgorithm digestAlgorithm = signatureParameters.getDigestAlgorithm(); digestToSign = DSSUtils.digest(forXML(digestAlgorithm.toString()), dataToDigest); this.signatureParameters = signatureParameters; }
public static byte[] computeSkiFromCert(final CertificateToken certificateToken) { try { DLSequence seq = (DLSequence) DERSequence.fromByteArray(certificateToken.getPublicKey().getEncoded()); DERBitString item = (DERBitString) seq.getObjectAt(1); return DSSUtils.digest(DigestAlgorithm.SHA1, item.getOctets()); } catch (IOException e) { throw new DSSException(e); } }
private DERSequence createSequence() { ASN1Object nonceComponents[] = new ASN1Object[2]; nonceComponents[0] = new DefaultDigestAlgorithmIdentifierFinder().find("SHA-256"); nonceComponents[1] = new DEROctetString(DSSUtils.digest(DigestAlgorithm.SHA256, this.signature)); return new DERSequence(nonceComponents); }
@Test public void testWithoutNonce() { OnlineTSPSource tspSource = new OnlineTSPSource(TSA_URL); byte[] digest = DSSUtils.digest(DigestAlgorithm.SHA1, "Hello world".getBytes()); TimeStampToken timeStampResponse = tspSource.getTimeStampResponse(DigestAlgorithm.SHA1, digest); assertNotNull(timeStampResponse); }
@Test public void testWithNativeHTTPDataLoader() { OnlineTSPSource tspSource = new OnlineTSPSource(TSA_URL); tspSource.setDataLoader(new NativeHTTPDataLoader()); byte[] digest = DSSUtils.digest(DigestAlgorithm.SHA1, "Hello world".getBytes()); TimeStampToken timeStampResponse = tspSource.getTimeStampResponse(DigestAlgorithm.SHA1, digest); assertNotNull(timeStampResponse); }
@Test public void testWithCommonDataLoader() { OnlineTSPSource tspSource = new OnlineTSPSource(TSA_URL); tspSource.setDataLoader(new CommonsDataLoader()); byte[] digest = DSSUtils.digest(DigestAlgorithm.SHA1, "Hello world".getBytes()); TimeStampToken timeStampResponse = tspSource.getTimeStampResponse(DigestAlgorithm.SHA1, digest); assertNotNull(timeStampResponse); }
@Test(expected = DSSException.class) public void testNotTSA() { OnlineTSPSource tspSource = new OnlineTSPSource(); tspSource.setDataLoader(new TimestampDataLoader()); tspSource.setTspServer("http://www.google.com"); byte[] digest = DSSUtils.digest(DigestAlgorithm.SHA1, "Hello world".getBytes()); tspSource.getTimeStampResponse(DigestAlgorithm.SHA1, digest); }
@Test public void testWithTimestampDataLoader() { OnlineTSPSource tspSource = new OnlineTSPSource("http://demo.sk.ee/tsa/"); tspSource.setPolicyOid("0.4.0.2023.1.1"); tspSource.setDataLoader(new TimestampDataLoader()); // content-type is different byte[] digest = DSSUtils.digest(DigestAlgorithm.SHA512, "Hello world".getBytes()); TimeStampToken timeStampResponse = tspSource.getTimeStampResponse(DigestAlgorithm.SHA512, digest); assertNotNull(timeStampResponse); }
@Test public void testWithNonce() { OnlineTSPSource tspSource = new OnlineTSPSource(TSA_URL); tspSource.setDataLoader(new NativeHTTPDataLoader()); tspSource.setNonceSource(new SecureRandomNonceSource()); byte[] digest = DSSUtils.digest(DigestAlgorithm.SHA1, "Hello world".getBytes()); TimeStampToken timeStampResponse = tspSource.getTimeStampResponse(DigestAlgorithm.SHA1, digest); assertNotNull(timeStampResponse); }