gnunet-svn
[Top][All Lists]
Advanced

[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],




reply via email to

[Prev in Thread] Current Thread [Next in Thread]