summaryrefslogtreecommitdiff
path: root/ecc-ecdsa-verify.c
diff options
context:
space:
mode:
authorNiels Möller <nisse@lysator.liu.se>2021-03-13 15:19:19 +0100
committerNiels Möller <nisse@lysator.liu.se>2021-03-13 19:20:39 +0100
commit2397757b3f95fcae1e2d3011bf99ca5b5438378f (patch)
treea680cea150087fa084c4ab9266a070634efe5197 /ecc-ecdsa-verify.c
parent5b7608fde3a6d2ab82bffb35db1e4e330927c906 (diff)
downloadnettle-2397757b3f95fcae1e2d3011bf99ca5b5438378f.tar.gz
Fix bug in ecc_ecdsa_verify.
* ecc-ecdsa-verify.c (ecc_ecdsa_verify): Use ecc_mod_mul_canonical to compute the scalars used for ecc multiplication. * testsuite/ecdsa-verify-test.c (test_main): Add test case that triggers an assert on 64-bit platforms, without above fix. * testsuite/ecdsa-sign-test.c (test_main): Test case generating the same signature.
Diffstat (limited to 'ecc-ecdsa-verify.c')
-rw-r--r--ecc-ecdsa-verify.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/ecc-ecdsa-verify.c b/ecc-ecdsa-verify.c
index 1b2dcca7..f3b112b0 100644
--- a/ecc-ecdsa-verify.c
+++ b/ecc-ecdsa-verify.c
@@ -102,10 +102,10 @@ ecc_ecdsa_verify (const struct ecc_curve *ecc,
/* u1 = h / s, P1 = u1 * G */
ecc_hash (&ecc->q, hp, length, digest);
- ecc_mod_mul (&ecc->q, u1, hp, sinv, u1);
+ ecc_mod_mul_canonical (&ecc->q, u1, hp, sinv, u1);
/* u2 = r / s, P2 = u2 * Y */
- ecc_mod_mul (&ecc->q, u2, rp, sinv, u2);
+ ecc_mod_mul_canonical (&ecc->q, u2, rp, sinv, u2);
/* Total storage: 5*ecc->p.size + ecc->mul_itch */
ecc->mul (ecc, P2, u2, pp, u2 + ecc->p.size);