diff options
author | Christian Grothoff <christian@grothoff.org> | 2013-04-16 11:32:49 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2013-04-16 11:32:49 +0000 |
commit | 51e475cdc337a5d11bd3d552159243aa68dfe332 (patch) | |
tree | d3f19afd8b87294223619d30c3319d4490c9c24b /src/fs | |
parent | bfedb2299a323eb0a5ae39fba56b413e11de4d47 (diff) | |
download | gnunet-51e475cdc337a5d11bd3d552159243aa68dfe332.tar.gz gnunet-51e475cdc337a5d11bd3d552159243aa68dfe332.zip |
-fix
Diffstat (limited to 'src/fs')
-rw-r--r-- | src/fs/fs_publish_ksk.c | 35 | ||||
-rw-r--r-- | src/fs/fs_search.c | 9 | ||||
-rw-r--r-- | src/fs/plugin_block_fs.c | 4 |
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; |