diff --git a/briar-core/src/org/briarproject/crypto/DigestWrapper.java b/briar-core/src/org/briarproject/crypto/DigestWrapper.java
index 30b623eee39cb772b2cf8deb48785095ce769eaf..01b7272f72bd4e1243c74285c7372120eff502f0 100644
--- a/briar-core/src/org/briarproject/crypto/DigestWrapper.java
+++ b/briar-core/src/org/briarproject/crypto/DigestWrapper.java
@@ -26,8 +26,9 @@ class DigestWrapper implements MessageDigest {
 
 	@Override
 	public int digest(byte[] buf, int offset, int len) {
-		if (len != digest.getDigestSize()) throw new IllegalArgumentException();
-		digest.doFinal(buf, offset);
+		byte[] hash = digest();
+		len = Math.min(len, hash.length);
+		System.arraycopy(hash, 0, buf, offset, len);
 		return len;
 	}