From 42909e39681bcbaaada696c901bbff472d71dbe2 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bodo=20M=C3=B6ller?= Date: Thu, 8 Mar 2001 22:52:49 +0000 Subject: [PATCH 1/1] Fix ec_GFp_simple_cmp. Use example group from Annex I of X9.62 in ectest.c. --- crypto/ec/ecp_smpl.c | 7 ++++++- crypto/ec/ectest.c | 8 ++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/crypto/ec/ecp_smpl.c b/crypto/ec/ecp_smpl.c index 204dafab2a..4c23b71020 100644 --- a/crypto/ec/ecp_smpl.c +++ b/crypto/ec/ecp_smpl.c @@ -1409,13 +1409,18 @@ int ec_GFp_simple_cmp(const EC_GROUP *group, const EC_POINT *a, const EC_POINT * { if (!field_mul(group, Zb23, Zb23, &b->Z, ctx)) goto end; if (!field_mul(group, tmp1, &a->Y, Zb23, ctx)) goto end; + /* tmp1_ = tmp1 */ } + else + tmp1_ = &a->Y; if (!a->Z_is_one) { if (!field_mul(group, Za23, Za23, &a->Z, ctx)) goto end; if (!field_mul(group, tmp2, &b->Y, Za23, ctx)) goto end; + /* tmp2_ = tmp2 */ } - /* tmp1_ and tmp2_ are still ok */ + else + tmp2_ = &b->Y; /* compare Y_a*Z_b^3 with Y_b*Z_a^3 */ if (BN_cmp(tmp1_, tmp2_) != 0) diff --git a/crypto/ec/ectest.c b/crypto/ec/ectest.c index 28e331b608..53f88c6517 100644 --- a/crypto/ec/ectest.c +++ b/crypto/ec/ectest.c @@ -94,9 +94,9 @@ int main(int argc, char *argv[]) b = BN_new(); if (!p || !a || !b) ABORT; - if (!BN_hex2bn(&p, "D")) ABORT; - if (!BN_hex2bn(&a, "7")) ABORT; - if (!BN_hex2bn(&b, "C")) ABORT; + if (!BN_hex2bn(&p, "17")) ABORT; + if (!BN_hex2bn(&a, "1")) ABORT; + if (!BN_hex2bn(&b, "1")) ABORT; group = EC_GROUP_new(EC_GFp_mont_method()); if (!group) ABORT; @@ -130,7 +130,7 @@ int main(int argc, char *argv[]) z = BN_new(); if (!x || !y || !z) ABORT; - if (!BN_hex2bn(&x, "C")) ABORT; + if (!BN_hex2bn(&x, "D")) ABORT; if (!EC_POINT_set_compressed_coordinates_GFp(group, Q, x, 1, ctx)) ABORT; if (!EC_POINT_is_on_curve(group, Q, ctx)) { -- 2.34.1