diff options
author | Christian Grothoff <christian@grothoff.org> | 2015-09-05 19:32:50 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2015-09-05 19:32:50 +0000 |
commit | ba292e84786ed42902a56cd03037ba7064b194fe (patch) | |
tree | a6d0e5639c26a2ea337e02692356a5e5f6db2855 /src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c | |
parent | 9bf064c70c54f78dc605bc247ac24d64863ca4f1 (diff) | |
download | gnunet-ba292e84786ed42902a56cd03037ba7064b194fe.tar.gz gnunet-ba292e84786ed42902a56cd03037ba7064b194fe.zip |
-fixing ECC calculation
Diffstat (limited to 'src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c')
-rw-r--r-- | src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c | 20 |
1 files changed, 14 insertions, 6 deletions
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, | |||
469 | return NULL; | 469 | return NULL; |
470 | } | 470 | } |
471 | ret = gcry_mpi_new (0); | 471 | ret = gcry_mpi_new (0); |
472 | gcry_mpi_set_ui (ret, ai_bi); | 472 | if (ai_bi > 0) |
473 | { | ||
474 | gcry_mpi_set_ui (ret, ai_bi); | ||
475 | } | ||
476 | else | ||
477 | { | ||
478 | gcry_mpi_set_ui (ret, - ai_bi); | ||
479 | gcry_mpi_neg (ret, ret); | ||
480 | } | ||
473 | return ret; | 481 | return ret; |
474 | } | 482 | } |
475 | 483 | ||
@@ -663,14 +671,14 @@ send_alices_cryptodata_message (struct AliceServiceSession *s) | |||
663 | g_i = GNUNET_CRYPTO_ecc_dexp_mpi (edc, | 671 | g_i = GNUNET_CRYPTO_ecc_dexp_mpi (edc, |
664 | r_i); | 672 | r_i); |
665 | /* r_ia = r_i * a */ | 673 | /* r_ia = r_i * a */ |
666 | gcry_mpi_mul (r_i, | 674 | gcry_mpi_mul (r_ia, |
667 | my_privkey, | 675 | r_i, |
668 | r_ia); | 676 | my_privkey); |
669 | gcry_mpi_release (r_i); | 677 | gcry_mpi_release (r_i); |
670 | /* r_ia_ai = r_ia + a_i */ | 678 | /* r_ia_ai = r_ia + a_i */ |
671 | gcry_mpi_add (r_ia_ai, | 679 | gcry_mpi_add (r_ia_ai, |
672 | s->sorted_elements[i].value, | 680 | r_ia, |
673 | r_ia); | 681 | s->sorted_elements[i].value); |
674 | h_i = GNUNET_CRYPTO_ecc_dexp_mpi (edc, | 682 | h_i = GNUNET_CRYPTO_ecc_dexp_mpi (edc, |
675 | r_ia_ai); | 683 | r_ia_ai); |
676 | GNUNET_CRYPTO_ecc_point_to_bin (edc, | 684 | GNUNET_CRYPTO_ecc_point_to_bin (edc, |