/** * This method allows to digest the data with the given algorithm. * * @param digestAlgorithm * the algorithm to use * @param data * the data to digest * @return digested array of bytes */ public static byte[] digest(final DigestAlgorithm digestAlgorithm, final byte[] data) { final MessageDigest messageDigest = getMessageDigest(digestAlgorithm); return messageDigest.digest(data); }
public static byte[] digest(DigestAlgorithm digestAlgorithm, byte[]... data) { final MessageDigest messageDigest = getMessageDigest(digestAlgorithm); for (final byte[] bytes : data) { messageDigest.update(bytes); } return messageDigest.digest(); }
/** * This method allows to digest the data in the {@code InputStream} with the given algorithm. * * @param digestAlgo * the algorithm to use * @param inputStream * the data to digest * @return digested array of bytes */ public static byte[] digest(final DigestAlgorithm digestAlgo, final InputStream inputStream) { try { final MessageDigest messageDigest = getMessageDigest(digestAlgo); final byte[] buffer = new byte[4096]; int count = 0; while ((count = inputStream.read(buffer)) > 0) { messageDigest.update(buffer, 0, count); } return messageDigest.digest(); } catch (IOException e) { throw new DSSException(e); } }