From 26a9435f5c1fa754fe208f3e907bdc752aac922f Mon Sep 17 00:00:00 2001 From: Sean Parkinson Date: Wed, 15 Nov 2023 13:21:30 +1000 Subject: [PATCH] ECC point double: when z ordinate is 0 point is infinity Recognize z == 0 as infinity in result of double. --- wolfcrypt/src/ecc.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/wolfcrypt/src/ecc.c b/wolfcrypt/src/ecc.c index e38548bc9..179fb6003 100644 --- a/wolfcrypt/src/ecc.c +++ b/wolfcrypt/src/ecc.c @@ -7801,6 +7801,13 @@ int ecc_projective_dbl_point_safe(ecc_point *P, ecc_point *R, mp_int* a, } else { err = _ecc_projective_dbl_point(P, R, a, modulus, mp); + if ((err == MP_OKAY) && mp_iszero(R->z)) { + err = mp_set(R->x, 0); + if (err == MP_OKAY) + err = mp_set(R->y, 0); + if (err == MP_OKAY) + err = mp_set(R->z, 1); + } } return err;