gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r33213 - gnunet/src/scalarproduct


From: gnunet
Subject: [GNUnet-SVN] r33213 - gnunet/src/scalarproduct
Date: Wed, 7 May 2014 19:03:09 +0200

Author: cfuchs
Date: 2014-05-07 19:03:09 +0200 (Wed, 07 May 2014)
New Revision: 33213

Modified:
   gnunet/src/scalarproduct/gnunet-service-scalarproduct.c
Log:
- session->remote_pubkey is not kept independently from the service structure

Modified: gnunet/src/scalarproduct/gnunet-service-scalarproduct.c
===================================================================
--- gnunet/src/scalarproduct/gnunet-service-scalarproduct.c     2014-05-07 
16:21:06 UTC (rev 33212)
+++ gnunet/src/scalarproduct/gnunet-service-scalarproduct.c     2014-05-07 
17:03:09 UTC (rev 33213)
@@ -56,9 +56,24 @@
  */
 struct SortedValue
 {
+  /**
+   * Sorted Values are kept in a DLL
+   */
   struct SortedValue * next;
+  
+  /**
+   * Sorted Values are kept in a DLL
+   */
   struct SortedValue * prev;
+  
+  /**
+   * The element's id+integer-value
+   */
   struct GNUNET_SCALARPRODUCT_Element * elem;
+  
+  /**
+   * the element's value converted to MPI
+   */
   gcry_mpi_t val;
 };
 
@@ -96,7 +111,7 @@
    * Alice or Bob's peerID
    */
   struct GNUNET_PeerIdentity peer;
-
+  
   /**
    * the client this request is related to
    */
@@ -152,7 +167,7 @@
   /**
    * Public key of the remote service, only used by bob
    */
-  struct GNUNET_CRYPTO_PaillierPublicKey remote_pubkey;
+  struct GNUNET_CRYPTO_PaillierPublicKey * remote_pubkey;
 
   /**
    * DLL for sorting elements after intersection
@@ -463,6 +478,10 @@
     GNUNET_free (session->e_a);
     session->e_a = NULL;
   }
+  if (session->remote_pubkey){
+    GNUNET_free(session->remote_pubkey);
+    session->remote_pubkey=NULL;
+  }
   if (session->sorted_elements) {
     GNUNET_free (session->sorted_elements);
     session->sorted_elements = NULL;
@@ -914,13 +933,13 @@
     // E(S - r_pi - b_pi)
     gcry_mpi_sub (tmp, my_offset, rand[p[i]]);
     gcry_mpi_sub (tmp, tmp, b[p[i]]);
-    GNUNET_CRYPTO_paillier_encrypt (&session->remote_pubkey,
+    GNUNET_CRYPTO_paillier_encrypt (session->remote_pubkey,
                                     tmp,
                                     2,
                                     &r[i]);
 
     // E(S - r_pi - b_pi) * E(S + a_pi) ==  E(2*S + a - r - b)
-    GNUNET_CRYPTO_paillier_hom_add (&session->remote_pubkey,
+    GNUNET_CRYPTO_paillier_hom_add (session->remote_pubkey,
                                     &r[i],
                                     &a[p[i]],
                                     &r[i]);
@@ -930,13 +949,13 @@
   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,
+    GNUNET_assert (2 == GNUNET_CRYPTO_paillier_encrypt (session->remote_pubkey,
                                                         tmp,
                                                         2,
                                                         &r_prime[i]));
 
     // E(S - r_qi) * E(S + a_qi) == E(2*S + a_qi - r_qi)
-    GNUNET_assert (1 == GNUNET_CRYPTO_paillier_hom_add 
(&session->remote_pubkey,
+    GNUNET_assert (1 == GNUNET_CRYPTO_paillier_hom_add (session->remote_pubkey,
                                                         &r_prime[i],
                                                         &a[q[i]],
                                                         &r_prime[i]));
@@ -944,7 +963,7 @@
 
   // Calculate S' =  E(SUM( r_i^2 ))
   tmp = compute_square_sum (rand, count);
-  GNUNET_CRYPTO_paillier_encrypt (&session->remote_pubkey,
+  GNUNET_CRYPTO_paillier_encrypt (session->remote_pubkey,
                                   tmp,
                                   1,
                                   s_prime);
@@ -953,7 +972,7 @@
   for (i = 0; i < count; i++)
     gcry_mpi_add (rand[i], rand[i], b[i]);
   tmp = compute_square_sum (rand, count);
-  GNUNET_CRYPTO_paillier_encrypt (&session->remote_pubkey,
+  GNUNET_CRYPTO_paillier_encrypt (session->remote_pubkey,
                                   tmp,
                                   1,
                                   s);
@@ -2058,7 +2077,8 @@
   memcpy (&session->session_id, &msg->session_id, sizeof (struct 
GNUNET_HashCode));
 
   // public key
-  memcpy (&session->remote_pubkey, &msg->public_key, sizeof (struct 
GNUNET_CRYPTO_PaillierPublicKey));
+  session->remote_pubkey = GNUNET_new (struct GNUNET_CRYPTO_PaillierPublicKey);
+  memcpy (session->remote_pubkey, &msg->public_key, sizeof (struct 
GNUNET_CRYPTO_PaillierPublicKey));
 
   //check if service queue contains a matching request
   client_session = find_matching_session (from_client_tail,




reply via email to

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