[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r34471 - gnunet/src/scalarproduct
From: |
gnunet |
Subject: |
[GNUnet-SVN] r34471 - gnunet/src/scalarproduct |
Date: |
Wed, 3 Dec 2014 16:57:46 +0100 |
Author: grothoff
Date: 2014-12-03 16:57:46 +0100 (Wed, 03 Dec 2014)
New Revision: 34471
Modified:
gnunet/src/scalarproduct/gnunet-service-scalarproduct.c
Log:
allocate r and r_prime MPIs before use
Modified: gnunet/src/scalarproduct/gnunet-service-scalarproduct.c
===================================================================
--- gnunet/src/scalarproduct/gnunet-service-scalarproduct.c 2014-12-03
15:47:36 UTC (rev 34470)
+++ gnunet/src/scalarproduct/gnunet-service-scalarproduct.c 2014-12-03
15:57:46 UTC (rev 34471)
@@ -352,7 +352,8 @@
uint32_t total;
/**
- * how many elements actually are used for the scalar product
+ * how many elements actually are used for the scalar product.
+ * Size of the arrays in @e r and @e r_prime.
*/
uint32_t used_element_count;
@@ -497,6 +498,7 @@
free_session_variables (struct ServiceSession *s)
{
struct SortedValue *e;
+
while (NULL != (e = s->a_head))
{
GNUNET_free (e->elem);
@@ -949,8 +951,8 @@
struct ServiceSession * s = cls;
struct ServiceResponseMessage *msg;
uint32_t msg_length = 0;
- struct GNUNET_CRYPTO_PaillierCiphertext * payload;
- int i;
+ struct GNUNET_CRYPTO_PaillierCiphertext *payload;
+ unsigned int i;
msg_length = sizeof (struct ServiceResponseMessage)
+ 2 * sizeof (struct GNUNET_CRYPTO_PaillierCiphertext); // s, stick
@@ -1019,7 +1021,7 @@
s->response->client_notification_task =
GNUNET_SCHEDULER_add_now (&prepare_client_end_notification,
s->response);
- free_session_variables(s);
+ free_session_variables (s);
GNUNET_free(s);
return;
}
@@ -1082,12 +1084,11 @@
svalue = (int32_t) GNUNET_CRYPTO_random_u32 (GNUNET_CRYPTO_QUALITY_WEAK,
UINT32_MAX);
-
// long to gcry_mpi_t
if (svalue < 0)
gcry_mpi_sub_ui (rand[i],
rand[i],
- -svalue);
+ - svalue);
else
rand[i] = gcry_mpi_set_ui (rand[i], svalue);
}
@@ -1116,7 +1117,8 @@
}
// Calculate Kq = E(S + a_qi) (+) E(S - r_qi)
- for (i = 0; i < count; i++) {
+ for (i = 0; i < count; i++)
+ {
// E(S - r_qi)
gcry_mpi_sub (tmp, my_offset, rand[q[i]]);
GNUNET_assert (2 == GNUNET_CRYPTO_paillier_encrypt
(&session->remote_pubkey,
@@ -2026,12 +2028,14 @@
// the result is E((S + a_pi) + (S -b_pi-r_pi)) and E(S + a_qi + S - r_qi)
for (i = 0; i < count; i++)
{
+ r[i] = gcry_mpi_new (0);
GNUNET_CRYPTO_paillier_decrypt (&my_privkey,
&my_pubkey,
&session->r[i],
r[i]);
gcry_mpi_sub (r[i], r[i], my_offset);
gcry_mpi_sub (r[i], r[i], my_offset);
+ r_prime[i] = gcry_mpi_new (0);
GNUNET_CRYPTO_paillier_decrypt (&my_privkey,
&my_pubkey,
&session->r_prime[i],
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r34471 - gnunet/src/scalarproduct,
gnunet <=