+2021-11-19 Niels Möller <nisse@lysator.liu.se>
+
+ * gmp-glue.c (mpz_limbs_cmp): Deleted function. Usage replaced
+ with mpz_roinit_n and mpz_cmp.
+
2021-11-15 Niels Möller <nisse@lysator.liu.se>
* testsuite/eddsa-compress-test.c (test_main): Use test_randomize.
ecc_point_set (struct ecc_point *p, const mpz_t x, const mpz_t y)
{
mp_size_t size;
- mpz_t lhs, rhs;
+ mpz_t m, lhs, rhs;
mpz_t t;
int res;
size = p->ecc->p.size;
+ mpz_roinit_n (m, p->ecc->p.m, size);
- if (mpz_sgn (x) < 0 || mpz_limbs_cmp (x, p->ecc->p.m, size) >= 0
- || mpz_sgn (y) < 0 || mpz_limbs_cmp (y, p->ecc->p.m, size) >= 0)
+ if (mpz_sgn (x) < 0 || mpz_cmp (x, m) >= 0
+ || mpz_sgn (y) < 0 || mpz_cmp (y, m) >= 0)
return 0;
mpz_init (lhs);
ecc_scalar_set (struct ecc_scalar *s, const mpz_t z)
{
mp_size_t size = s->ecc->p.size;
-
- if (mpz_sgn (z) <= 0 || mpz_limbs_cmp (z, s->ecc->q.m, size) >= 0)
+ mpz_t t;
+ if (mpz_sgn (z) <= 0 || mpz_cmp (z, mpz_roinit_n(t, s->ecc->q.m, size)) >= 0)
return 0;
mpz_limbs_copy (s->p, z, size);
/* Additional convenience functions. */
-int
-mpz_limbs_cmp (mpz_srcptr a, const mp_limb_t *bp, mp_size_t bn)
-{
- mp_size_t an = mpz_size (a);
- assert (mpz_sgn (a) >= 0);
- assert (bn >= 0);
-
- if (an < bn)
- return -1;
- if (an > bn)
- return 1;
- if (an == 0)
- return 0;
-
- return mpn_cmp (mpz_limbs_read(a), bp, an);
-}
-
/* Get a pointer to an n limb area, for read-only operation. n must be
greater or equal to the current size, and the mpz is zero-padded if
needed. */
#include "bignum.h"
-#define mpz_limbs_cmp _nettle_mpz_limbs_cmp
#define mpz_limbs_read_n _nettle_mpz_limbs_read_n
#define mpz_limbs_copy _nettle_mpz_limbs_copy
#define mpz_set_n _nettle_mpz_set_n
(((n) * 8 + GMP_NUMB_BITS - 1) / GMP_NUMB_BITS)
/* Convenience functions */
-int
-mpz_limbs_cmp (mpz_srcptr a, const mp_limb_t *bp, mp_size_t bn);
/* Get a pointer to an n limb area, for read-only operation. n must be
greater or equal to the current size, and the mpz is zero-padded if
const char *r, const char *s)
{
struct dsa_signature ref;
+ mpz_t t;
mpz_t z;
mpz_t k;
mp_limb_t *rp = xalloc_limbs (ecc->p.size);
mpz_set_str (ref.r, r, 16);
mpz_set_str (ref.s, s, 16);
- if (mpz_limbs_cmp (ref.r, rp, ecc->p.size) != 0
- || mpz_limbs_cmp (ref.s, sp, ecc->p.size) != 0)
+ if (mpz_cmp (ref.r, mpz_roinit_n (t, rp, ecc->p.size)) != 0
+ || mpz_cmp (ref.s, mpz_roinit_n (t, sp, ecc->p.size)) != 0)
{
fprintf (stderr, "_ecdsa_sign failed, bit_size = %u\n", ecc->p.bit_size);
fprintf (stderr, "r = ");
const char *r, const char *s)
{
struct dsa_signature ref;
+ mpz_t t;
mpz_t z;
mpz_t k;
mp_limb_t *rp = xalloc_limbs (ecc->p.size);
mpz_set_str (ref.r, r, 16);
mpz_set_str (ref.s, s, 16);
- if (mpz_limbs_cmp (ref.r, rp, ecc->p.size) != 0
- || mpz_limbs_cmp (ref.s, sp, ecc->p.size) != 0)
+ if (mpz_cmp (ref.r, mpz_roinit_n (t, rp, ecc->p.size)) != 0
+ || mpz_cmp (ref.s, mpz_roinit_n (t, sp, ecc->p.size)) != 0)
{
fprintf (stderr, "_gostdsa_sign failed, bit_size = %u\n", ecc->p.bit_size);
fprintf (stderr, "r = ");
static int
test_mpn (const char *ref, const mp_limb_t *xp, mp_size_t n)
{
- mpz_t r;
+ mpz_t r, x;
int res;
mpz_init_set_str (r, ref, 16);
- while (n > 0 && xp[n-1] == 0)
- n--;
- res = (mpz_limbs_cmp (r, xp, n) == 0);
+ res = (mpz_cmp (r, mpz_roinit_n (x, xp, n)) == 0);
mpz_clear (r);
return res;
}