aboutsummaryrefslogtreecommitdiff
path: root/src/fs
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2013-04-16 11:32:49 +0000
committerChristian Grothoff <christian@grothoff.org>2013-04-16 11:32:49 +0000
commit51e475cdc337a5d11bd3d552159243aa68dfe332 (patch)
treed3f19afd8b87294223619d30c3319d4490c9c24b /src/fs
parentbfedb2299a323eb0a5ae39fba56b413e11de4d47 (diff)
downloadgnunet-51e475cdc337a5d11bd3d552159243aa68dfe332.tar.gz
gnunet-51e475cdc337a5d11bd3d552159243aa68dfe332.zip
-fix
Diffstat (limited to 'src/fs')
-rw-r--r--src/fs/fs_publish_ksk.c35
-rw-r--r--src/fs/fs_search.c9
-rw-r--r--src/fs/plugin_block_fs.c4
3 files changed, 24 insertions, 24 deletions
diff --git a/src/fs/fs_publish_ksk.c b/src/fs/fs_publish_ksk.c
index 93eee7d72..3b0f1d4fb 100644
--- a/src/fs/fs_publish_ksk.c
+++ b/src/fs/fs_publish_ksk.c
@@ -174,6 +174,7 @@ publish_ksk_cont (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
174 struct GNUNET_CRYPTO_AesInitializationVector iv; 174 struct GNUNET_CRYPTO_AesInitializationVector iv;
175 struct GNUNET_FS_PseudonymHandle *ph; 175 struct GNUNET_FS_PseudonymHandle *ph;
176 struct GNUNET_FS_PseudonymIdentifier pseudonym; 176 struct GNUNET_FS_PseudonymIdentifier pseudonym;
177 struct UBlock *ub_dst;
177 178
178 pkc->ksk_task = GNUNET_SCHEDULER_NO_TASK; 179 pkc->ksk_task = GNUNET_SCHEDULER_NO_TASK;
179 if ((pkc->i == pkc->ksk_uri->data.ksk.keywordCount) || (NULL == pkc->dsh)) 180 if ((pkc->i == pkc->ksk_uri->data.ksk.keywordCount) || (NULL == pkc->dsh))
@@ -194,32 +195,35 @@ publish_ksk_cont (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
194 * mandatory or not -- ignore for hashing */ 195 * mandatory or not -- ignore for hashing */
195 GNUNET_CRYPTO_hash (&keyword[1], strlen (&keyword[1]), &key); 196 GNUNET_CRYPTO_hash (&keyword[1], strlen (&keyword[1]), &key);
196 GNUNET_CRYPTO_hash_to_aes_key (&key, &skey, &iv); 197 GNUNET_CRYPTO_hash_to_aes_key (&key, &skey, &iv);
198 ub_dst = pkc->cpy;
197 GNUNET_CRYPTO_aes_encrypt (&pkc->ub[1], 199 GNUNET_CRYPTO_aes_encrypt (&pkc->ub[1],
198 1 + pkc->slen + pkc->mdsize, 200 1 + pkc->slen + pkc->mdsize,
199 &skey, &iv, 201 &skey, &iv,
200 &pkc->cpy[1]); 202 &ub_dst[1]);
201 ph = GNUNET_FS_pseudonym_get_anonymous_pseudonym_handle (); 203 ph = GNUNET_FS_pseudonym_get_anonymous_pseudonym_handle ();
202 GNUNET_CRYPTO_hash (&key, sizeof (key), &signing_key); 204 GNUNET_CRYPTO_hash (&key, sizeof (key), &signing_key);
203 pkc->cpy->purpose.size = htonl (1 + pkc->slen + pkc->mdsize + sizeof (struct UBlock) 205 ub_dst->purpose.size = htonl (1 + pkc->slen + pkc->mdsize + sizeof (struct UBlock)
204 - sizeof (struct GNUNET_FS_PseudonymSignature)); 206 - sizeof (struct GNUNET_FS_PseudonymSignature));
205 pkc->cpy->purpose.purpose = htonl (GNUNET_SIGNATURE_PURPOSE_FS_UBLOCK); 207 ub_dst->purpose.purpose = htonl (GNUNET_SIGNATURE_PURPOSE_FS_UBLOCK);
206 GNUNET_FS_pseudonym_sign (ph, 208
207 &pkc->cpy->purpose,
208 &seed,
209 &signing_key,
210 &pkc->cpy->signature);
211 GNUNET_FS_pseudonym_get_identifier (ph, &pseudonym); 209 GNUNET_FS_pseudonym_get_identifier (ph, &pseudonym);
212 GNUNET_FS_pseudonym_derive_verification_key (&pseudonym, 210 GNUNET_FS_pseudonym_derive_verification_key (&pseudonym,
213 &signing_key, 211 &signing_key,
214 &pkc->cpy->verification_key); 212 &ub_dst->verification_key);
215 GNUNET_CRYPTO_hash (&pkc->cpy->verification_key, 213 GNUNET_FS_pseudonym_sign (ph,
216 sizeof (pkc->cpy->verification_key), 214 &ub_dst->purpose,
215 &seed,
216 &signing_key,
217 &ub_dst->signature);
218
219 GNUNET_CRYPTO_hash (&ub_dst->verification_key,
220 sizeof (ub_dst->verification_key),
217 &query); 221 &query);
218 GNUNET_FS_pseudonym_destroy (ph); 222 GNUNET_FS_pseudonym_destroy (ph);
219 pkc->qre = 223 pkc->qre =
220 GNUNET_DATASTORE_put (pkc->dsh, 0, &query, 224 GNUNET_DATASTORE_put (pkc->dsh, 0, &query,
221 1 + pkc->slen + pkc->mdsize + sizeof (struct UBlock), 225 1 + pkc->slen + pkc->mdsize + sizeof (struct UBlock),
222 pkc->cpy, GNUNET_BLOCK_TYPE_FS_UBLOCK, 226 ub_dst, GNUNET_BLOCK_TYPE_FS_UBLOCK,
223 pkc->bo.content_priority, pkc->bo.anonymity_level, 227 pkc->bo.content_priority, pkc->bo.anonymity_level,
224 pkc->bo.replication_level, pkc->bo.expiration_time, 228 pkc->bo.replication_level, pkc->bo.expiration_time,
225 -2, 1, GNUNET_CONSTANTS_SERVICE_TIMEOUT, 229 -2, 1, GNUNET_CONSTANTS_SERVICE_TIMEOUT,
@@ -308,12 +312,7 @@ GNUNET_FS_publish_ksk (struct GNUNET_FS_Handle *h,
308 return NULL; 312 return NULL;
309 } 313 }
310 size = sizeof (struct UBlock) + pkc->slen + pkc->mdsize + 1; 314 size = sizeof (struct UBlock) + pkc->slen + pkc->mdsize + 1;
311
312 pkc->cpy = GNUNET_malloc (size); 315 pkc->cpy = GNUNET_malloc (size);
313 pkc->cpy->purpose.size =
314 htonl (sizeof (struct GNUNET_FS_PseudonymSignaturePurpose) +
315 pkc->mdsize + pkc->slen + 1);
316 pkc->cpy->purpose.purpose = htonl (GNUNET_SIGNATURE_PURPOSE_FS_UBLOCK);
317 pkc->ksk_uri = GNUNET_FS_uri_dup (ksk_uri); 316 pkc->ksk_uri = GNUNET_FS_uri_dup (ksk_uri);
318 pkc->ksk_task = GNUNET_SCHEDULER_add_now (&publish_ksk_cont, pkc); 317 pkc->ksk_task = GNUNET_SCHEDULER_add_now (&publish_ksk_cont, pkc);
319 return pkc; 318 return pkc;
diff --git a/src/fs/fs_search.c b/src/fs/fs_search.c
index 25b34d99c..016201e0f 100644
--- a/src/fs/fs_search.c
+++ b/src/fs/fs_search.c
@@ -916,6 +916,7 @@ build_result_set (void *cls, const struct GNUNET_HashCode * key, void *value)
916 return GNUNET_SYSERR; 916 return GNUNET_SYSERR;
917 mbc->sc->search_request_map_offset++; 917 mbc->sc->search_request_map_offset++;
918 mbc->xoff[--mbc->put_cnt] = *key; 918 mbc->xoff[--mbc->put_cnt] = *key;
919
919 return GNUNET_OK; 920 return GNUNET_OK;
920} 921}
921 922
@@ -1040,8 +1041,8 @@ transmit_search_request (void *cls, size_t size, void *buf)
1040 GNUNET_CRYPTO_hash_xor (&id_hash, &ns_hash, &key); 1041 GNUNET_CRYPTO_hash_xor (&id_hash, &ns_hash, &key);
1041 GNUNET_CRYPTO_hash (&key, sizeof (struct GNUNET_HashCode), &signing_key); 1042 GNUNET_CRYPTO_hash (&key, sizeof (struct GNUNET_HashCode), &signing_key);
1042 GNUNET_FS_pseudonym_derive_verification_key (&sc->uri->data.sks.ns, 1043 GNUNET_FS_pseudonym_derive_verification_key (&sc->uri->data.sks.ns,
1043 &signing_key, 1044 &signing_key,
1044 &verification_key); 1045 &verification_key);
1045 GNUNET_CRYPTO_hash (&verification_key, 1046 GNUNET_CRYPTO_hash (&verification_key,
1046 sizeof (verification_key), 1047 sizeof (verification_key),
1047 &sm->query); 1048 &sm->query);
@@ -1228,8 +1229,8 @@ GNUNET_FS_search_start_searching_ (struct GNUNET_FS_SearchContext *sc)
1228 GNUNET_CRYPTO_hash (keyword, strlen (keyword), &sc->requests[i].ukey); 1229 GNUNET_CRYPTO_hash (keyword, strlen (keyword), &sc->requests[i].ukey);
1229 GNUNET_CRYPTO_hash (&sc->requests[i].ukey, sizeof (struct GNUNET_HashCode), &signing_key); 1230 GNUNET_CRYPTO_hash (&sc->requests[i].ukey, sizeof (struct GNUNET_HashCode), &signing_key);
1230 GNUNET_FS_pseudonym_derive_verification_key (&anon, 1231 GNUNET_FS_pseudonym_derive_verification_key (&anon,
1231 &signing_key, 1232 &signing_key,
1232 &verification_key); 1233 &verification_key);
1233 GNUNET_CRYPTO_hash (&verification_key, sizeof (struct GNUNET_FS_PseudonymIdentifier), 1234 GNUNET_CRYPTO_hash (&verification_key, sizeof (struct GNUNET_FS_PseudonymIdentifier),
1234 &sc->requests[i].uquery); 1235 &sc->requests[i].uquery);
1235 sc->requests[i].mandatory = (sc->uri->data.ksk.keywords[i][0] == '+'); 1236 sc->requests[i].mandatory = (sc->uri->data.ksk.keywords[i][0] == '+');
diff --git a/src/fs/plugin_block_fs.c b/src/fs/plugin_block_fs.c
index f41e0cd44..453338614 100644
--- a/src/fs/plugin_block_fs.c
+++ b/src/fs/plugin_block_fs.c
@@ -112,8 +112,8 @@ block_plugin_fs_evaluate (void *cls, enum GNUNET_BLOCK_Type type,
112 } 112 }
113 if (GNUNET_OK != 113 if (GNUNET_OK !=
114 GNUNET_FS_pseudonym_verify (&ub->purpose, 114 GNUNET_FS_pseudonym_verify (&ub->purpose,
115 &ub->signature, 115 &ub->signature,
116 &ub->verification_key)) 116 &ub->verification_key))
117 { 117 {
118 GNUNET_break_op (0); 118 GNUNET_break_op (0);
119 return GNUNET_BLOCK_EVALUATION_RESULT_INVALID; 119 return GNUNET_BLOCK_EVALUATION_RESULT_INVALID;