From ba292e84786ed42902a56cd03037ba7064b194fe Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Sat, 5 Sep 2015 19:32:50 +0000 Subject: -fixing ECC calculation --- .../gnunet-service-scalarproduct-ecc_alice.c | 20 ++++++++++++++------ src/scalarproduct/test_ecc_scalarproduct.c | 13 ++++++------- 2 files changed, 20 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c b/src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c index 800b1329f..4b17bafee 100644 --- 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 index 3d81dbd31..ce6338beb 100644 --- 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