RFR: 8297878: KEM: Implementation [v7]
Weijun Wang
weijun at openjdk.org
Mon Apr 24 22:56:18 UTC 2023
On Mon, 24 Apr 2023 20:50:23 GMT, Anthony Scarpino <ascarpino at openjdk.org> wrote:
>> Is the size always `Npk`? It could be less (if small) or bigger (if MSB is 1).
>
> If I understand what your saying, if `Npk` is larger than `uArray`, then `copyOf()` will pad with zeros at the end. I think that would change the value. And I don't see why `Npk` would be smaller than `uArray` otherwise this would be returning an invalid key
In fact, since the byte array is reversed, it's actually OK to pad zeros at the end without changing the value.
On the other hand, if the big integer's size is exact `Npk` but the most-significant-bit is 1, `toByteArray` will add an extra 00 at the beginning to keep it positive. In this case, the byte array length is `Npk + 1`. After reversed we can truncate the extra 00 byte now at the end.
Fascinating, isn't it?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/13256#discussion_r1175847108
More information about the security-dev
mailing list