aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSchanzenbach, Martin <martin.schanzenbach@aisec.fraunhofer.de>2018-05-04 10:26:19 +0200
committerSchanzenbach, Martin <martin.schanzenbach@aisec.fraunhofer.de>2018-05-04 10:26:19 +0200
commitd83553b169ab9221c9daaa010e2aad2b92583fd8 (patch)
tree810fe5d66bba5ebc0d540097bb7913d8b540b258 /src
parente4ba4feedbe6e8f435f44eea89fcb080ddcc734d (diff)
downloadgnunet-d83553b169ab9221c9daaa010e2aad2b92583fd8.tar.gz
gnunet-d83553b169ab9221c9daaa010e2aad2b92583fd8.zip
fix idp cli
Diffstat (limited to 'src')
-rw-r--r--src/identity-provider/gnunet-idp.c96
1 files changed, 64 insertions, 32 deletions
diff --git a/src/identity-provider/gnunet-idp.c b/src/identity-provider/gnunet-idp.c
index 4f17919b9..cb82f42b8 100644
--- a/src/identity-provider/gnunet-idp.c
+++ b/src/identity-provider/gnunet-idp.c
@@ -287,27 +287,30 @@ iter_finished (void *cls)
287 NULL); 287 NULL);
288 return; 288 return;
289 } 289 }
290 if (NULL == type_str) 290 if (attr_name)
291 type = GNUNET_IDENTITY_ATTRIBUTE_TYPE_STRING; 291 {
292 else 292 if (NULL == type_str)
293 type = GNUNET_IDENTITY_ATTRIBUTE_typename_to_number (type_str); 293 type = GNUNET_IDENTITY_ATTRIBUTE_TYPE_STRING;
294 294 else
295 GNUNET_assert (GNUNET_SYSERR != GNUNET_IDENTITY_ATTRIBUTE_string_to_value (type, 295 type = GNUNET_IDENTITY_ATTRIBUTE_typename_to_number (type_str);
296 attr_value, 296
297 (void**)&data, 297 GNUNET_assert (GNUNET_SYSERR != GNUNET_IDENTITY_ATTRIBUTE_string_to_value (type,
298 &data_size)); 298 attr_value,
299 claim = GNUNET_IDENTITY_ATTRIBUTE_claim_new (attr_name, 299 (void**)&data,
300 type, 300 &data_size));
301 data, 301 claim = GNUNET_IDENTITY_ATTRIBUTE_claim_new (attr_name,
302 data_size); 302 type,
303 idp_op = GNUNET_IDENTITY_PROVIDER_attribute_store (idp_handle, 303 data,
304 pkey, 304 data_size);
305 claim, 305 idp_op = GNUNET_IDENTITY_PROVIDER_attribute_store (idp_handle,
306 &exp_interval, 306 pkey,
307 &store_attr_cont, 307 claim,
308 NULL); 308 &exp_interval,
309 309 &store_attr_cont,
310 310 NULL);
311 return;
312 }
313 GNUNET_SCHEDULER_add_now (&do_cleanup, NULL);
311} 314}
312 315
313static void 316static void
@@ -347,16 +350,14 @@ iter_cb (void *cls,
347} 350}
348 351
349static void 352static void
350ego_cb (void *cls, 353ego_iter_finished (void *cls)
351 struct GNUNET_IDENTITY_Ego *ego,
352 void **ctx,
353 const char *name)
354{ 354{
355 if (NULL == name) 355 if (NULL == pkey)
356 return; 356 {
357 if (0 != strcmp (name, ego_name)) 357 GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE,
358 "Ego %s not found\n", ego_name);
358 return; 359 return;
359 pkey = GNUNET_IDENTITY_ego_get_private_key (ego); 360 }
360 361
361 if (NULL != rp) 362 if (NULL != rp)
362 GNUNET_CRYPTO_ecdsa_public_key_from_string (rp, 363 GNUNET_CRYPTO_ecdsa_public_key_from_string (rp,
@@ -388,6 +389,23 @@ ego_cb (void *cls,
388 389
389} 390}
390 391
392
393static void
394ego_cb (void *cls,
395 struct GNUNET_IDENTITY_Ego *ego,
396 void **ctx,
397 const char *name)
398{
399 if (NULL == name) {
400 GNUNET_SCHEDULER_add_now (&ego_iter_finished, NULL);
401 return;
402 }
403 if (0 != strcmp (name, ego_name))
404 return;
405 pkey = GNUNET_IDENTITY_ego_get_private_key (ego);
406}
407
408
391static void 409static void
392run (void *cls, 410run (void *cls,
393 char *const *args, 411 char *const *args,
@@ -400,7 +418,21 @@ run (void *cls,
400 GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE, 418 GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE,
401 _("Ego is required\n")); 419 _("Ego is required\n"));
402 return; 420 return;
403 } 421 }
422
423 if ( (NULL == attr_value) && (NULL != attr_name) )
424 {
425 GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE,
426 _("Attribute value missing!\n"));
427 return;
428 }
429
430 if ( (NULL == rp) && (NULL != issue_attrs) )
431 {
432 GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE,
433 _("Requesting party key is required!\n"));
434 return;
435 }
404 436
405 idp_handle = GNUNET_IDENTITY_PROVIDER_connect (c); 437 idp_handle = GNUNET_IDENTITY_PROVIDER_connect (c);
406 //Get Ego 438 //Get Ego
@@ -472,8 +504,8 @@ main(int argc, char *const argv[])
472 GNUNET_GETOPT_OPTION_END 504 GNUNET_GETOPT_OPTION_END
473 }; 505 };
474 if (GNUNET_OK != GNUNET_PROGRAM_run (argc, argv, "ct", 506 if (GNUNET_OK != GNUNET_PROGRAM_run (argc, argv, "ct",
475 "ct", options, 507 "ct", options,
476 &run, NULL)) 508 &run, NULL))
477 return 1; 509 return 1;
478 else 510 else
479 return ret; 511 return ret;