diff --git a/src/ep/relic_ep_cmp.c b/src/ep/relic_ep_cmp.c index e977b9bb7..a3dd965d1 100644 --- a/src/ep/relic_ep_cmp.c +++ b/src/ep/relic_ep_cmp.c @@ -71,7 +71,7 @@ int ep_cmp(const ep_t p, const ep_t q) { } switch (p->coord) { - /* Now to the same for the other point. */ + /* Now do the same for the other point. */ case PROJC: fp_mul(s->x, q->x, p->z); fp_mul(s->y, q->y, p->z); diff --git a/src/low/gmp_sec/relic_fp_rdc_low.c b/src/low/gmp_sec/relic_fp_rdc_low.c index afe9c3311..2763f77cf 100644 --- a/src/low/gmp_sec/relic_fp_rdc_low.c +++ b/src/low/gmp_sec/relic_fp_rdc_low.c @@ -53,7 +53,6 @@ void fp_rdcs_low(dig_t *c, const dig_t *a, const dig_t *m) { first = (d0) + (b0 == 0 ? 0 : 1); /* q = floor(a/b^k) */ - dv_zero(q, 2 * RLC_FP_DIGS); dv_rshd(q, a, 2 * RLC_FP_DIGS, d0); if (b0 > 0) { bn_rshb_low(q, q, 2 * RLC_FP_DIGS, b0); diff --git a/src/pc/relic_pc_util.c b/src/pc/relic_pc_util.c index c03b66556..83b180b94 100644 --- a/src/pc/relic_pc_util.c +++ b/src/pc/relic_pc_util.c @@ -84,6 +84,10 @@ int g1_is_valid(g1_t a) { g1_t u; int r; + if (g1_is_infty(a)) { + return 0; + } + bn_null(n); g1_null(u); @@ -106,6 +110,7 @@ int g1_is_valid(g1_t a) { g1_add(u, u, a); } } + g1_neg(u, u); r = (g1_cmp(u, a) == RLC_EQ); } } RLC_CATCH_ANY { @@ -124,6 +129,11 @@ int g2_is_valid(g2_t a) { return g1_is_valid(a); } #else + + if (g2_is_infty(a)) { + return 0; + } + bn_t p, n; g2_t u, v; int r; @@ -168,6 +178,7 @@ int g2_is_valid(g2_t a) { g2_add(u, u, a); } } + g2_neg(u, u); r = (g2_cmp(u, a) == RLC_EQ); } } RLC_CATCH_ANY { @@ -188,6 +199,10 @@ int gt_is_valid(gt_t a) { gt_t u, v; int r; + if (gt_is_unity(a)) { + return 0; + } + bn_null(n); bn_null(p); gt_null(u); @@ -226,6 +241,7 @@ int gt_is_valid(gt_t a) { gt_mul(u, u, a); } } + gt_inv(u, u); r = (gt_cmp(u, a) == RLC_EQ); } } RLC_CATCH_ANY {