1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2025-01-15 01:40:57 +00:00

fix comparison of points

This commit is contained in:
Pavol Rusnak 2014-07-04 15:07:02 +02:00
parent abf7178319
commit 82ed3f31db

View File

@ -460,9 +460,9 @@ int ecdsa_verify_digest(const uint8_t *pub_key, const uint8_t *sig, const uint8_
for (j = 0; j < 30; j++) { for (j = 0; j < 30; j++) {
if (i == 8 && (s.val[i] >> j) == 0) break; if (i == 8 && (s.val[i] >> j) == 0) break;
if (s.val[i] & (1u << j)) { if (s.val[i] & (1u << j)) {
bn_mod(&(pub.y), &prime256k1); bn_mod(&(pub.x), &prime256k1);
bn_mod(&(res.y), &prime256k1); bn_mod(&(res.x), &prime256k1);
if (bn_is_equal(&(pub.y), &(res.y))) { if (bn_is_equal(&(pub.x), &(res.x))) {
// this is not a failure, but a very inprobable case // this is not a failure, but a very inprobable case
// that we don't handle because of its inprobability // that we don't handle because of its inprobability
return 4; return 4;