FileInputStream is = new FileInputStream("/file/path");
BufferedInputStream filebuffer = new BufferedInputStream(is);
MessageDigest md = MessageDigest.getInstance("SHA-256");
DigestInputStream digestInputStream = new DigestInputStream(
filebuffer,md);
BufferedInputStream digBuffer = new BufferedInputStream(
digestInputStream);
Cipher cipher = Cipher.getInstance("AES/CBC/PCKS5Padding");
// cipher is also inited with a random generated key, and an
// IV which is the digest of the key
CipherInputStream cipherInputStream = new CipherInputStream(
digBuffer, cipher);
BufferedInputStream readBuffer = new BufferedInputStream(
cipherInputStream);
// HttpClient uploads data by reading from readBuffer
byte[] tmpdigest = md.digest();
md.reset();
md.update(tmpdigest);
// The digest (double SHA-256) from the file just uploaded)
byte[] digest = md.digest();