> On May 5, 2016, at 11:06 AM, Wang Weijun <[email protected]> wrote:
>
> So this assumes len % 4 == 0.
>
> If you follow this, you might need to add Unsafe.putInt for the last 4 bytes.
>
> On the other hand, if you think len % 8 == 0 should always be true, I can do
> some expand-and-shrink inside SHA5.java. My DRBG chanegset is not pushed yet.
I decided not to touch ByteArrayAccess.java. Instead, for SHA-512/224, I will
use
int len = engineGetDigestLength();
if (len == 28) {
// Special case for SHA-512/224
l2bBig(state, 0, out, ofs, 24);
i2bBig4((int)(state[3] >> 32), out, ofs + 24);
} else {
l2bBig(state, 0, out, ofs, len);
}
Maybe we should add a check in l2bBig etc.
Thanks
Max