aboutsummaryrefslogtreecommitdiff
path: root/src/credential/gnunet-service-credential.c
diff options
context:
space:
mode:
authorAdnan H <acednan@gmail.com>2016-12-06 10:51:58 +0100
committerAdnan H <acednan@gmail.com>2016-12-06 10:51:58 +0100
commitc0ccc8d723c94c6f9dbde6ed1e0ee6579989750c (patch)
treeb490556919ef7a0082b7ff3f45161726d8bce65b /src/credential/gnunet-service-credential.c
parent38153c76241311666e9aa26f2cec534f62900c72 (diff)
downloadgnunet-c0ccc8d723c94c6f9dbde6ed1e0ee6579989750c.tar.gz
gnunet-c0ccc8d723c94c6f9dbde6ed1e0ee6579989750c.zip
- minor fixes
Diffstat (limited to 'src/credential/gnunet-service-credential.c')
-rw-r--r--src/credential/gnunet-service-credential.c72
1 files changed, 38 insertions, 34 deletions
diff --git a/src/credential/gnunet-service-credential.c b/src/credential/gnunet-service-credential.c
index 792d8741e..a4686e635 100644
--- a/src/credential/gnunet-service-credential.c
+++ b/src/credential/gnunet-service-credential.c
@@ -265,45 +265,46 @@ start_backward_resolution (void* cls,
265 struct CredentialRecordEntry *cred_pointer; 265 struct CredentialRecordEntry *cred_pointer;
266 const char *attribute; 266 const char *attribute;
267 const char *cred_attribute; 267 const char *cred_attribute;
268 char *issuer_key;
269 char *cred_issuer_key;
270 const struct GNUNET_CRYPTO_EcdsaPublicKey *issuer_key_ecdsa;
271 const struct GNUNET_CRYPTO_EcdsaPublicKey *cred_issuer_key_ecdsa;
272 268
273 for(cred_pointer = vrh->cred_chain_head; cred_pointer != NULL; 269 for(cred_pointer = vrh->cred_chain_head; cred_pointer != NULL;
274 cred_pointer = cred_pointer->next){ 270 cred_pointer = cred_pointer->next){
275 cred = &cred_pointer->record_data; 271 cred = &cred_pointer->record_data;
276 issuer_key_ecdsa = &vrh->attr_pointer->record_data.subject_key;
277 cred_issuer_key_ecdsa = &cred_pointer->record_data.issuer_key;
278 272
279 issuer_key = GNUNET_CRYPTO_ecdsa_public_key_to_string(issuer_key_ecdsa); 273 if(0 == memcmp (&vrh->attr_pointer->record_data.subject_key,
280 cred_issuer_key = GNUNET_CRYPTO_ecdsa_public_key_to_string(cred_issuer_key_ecdsa); 274 &cred_pointer->record_data.issuer_key,
281 if(0 == strcmp(issuer_key,cred_issuer_key)) 275 sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey))){
282 { 276
283 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 277 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
284 "Found issuer\n"); 278 "Found issuer\n");
285 } 279
280 }
281
282
283
286 284
287 } 285 }
288
289 286
290 287
288
291 //Start from next to head 289 //Start from next to head
292 for(vrh->attr_pointer = vrh->attr_queue_head->next ; vrh->attr_pointer->next != NULL ; 290 vrh->attr_pointer = vrh->attr_pointer->next;
293 vrh->attr_pointer = vrh->attr_pointer->next ){ 291
294 292
293
294 if(vrh->attr_pointer->next != NULL){
295 //Start with backward resolution 295 //Start with backward resolution
296 GNUNET_GNS_lookup (gns, 296 vrh->lookup_request = GNUNET_GNS_lookup (gns,
297 vrh->issuer_attribute, 297 vrh->issuer_attribute,
298 &vrh->issuer_key, //issuer_key, 298 &vrh->issuer_key, //issuer_key,
299 GNUNET_GNSRECORD_TYPE_ATTRIBUTE, 299 GNUNET_GNSRECORD_TYPE_ATTRIBUTE,
300 GNUNET_GNS_LO_DEFAULT, 300 GNUNET_GNS_LO_DEFAULT,
301 NULL, //shorten_key, always NULL 301 NULL, //shorten_key, always NULL
302 &start_backward_resolution, 302 &start_backward_resolution,
303 vrh); 303 vrh);
304 } 304 }
305 305
306 306
307
307} 308}
308 309
309/** 310/**
@@ -327,13 +328,14 @@ send_lookup_response (void* cls,
327 const struct GNUNET_CREDENTIAL_CredentialRecordData *crd; 328 const struct GNUNET_CREDENTIAL_CredentialRecordData *crd;
328 struct GNUNET_CRYPTO_EccSignaturePurpose *purp; 329 struct GNUNET_CRYPTO_EccSignaturePurpose *purp;
329 struct CredentialRecordEntry *cr_entry; 330 struct CredentialRecordEntry *cr_entry;
331 uint32_t cred_verified;
330 332
331 cred_record_count = 0; 333 cred_record_count = 0;
332 struct AttributeRecordEntry *attr_entry; 334 struct AttributeRecordEntry *attr_entry;
333 335
334 struct GNUNET_CREDENTIAL_AttributeRecordData *ard = 336 struct GNUNET_CREDENTIAL_AttributeRecordData *ard =
335 GNUNET_new(struct GNUNET_CREDENTIAL_AttributeRecordData); 337 GNUNET_new(struct GNUNET_CREDENTIAL_AttributeRecordData);
336 338
337 attr_entry->record_data = *ard; 339 attr_entry->record_data = *ard;
338 ard->subject_key = vrh->issuer_key; 340 ard->subject_key = vrh->issuer_key;
339 GNUNET_CONTAINER_DLL_insert_tail (vrh->attr_queue_head, 341 GNUNET_CONTAINER_DLL_insert_tail (vrh->attr_queue_head,
@@ -386,17 +388,19 @@ send_lookup_response (void* cls,
386 if(cred_verified != GNUNET_YES){ 388 if(cred_verified != GNUNET_YES){
387 389
388 390
389 vrh->attr_pointer = vrh->attr_queue_head; 391 vrh->attr_pointer = vrh->attr_pointer->next;
392 if(vrh->attr_pointer != NULL){
390 393
391 //Start with backward resolution 394 //Start with backward resolution
392 GNUNET_GNS_lookup (gns, 395 GNUNET_GNS_lookup (gns,
393 vrh->issuer_attribute, 396 vrh->issuer_attribute,
394 &vrh->issuer_key, //issuer_key, 397 &vrh->issuer_key, //issuer_key,
395 GNUNET_GNSRECORD_TYPE_ATTRIBUTE, 398 GNUNET_GNSRECORD_TYPE_ATTRIBUTE,
396 GNUNET_GNS_LO_DEFAULT, 399 GNUNET_GNS_LO_DEFAULT,
397 NULL, //shorten_key, always NULL 400 NULL, //shorten_key, always NULL
398 &start_backward_resolution, 401 &start_backward_resolution,
399 vrh); 402 vrh);
403 }
400 } 404 }
401 405
402 406