aboutsummaryrefslogtreecommitdiff
path: root/src/secretsharing/gnunet-service-secretsharing.c
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2014-01-21 10:08:13 +0000
committerFlorian Dold <florian.dold@gmail.com>2014-01-21 10:08:13 +0000
commit91157c746610b0e00d2f61d8a2dd191b5d5df73f (patch)
tree0f12f3325ac55e0df239651f6c7438d65f70c3b5 /src/secretsharing/gnunet-service-secretsharing.c
parentdcb7f90287cfdeb6d21d70715e4817a980a17c85 (diff)
downloadgnunet-91157c746610b0e00d2f61d8a2dd191b5d5df73f.tar.gz
gnunet-91157c746610b0e00d2f61d8a2dd191b5d5df73f.zip
use paillier private key container in secretsharing
Diffstat (limited to 'src/secretsharing/gnunet-service-secretsharing.c')
-rw-r--r--src/secretsharing/gnunet-service-secretsharing.c25
1 files changed, 4 insertions, 21 deletions
diff --git a/src/secretsharing/gnunet-service-secretsharing.c b/src/secretsharing/gnunet-service-secretsharing.c
index ba63c32cd..e3b033efb 100644
--- a/src/secretsharing/gnunet-service-secretsharing.c
+++ b/src/secretsharing/gnunet-service-secretsharing.c
@@ -184,14 +184,9 @@ struct KeygenSession
184 struct GNUNET_HashCode session_id; 184 struct GNUNET_HashCode session_id;
185 185
186 /** 186 /**
187 * lambda-component of our peer's paillier private key. 187 * Paillier private key of our peer.
188 */ 188 */
189 gcry_mpi_t paillier_lambda; 189 struct GNUNET_CRYPTO_PaillierPrivateKey paillier_private_key;
190
191 /**
192 * mu-component of our peer's paillier private key.
193 */
194 gcry_mpi_t paillier_mu;
195 190
196 /** 191 /**
197 * When would we like the key to be established? 192 * When would we like the key to be established?
@@ -979,16 +974,13 @@ keygen_round2_new_element (void *cls,
979 974
980 // FIXME: remove this ugly block once we changed all MPIs to containers 975 // FIXME: remove this ugly block once we changed all MPIs to containers
981 { 976 {
982 struct GNUNET_CRYPTO_PaillierPrivateKey private_key;
983 struct GNUNET_CRYPTO_PaillierPlaintext plaintext; 977 struct GNUNET_CRYPTO_PaillierPlaintext plaintext;
984 struct GNUNET_CRYPTO_PaillierCiphertext ciphertext; 978 struct GNUNET_CRYPTO_PaillierCiphertext ciphertext;
985 979
986 GNUNET_CRYPTO_mpi_print_unsigned (&private_key.lambda, sizeof private_key.lambda, ks->paillier_lambda);
987 GNUNET_CRYPTO_mpi_print_unsigned (&private_key.mu, sizeof private_key.mu, ks->paillier_mu);
988 GNUNET_CRYPTO_mpi_print_unsigned (&ciphertext, sizeof ciphertext, c); 980 GNUNET_CRYPTO_mpi_print_unsigned (&ciphertext, sizeof ciphertext, c);
989 981
990 982
991 GNUNET_CRYPTO_paillier_decrypt (&private_key, &ks->info[ks->local_peer_idx].paillier_public_key, 983 GNUNET_CRYPTO_paillier_decrypt (&ks->paillier_private_key, &ks->info[ks->local_peer_idx].paillier_public_key,
992 &ciphertext, &plaintext); 984 &ciphertext, &plaintext);
993 GNUNET_CRYPTO_mpi_scan_unsigned (&info->decrypted_preshare, &plaintext, 985 GNUNET_CRYPTO_mpi_scan_unsigned (&info->decrypted_preshare, &plaintext,
994 sizeof plaintext); 986 sizeof plaintext);
@@ -1101,7 +1093,6 @@ static void handle_client_keygen (void *cls,
1101 (const struct GNUNET_SECRETSHARING_CreateMessage *) message; 1093 (const struct GNUNET_SECRETSHARING_CreateMessage *) message;
1102 struct KeygenSession *ks; 1094 struct KeygenSession *ks;
1103 unsigned int i; 1095 unsigned int i;
1104 struct GNUNET_CRYPTO_PaillierPrivateKey private_key;
1105 1096
1106 GNUNET_log (GNUNET_ERROR_TYPE_INFO, "client requested key generation\n"); 1097 GNUNET_log (GNUNET_ERROR_TYPE_INFO, "client requested key generation\n");
1107 1098
@@ -1131,16 +1122,8 @@ static void handle_client_keygen (void *cls,
1131 for (i = 0; i < ks->num_peers; i++) 1122 for (i = 0; i < ks->num_peers; i++)
1132 ks->info[i].peer = ks->peers[i]; 1123 ks->info[i].peer = ks->peers[i];
1133 1124
1134 GNUNET_assert (0 != (ks->paillier_lambda = mpi_new (0)));
1135 GNUNET_assert (0 != (ks->paillier_mu = mpi_new (0)));
1136
1137 GNUNET_CRYPTO_paillier_create (&ks->info[ks->local_peer_idx].paillier_public_key, 1125 GNUNET_CRYPTO_paillier_create (&ks->info[ks->local_peer_idx].paillier_public_key,
1138 &private_key); 1126 &ks->paillier_private_key);
1139
1140 GNUNET_CRYPTO_mpi_scan_unsigned (&ks->paillier_lambda,
1141 &private_key.lambda, sizeof private_key.lambda);
1142 GNUNET_CRYPTO_mpi_scan_unsigned (&ks->paillier_mu,
1143 &private_key.mu, sizeof private_key.mu);
1144 1127
1145 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "P%u: Generated paillier key pair\n", ks->local_peer_idx); 1128 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "P%u: Generated paillier key pair\n", ks->local_peer_idx);
1146 1129