RFR: 8285493: ECC calculation error
Weijun Wang
weijun at openjdk.java.net
Wed Apr 27 13:00:41 UTC 2022
On Wed, 27 Apr 2022 06:28:27 GMT, Xue-Lei Andrew Fan <xuelei at openjdk.org> wrote:
>> Only numbers from the same modular fields can be involved in arithmetic calculations. Add `assert` to guarantee this.
>>
>> Also, found one broken case and rewrote it.
>
> src/jdk.crypto.ec/share/classes/sun/security/ec/ECDSAOperations.java line 261:
>
>> 259: IntegerModuloP result = p1.asAffine().getX();
>> 260: b2a(result, orderField, temp1);
>> 261: return MessageDigest.isEqual(temp1, r);
>
> I did not get the point of this update. Is it the broken case you mentioned in the PR description? What's the issue of the original code?
Here, `result`'s modulus is `field`, and `ri`'s is `orderField`. Therefore you cannot simply subtract one from the other. One new `assert` would fail.
-------------
PR: https://git.openjdk.java.net/jdk/pull/8409
More information about the security-dev
mailing list