aboutsummaryrefslogtreecommitdiff
path: root/src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2015-09-05 19:32:50 +0000
committerChristian Grothoff <christian@grothoff.org>2015-09-05 19:32:50 +0000
commitba292e84786ed42902a56cd03037ba7064b194fe (patch)
treea6d0e5639c26a2ea337e02692356a5e5f6db2855 /src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c
parent9bf064c70c54f78dc605bc247ac24d64863ca4f1 (diff)
downloadgnunet-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.c20
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,