gnunet

Main GNUnet Logic
Log | Files | Refs | Submodules | README | LICENSE

commit ba292e84786ed42902a56cd03037ba7064b194fe
parent 9bf064c70c54f78dc605bc247ac24d64863ca4f1
Author: Christian Grothoff <christian@grothoff.org>
Date:   Sat,  5 Sep 2015 19:32:50 +0000

-fixing ECC calculation

Diffstat:
Msrc/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c | 20++++++++++++++------
Msrc/scalarproduct/test_ecc_scalarproduct.c | 13++++++-------
2 files changed, 20 insertions(+), 13 deletions(-)

diff --git a/src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c b/src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c @@ -469,7 +469,15 @@ compute_scalar_product (struct AliceServiceSession *session, return NULL; } ret = gcry_mpi_new (0); - gcry_mpi_set_ui (ret, ai_bi); + if (ai_bi > 0) + { + gcry_mpi_set_ui (ret, ai_bi); + } + else + { + gcry_mpi_set_ui (ret, - ai_bi); + gcry_mpi_neg (ret, ret); + } return ret; } @@ -663,14 +671,14 @@ send_alices_cryptodata_message (struct AliceServiceSession *s) g_i = GNUNET_CRYPTO_ecc_dexp_mpi (edc, r_i); /* r_ia = r_i * a */ - gcry_mpi_mul (r_i, - my_privkey, - r_ia); + gcry_mpi_mul (r_ia, + r_i, + my_privkey); gcry_mpi_release (r_i); /* r_ia_ai = r_ia + a_i */ gcry_mpi_add (r_ia_ai, - s->sorted_elements[i].value, - r_ia); + r_ia, + s->sorted_elements[i].value); h_i = GNUNET_CRYPTO_ecc_dexp_mpi (edc, r_ia_ai); GNUNET_CRYPTO_ecc_point_to_bin (edc, diff --git a/src/scalarproduct/test_ecc_scalarproduct.c b/src/scalarproduct/test_ecc_scalarproduct.c @@ -50,6 +50,8 @@ test_sp (const unsigned int *avec, gcry_mpi_t a_inv; gcry_mpi_t ri; gcry_mpi_t val; + gcry_mpi_t ria; + gcry_mpi_t tmp; gcry_mpi_point_t *g; gcry_mpi_point_t *h; gcry_mpi_point_t pg; @@ -70,29 +72,26 @@ test_sp (const unsigned int *avec, gcry_mpi_point_t); h = GNUNET_new_array (len, gcry_mpi_point_t); + ria = gcry_mpi_new (0); + tmp = gcry_mpi_new (0); for (i=0;i<len;i++) { - gcry_mpi_t tmp; - gcry_mpi_t ria; - ri = GNUNET_CRYPTO_ecc_random_mod_n (edc); g[i] = GNUNET_CRYPTO_ecc_dexp_mpi (edc, ri); /* ria = ri * a */ - ria = gcry_mpi_new (0); gcry_mpi_mul (ria, ri, a); /* tmp = ria + avec[i] */ - tmp = gcry_mpi_new (0); gcry_mpi_add_ui (tmp, ria, avec[i]); - gcry_mpi_release (ria); h[i] = GNUNET_CRYPTO_ecc_dexp_mpi (edc, tmp); - gcry_mpi_release (tmp); } + gcry_mpi_release (ria); + gcry_mpi_release (tmp); /* Bob */ val = gcry_mpi_new (0);