#include "gnunet_identity_service.h"
#include "gnunet_signatures.h"
+/**
+ * Init flag
+ */
+static int init;
+
/**
* List attribute flag
*/
static void
ns_error_cb (void *cls)
{
+ ns_qe = NULL;
GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE,
"Failed.");
do_cleanup(NULL);
int32_t success,
const char*emsg)
{
+ ns_qe = NULL;
if (GNUNET_SYSERR == success) {
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"%s\n", emsg);
int32_t success,
const char*emsg)
{
+ ns_qe = NULL;
if (GNUNET_SYSERR == success) {
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"%s\n", emsg);
static void
iter_error (void *cls)
{
+ ns_iterator = NULL;
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Failed to iterate over attributes\n");
GNUNET_SCHEDULER_add_now (&do_cleanup, NULL);
static void
iter_finished (void *cls)
{
+ ns_iterator = NULL;
GNUNET_SCHEDULER_add_now (&do_cleanup, NULL);
}
unsigned int rd_count,
const struct GNUNET_GNSRECORD_Data *rd)
{
+ struct GNUNET_CRYPTO_AbeKey *key;
int i;
char *attr_value;
-
+ char* attrs[2];
for (i=0;i<rd_count;i++) {
if (GNUNET_GNSRECORD_TYPE_ID_ATTR != rd[i].record_type)
continue;
- GNUNET_CRYPTO_cpabe_decrypt_master (rd[i].data,
- rd[i].data_size,
- abe_key,
- &attr_value);
+ attrs[0] = (char*)label;
+ attrs[1] = 0;
+ key = GNUNET_CRYPTO_cpabe_create_key (abe_key,
+ attrs);
+ GNUNET_CRYPTO_cpabe_decrypt (rd[i].data,
+ rd[i].data_size,
+ key,
+ (void**)&attr_value);
+ GNUNET_CRYPTO_cpabe_delete_key (key);
GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE,
"%s: %s\n", label, attr_value);
}
struct GNUNET_CRYPTO_AbeMasterKey *new_key;
int i;
ssize_t size;
-
+ ns_qe = NULL;
for (i=0;i<rd_count;i++) {
if (GNUNET_GNSRECORD_TYPE_ABE_MASTER != rd[i].record_type)
continue;
NULL);
return;
}
+ if (init) {
+ GNUNET_SCHEDULER_add_now (&do_cleanup, NULL);
+ return;
+ }
if (list) {
ns_iterator = GNUNET_NAMESTORE_zone_iteration_start (namestore_handle,
const char *name)
{
const struct GNUNET_CRYPTO_EcdsaPrivateKey *pkey;
+ if (NULL == name)
+ return;
if (0 != strcmp (name, ego_name))
return;
pkey = GNUNET_IDENTITY_ego_get_private_key (ego);
return;
}
- if ((NULL == attr_name) && !list)
+ if ((NULL == attr_name) && !list && !init)
{
return;
}
- if ((NULL == attr_value) && !list)
+ if ((NULL == attr_value) && !list && !init)
{
GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE,
_("Value is required\n"));
NULL,
gettext_noop ("Ego"),
&ego_name),
- GNUNET_GETOPT_option_flag ('l',
- "list",
+ GNUNET_GETOPT_option_flag ('D',
+ "dump",
gettext_noop ("List attributes for Ego"),
&list),
-
+ GNUNET_GETOPT_option_flag ('i',
+ "init",
+ gettext_noop ("Initialize attribute store"),
+ &init),
GNUNET_GETOPT_OPTION_END
};
return GNUNET_PROGRAM_run (argc, argv, "ct",