Message ID | 20231012133812.139893-1-prestwoj@gmail.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | ecc: add l_ecc_point_is_infinity | expand |
Context | Check | Description |
---|---|---|
tedd_an/pre-ci_am | success | Success |
prestwoj/iwd-ci-build | success | Build - Configure |
prestwoj/iwd-ci-clang | success | clang PASS |
prestwoj/iwd-ci-makecheckvalgrind | success | Make Check w/Valgrind |
prestwoj/iwd-ci-makecheck | success | Make Check |
prestwoj/iwd-ci-makedistcheck | success | Make Distcheck |
prestwoj/iwd-ci-testrunner | fail | test-runner - FAIL: testNetconfig |
Hi James, On 10/12/23 08:38, James Prestwood wrote: > When creating a point from raw data the validity and if > infinity is checked but there doesn't exist any way to check > a point for infinity after doing some arithmetic on it. Some > specs requires a resulting point be checked for infinity. > --- > ell/ecc.c | 5 +++++ > ell/ecc.h | 1 + > ell/ell.sym | 1 + > 3 files changed, 7 insertions(+) Applied, thanks. Regards, -Denis
diff --git a/ell/ecc.c b/ell/ecc.c index 73ddb96..518f405 100644 --- a/ell/ecc.c +++ b/ell/ecc.c @@ -1026,3 +1026,8 @@ LIB_EXPORT bool l_ecc_points_are_equal(const struct l_ecc_point *a, return ((memcmp(a->x, b->x, a->curve->ndigits * 8) == 0) && (memcmp(a->y, b->y, a->curve->ndigits * 8) == 0)); } + +LIB_EXPORT bool l_ecc_point_is_infinity(const struct l_ecc_point *p) +{ + return _ecc_point_is_zero(p); +} diff --git a/ell/ecc.h b/ell/ecc.h index 981bf95..2c2c73a 100644 --- a/ell/ecc.h +++ b/ell/ecc.h @@ -114,6 +114,7 @@ bool l_ecc_scalars_are_equal(const struct l_ecc_scalar *a, bool l_ecc_points_are_equal(const struct l_ecc_point *a, const struct l_ecc_point *b); +bool l_ecc_point_is_infinity(const struct l_ecc_point *p); #ifdef __cplusplus } diff --git a/ell/ell.sym b/ell/ell.sym index 7b5caa1..84c45b1 100644 --- a/ell/ell.sym +++ b/ell/ell.sym @@ -594,6 +594,7 @@ global: l_ecc_point_clone; l_ecc_point_get_curve; l_ecc_points_are_equal; + l_ecc_point_is_infinity; l_ecc_scalar_add; l_ecc_scalar_free; l_ecc_scalar_get_data;