int (*bigint_powm) (bigint_t w, const bigint_t b,
const bigint_t e, const bigint_t m);
/* w = a + b mod m */
- bigint_t(*bigint_addm) (bigint_t w, const bigint_t a,
+ int (*bigint_addm) (bigint_t w, const bigint_t a,
const bigint_t b, const bigint_t m);
/* w = a - b mod m */
- bigint_t(*bigint_subm) (bigint_t w, const bigint_t a,
+ int (*bigint_subm) (bigint_t w, const bigint_t a,
const bigint_t b, const bigint_t m);
/* w = a * b mod m */
- bigint_t(*bigint_mulm) (bigint_t w, const bigint_t a,
+ int (*bigint_mulm) (bigint_t w, const bigint_t a,
const bigint_t b, const bigint_t m);
- /* w = a + b */ bigint_t(*bigint_add) (bigint_t w,
+ /* w = a + b */ int (*bigint_add) (bigint_t w,
const bigint_t a,
const bigint_t b);
- /* w = a - b */ bigint_t(*bigint_sub) (bigint_t w,
+ /* w = a - b */ int (*bigint_sub) (bigint_t w,
const bigint_t a,
const bigint_t b);
/* w = a * b */
- bigint_t(*bigint_mul) (bigint_t w, const bigint_t a,
+ int (*bigint_mul) (bigint_t w, const bigint_t a,
const bigint_t b);
/* w = a + b */
int (*bigint_add_ui) (bigint_t w, const bigint_t a,
goto error;
}
- _gnutls_mpi_mulm(tmpV, k, v, n);
-
+ ret = _gnutls_mpi_mulm(tmpV, k, v, n);
+ if (ret < 0) {
+ gnutls_assert();
+ goto error;
+ }
+
ret = _gnutls_mpi_powm(tmpB, g, b, n);
- if (ret < 0)
+ if (ret < 0) {
+ gnutls_assert();
goto error;
+ }
- _gnutls_mpi_addm(B, tmpV, tmpB, n);
+ ret = _gnutls_mpi_addm(B, tmpV, tmpB, n);
+ if (ret < 0) {
+ gnutls_assert();
+ goto error;
+ }
_gnutls_mpi_release(&k);
_gnutls_mpi_release(&tmpB);
return NULL;
ret = _gnutls_mpi_powm(tmp1, v, u, n);
- if (ret < 0)
+ if (ret < 0) {
+ gnutls_assert();
goto error;
+ }
+
+ ret = _gnutls_mpi_mulm(tmp2, A, tmp1, n);
+ if (ret < 0) {
+ gnutls_assert();
+ goto error;
+ }
- _gnutls_mpi_mulm(tmp2, A, tmp1, n);
_gnutls_mpi_powm(S, tmp2, b, n);
_gnutls_mpi_release(&tmp1);
goto freeall;
}
- _gnutls_mpi_mulm(tmp3, tmp1, k, n); /* k*g^x mod n */
- _gnutls_mpi_subm(tmp2, B, tmp3, n);
+ ret = _gnutls_mpi_mulm(tmp3, tmp1, k, n); /* k*g^x mod n */
+ if (ret < 0) {
+ gnutls_assert();
+ goto freeall;
+ }
+
+ ret = _gnutls_mpi_subm(tmp2, B, tmp3, n);
+ if (ret < 0) {
+ gnutls_assert();
+ goto freeall;
+ }
+
+ ret = _gnutls_mpi_mul(tmp1, u, x);
+ if (ret < 0) {
+ gnutls_assert();
+ goto freeall;
+ }
+
+ ret = _gnutls_mpi_add(tmp4, a, tmp1);
+ if (ret < 0) {
+ gnutls_assert();
+ goto freeall;
+ }
- _gnutls_mpi_mul(tmp1, u, x);
- _gnutls_mpi_add(tmp4, a, tmp1);
-
ret = _gnutls_mpi_powm(S, tmp2, tmp4, n);
if (ret < 0) {
gnutls_assert();
return 0;
}
-static bigint_t
+static int
wrap_nettle_mpi_addm(bigint_t w, const bigint_t a, const bigint_t b,
const bigint_t m)
{
-int ret;
-
- if (w == NULL) {
- ret = wrap_nettle_mpi_init(&w);
- if (ret < 0)
- return NULL;
- }
-
mpz_add(TOMPZ(w), TOMPZ(b), TOMPZ(a));
mpz_fdiv_r(TOMPZ(w), TOMPZ(w), TOMPZ(m));
- return w;
+ return 0;
}
-static bigint_t
+static int
wrap_nettle_mpi_subm(bigint_t w, const bigint_t a, const bigint_t b,
const bigint_t m)
{
-int ret;
-
- if (w == NULL) {
- ret = wrap_nettle_mpi_init(&w);
- if (ret < 0)
- return NULL;
- }
-
mpz_sub(TOMPZ(w), TOMPZ(a), TOMPZ(b));
mpz_fdiv_r(TOMPZ(w), TOMPZ(w), TOMPZ(m));
- return w;
+ return 0;
}
-static bigint_t
+static int
wrap_nettle_mpi_mulm(bigint_t w, const bigint_t a, const bigint_t b,
const bigint_t m)
{
-int ret;
-
- if (w == NULL) {
- ret = wrap_nettle_mpi_init(&w);
- if (ret < 0)
- return NULL;
- }
-
mpz_mul(TOMPZ(w), TOMPZ(a), TOMPZ(b));
mpz_fdiv_r(TOMPZ(w), TOMPZ(w), TOMPZ(m));
- return w;
+ return 0;
}
-static bigint_t
+static int
wrap_nettle_mpi_add(bigint_t w, const bigint_t a, const bigint_t b)
{
-int ret;
-
- if (w == NULL) {
- ret = wrap_nettle_mpi_init(&w);
- if (ret < 0)
- return NULL;
- }
-
mpz_add(TOMPZ(w), TOMPZ(a), TOMPZ(b));
- return w;
+ return 0;
}
-static bigint_t
+static int
wrap_nettle_mpi_sub(bigint_t w, const bigint_t a, const bigint_t b)
{
-int ret;
-
- if (w == NULL) {
- ret = wrap_nettle_mpi_init(&w);
- if (ret < 0)
- return NULL;
- }
-
mpz_sub(TOMPZ(w), TOMPZ(a), TOMPZ(b));
- return w;
+ return 0;
}
-static bigint_t
+static int
wrap_nettle_mpi_mul(bigint_t w, const bigint_t a, const bigint_t b)
{
-int ret;
-
- if (w == NULL) {
- ret = wrap_nettle_mpi_init(&w);
- if (ret < 0)
- return NULL;
- }
-
mpz_mul(TOMPZ(w), TOMPZ(a), TOMPZ(b));
- return w;
+ return 0;
}
/* q = a / b */
return 0;
}
-static bigint_t
+static int
wrap_nettle_mpi_sub_ui(bigint_t w, const bigint_t a, unsigned long b)
{
mpz_sub_ui(TOMPZ(w), TOMPZ(a), b);
gnutls_assert();
goto cleanup;
}
- _gnutls_mpi_addm(num_ij, num_ij, num_b1, mpi512);
+
+ rc = _gnutls_mpi_addm(num_ij, num_ij, num_b1, mpi512);
+ if (rc < 0) {
+ gnutls_assert();
+ goto cleanup;
+ }
+
n = 64;
#ifndef PKCS12_BROKEN_KEYGEN
m = (_gnutls_mpi_get_nbits(num_ij) + 7) / 8;
if (debug)
gnutls_global_set_log_level(99);
- ret = _gnutls_mpi_init_multi(&n1, &n2, &n3, NULL);
+ ret = _gnutls_mpi_init_multi(&n1, &n2, &n3, &n4, NULL);
if (ret < 0)
fail("mpi_new failed\n");
if (ret < 0)
fail("mpi_set_ui failed\n");
- n4 = _gnutls_mpi_addm(NULL, n1, n3, n2);
- if (n4 == 0)
+ ret = _gnutls_mpi_addm(n4, n1, n3, n2);
+ if (ret < 0)
fail("mpi_set_ui failed\n");
if (_gnutls_mpi_cmp_ui(n4, 0) != 0