in src/main/java/org/apache/cassandra/sidecar/utils/MD5ChecksumVerifier.java [80:107]
Future<String> calculateMD5(AsyncFile file)
{
MessageDigest digest;
try
{
digest = MessageDigest.getInstance("MD5");
}
catch (NoSuchAlgorithmException e)
{
return Future.failedFuture(e);
}
Promise<String> result = Promise.promise();
file.pause()
.setReadBufferSize(DEFAULT_READ_BUFFER_SIZE)
.handler(buf -> digest.update(buf.getBytes()))
.endHandler(_v -> {
result.complete(Base64.getEncoder().encodeToString(digest.digest()));
file.end();
})
.exceptionHandler(cause -> {
LOGGER.error("Error while calculating MD5 checksum", cause);
result.fail(cause);
file.end();
})
.resume();
return result.future();
}