memset(out, 0, outlen);
- return prf_xor(NID_sha512, secret, secretlen / 2, seed, seedlen, out, outlen)
- && prf_xor(NID_whirlpool, secret, secretlen / 2, seed, seedlen, out, outlen);
+ return prf_xor(NID_sha512, secret, (secretlen + 1) / 2, seed, seedlen, out, outlen)
+ && prf_xor(NID_whirlpool, secret + secretlen / 2, (secretlen + 1) / 2, seed, seedlen, out, outlen);
}