From c830107bce1555cfa66e59d39bbb9dbd79ca94f1 Mon Sep 17 00:00:00 2001 From: Sean Gilligan Date: Tue, 12 Sep 2023 10:45:27 -0700 Subject: [PATCH] PBKDF2SHA512: set hLen to correct value of 64 This is a bugfix to the API, but since `MnemonicCode` always passes `dkLen` of 64 and the `System.arraycopy()` on line 66 truncates `baos.toByteArray()` to `dkLen` length, the call to `derive()` works correctly for our use-case. --- core/src/main/java/org/bitcoinj/crypto/PBKDF2SHA512.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/org/bitcoinj/crypto/PBKDF2SHA512.java b/core/src/main/java/org/bitcoinj/crypto/PBKDF2SHA512.java index 32437f652..94671e117 100644 --- a/core/src/main/java/org/bitcoinj/crypto/PBKDF2SHA512.java +++ b/core/src/main/java/org/bitcoinj/crypto/PBKDF2SHA512.java @@ -41,7 +41,7 @@ public class PBKDF2SHA512 { ByteArrayOutputStream baos = new ByteArrayOutputStream(); try { - int hLen = 20; + int hLen = 64; // Length of HMAC result if (dkLen > ((Math.pow(2, 32)) - 1) * hLen) { throw new IllegalArgumentException("derived key too long");