gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r31979 - gnunet/src/secretsharing


From: gnunet
Subject: [GNUnet-SVN] r31979 - gnunet/src/secretsharing
Date: Tue, 21 Jan 2014 11:05:56 +0100

Author: dold
Date: 2014-01-21 11:05:56 +0100 (Tue, 21 Jan 2014)
New Revision: 31979

Modified:
   gnunet/src/secretsharing/gnunet-service-secretsharing.c
Log:
use paillier public key container in secretsharing

Modified: gnunet/src/secretsharing/gnunet-service-secretsharing.c
===================================================================
--- gnunet/src/secretsharing/gnunet-service-secretsharing.c     2014-01-21 
10:01:07 UTC (rev 31978)
+++ gnunet/src/secretsharing/gnunet-service-secretsharing.c     2014-01-21 
10:05:56 UTC (rev 31979)
@@ -50,7 +50,7 @@
    * The peer's paillier public key.
    * Freshly generated for each keygen session.
    */
-  gcry_mpi_t paillier_n;
+  struct GNUNET_CRYPTO_PaillierPublicKey paillier_public_key;
 
   /**
    * The peer's commitment to his presecret.
@@ -678,7 +678,8 @@
     GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "keygen commit data with invalid 
signature in consensus\n");
     return;
   }
-  GNUNET_CRYPTO_mpi_scan_unsigned (&info->paillier_n, &d->pubkey.n, 
GNUNET_CRYPTO_PAILLIER_BITS / 8);
+  info->paillier_public_key = d->pubkey;
+  // FIXME: does not make any sense / is wrong
   GNUNET_CRYPTO_mpi_scan_unsigned (&info->presecret_commitment, &d->pubkey.n, 
GNUNET_CRYPTO_PAILLIER_BITS / 8);
   info->round1_valid = GNUNET_YES;
 }
@@ -862,14 +863,12 @@
     if (GNUNET_YES == ks->info[i].round1_valid)
     {
       struct GNUNET_CRYPTO_PaillierPlaintext plaintext;
-      struct GNUNET_CRYPTO_PaillierPublicKey public_key;
       gcry_mpi_set_ui (idx, i + 1);
       // evaluate the polynomial
       horner_eval (v, ks->presecret_polynomial, ks->threshold, idx, elgamal_q);
       GNUNET_CRYPTO_mpi_print_unsigned (&plaintext, sizeof plaintext, v);
-      GNUNET_CRYPTO_mpi_print_unsigned (&public_key, sizeof public_key, 
ks->info[i].paillier_n);
       // encrypt the result
-      GNUNET_CRYPTO_paillier_encrypt (&public_key, &plaintext, ciphertext);
+      GNUNET_CRYPTO_paillier_encrypt (&ks->info[i].paillier_public_key, 
&plaintext, ciphertext);
     }
     pos += sizeof *ciphertext;
   }
@@ -980,18 +979,16 @@
 
   // FIXME: remove this ugly block once we changed all MPIs to containers
   {
-    struct GNUNET_CRYPTO_PaillierPublicKey public_key;
     struct GNUNET_CRYPTO_PaillierPrivateKey private_key;
     struct GNUNET_CRYPTO_PaillierPlaintext plaintext;
     struct GNUNET_CRYPTO_PaillierCiphertext ciphertext;
 
-    GNUNET_CRYPTO_mpi_print_unsigned (&public_key, sizeof public_key, 
ks->info[ks->local_peer_idx].paillier_n);
     GNUNET_CRYPTO_mpi_print_unsigned (&private_key.lambda, sizeof 
private_key.lambda, ks->paillier_lambda);
     GNUNET_CRYPTO_mpi_print_unsigned (&private_key.mu, sizeof private_key.mu, 
ks->paillier_mu);
     GNUNET_CRYPTO_mpi_print_unsigned (&ciphertext, sizeof ciphertext, c);
 
 
-    GNUNET_CRYPTO_paillier_decrypt (&private_key, &public_key,
+    GNUNET_CRYPTO_paillier_decrypt (&private_key, 
&ks->info[ks->local_peer_idx].paillier_public_key,
                                     &ciphertext, &plaintext);
     GNUNET_CRYPTO_mpi_scan_unsigned (&info->decrypted_preshare, &plaintext,
                                      sizeof plaintext);
@@ -1074,8 +1071,7 @@
 
   GNUNET_CRYPTO_hash (v_data, GNUNET_SECRETSHARING_ELGAMAL_BITS / 8, 
&d->commitment);
 
-  GNUNET_CRYPTO_mpi_print_unsigned (d->pubkey.n, GNUNET_CRYPTO_PAILLIER_BITS / 
8,
-                                    ks->info[ks->local_peer_idx].paillier_n);
+  d->pubkey = ks->info[ks->local_peer_idx].paillier_public_key;
 
   d->purpose.size = htonl ((sizeof *d) - offsetof (struct 
GNUNET_SECRETSHARING_KeygenCommitData, purpose));
   d->purpose.purpose = htonl (GNUNET_SIGNATURE_PURPOSE_SECRETSHARING_DKG1);
@@ -1106,7 +1102,6 @@
   struct KeygenSession *ks;
   unsigned int i;
   struct GNUNET_CRYPTO_PaillierPrivateKey private_key;
-  struct GNUNET_CRYPTO_PaillierPublicKey public_key;
 
   GNUNET_log (GNUNET_ERROR_TYPE_INFO, "client requested key generation\n");
 
@@ -1136,14 +1131,12 @@
   for (i = 0; i < ks->num_peers; i++)
     ks->info[i].peer = ks->peers[i];
 
-  GNUNET_assert (0 != (ks->info[ks->local_peer_idx].paillier_n = mpi_new (0)));
   GNUNET_assert (0 != (ks->paillier_lambda = mpi_new (0)));
   GNUNET_assert (0 != (ks->paillier_mu = mpi_new (0)));
 
-  GNUNET_CRYPTO_paillier_create (&public_key, &private_key);
+  GNUNET_CRYPTO_paillier_create 
(&ks->info[ks->local_peer_idx].paillier_public_key,
+                                 &private_key);
 
-  GNUNET_CRYPTO_mpi_scan_unsigned (&ks->info[ks->local_peer_idx].paillier_n,
-                                   &public_key, sizeof public_key);
   GNUNET_CRYPTO_mpi_scan_unsigned (&ks->paillier_lambda,
                                    &private_key.lambda, sizeof 
private_key.lambda);
   GNUNET_CRYPTO_mpi_scan_unsigned (&ks->paillier_mu,




reply via email to

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