gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnunet] branch master updated: -more gnsrecord API


From: gnunet
Subject: [gnunet] branch master updated: -more gnsrecord API
Date: Thu, 22 Oct 2020 19:16:18 +0200

This is an automated email from the git hooks/post-receive script.

martin-schanzenbach pushed a commit to branch master
in repository gnunet.

The following commit(s) were added to refs/heads/master by this push:
     new ea1d3fd9f -more gnsrecord API
ea1d3fd9f is described below

commit ea1d3fd9f54879992fb997a1e94cfd6830085c4b
Author: Martin Schanzenbach <mschanzenbach@posteo.de>
AuthorDate: Thu Oct 22 19:09:12 2020 +0200

    -more gnsrecord API
---
 src/gns/gnunet-gns-import.c               |  9 ++++--
 src/gns/gnunet-service-gns_resolver.c     | 28 ++++++++++++------
 src/gns/plugin_gnsrecord_gns.c            | 29 +++++++++++++------
 src/gnsrecord/gnsrecord_misc.c            | 47 +++++++++++++++++++++++++++++++
 src/gnsrecord/gnunet-gnsrecord-tvg.c      | 12 ++++++--
 src/include/gnunet_gnsrecord_lib.h        | 46 +++++++++++++++++++++++++-----
 src/namestore/gnunet-namestore-fcfsd.c    | 22 ++++++++++++---
 src/namestore/gnunet-namestore.c          | 10 +++----
 src/namestore/plugin_namestore_flat.c     |  7 +++--
 src/namestore/plugin_namestore_postgres.c | 13 +++++----
 src/namestore/plugin_namestore_sqlite.c   | 12 ++++----
 src/revocation/gnunet-revocation-tvg.c    | 14 +++++++--
 12 files changed, 195 insertions(+), 54 deletions(-)

diff --git a/src/gns/gnunet-gns-import.c b/src/gns/gnunet-gns-import.c
index 78db28cab..972fb49cd 100644
--- a/src/gns/gnunet-gns-import.c
+++ b/src/gns/gnunet-gns-import.c
@@ -168,12 +168,17 @@ check_pkey (unsigned int rd_len, const struct 
GNUNET_GNSRECORD_Data *rd,
             char *pk, int *found_rec)
 {
   int i;
+  struct GNUNET_IDENTITY_PublicKey pubkey;
 
   for (i = 0; i < rd_len; i++)
   {
     char *s;
-    if ((GNUNET_GNSRECORD_TYPE_PKEY != rd[i].record_type) ||
-        (rd[i].data_size != sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey)) )
+    if (sizeof (uint32_t) > rd[i].data_size)
+      continue;
+    if (GNUNET_OK != GNUNET_GNSRECORD_identity_from_data (rd[i].data,
+                                                          rd[i].data_size,
+                                                          rd[i].record_type,
+                                                          &pubkey))
       continue;
     s = GNUNET_GNSRECORD_value_to_string (rd[i].record_type,
                                           rd[i].data,
diff --git a/src/gns/gnunet-service-gns_resolver.c 
b/src/gns/gnunet-service-gns_resolver.c
index 1c13f4df1..d9d0d3099 100644
--- a/src/gns/gnunet-service-gns_resolver.c
+++ b/src/gns/gnunet-service-gns_resolver.c
@@ -1699,8 +1699,10 @@ recursive_pkey_resolution (struct GNS_ResolverHandle *rh,
   struct GNUNET_IDENTITY_PublicKey auth;
 
   /* delegation to another zone */
-  if (GNUNET_OK != GNUNET_GNSRECORD_record_to_identity_key (rd,
-                                                            &auth))
+  if (GNUNET_OK != GNUNET_GNSRECORD_identity_from_data (rd->data,
+                                                        rd->data_size,
+                                                        rd->record_type,
+                                                        &auth))
   {
     GNUNET_break_op (0);
     fail_resolution (rh);
@@ -1711,8 +1713,6 @@ recursive_pkey_resolution (struct GNS_ResolverHandle *rh,
   ac->rh = rh;
   ac->gns_authority = GNUNET_YES;
   ac->authority_info.gns_authority = auth;
-  GNUNET_GNSRECORD_record_to_identity_key (rd,
-                                           &ac->authority_info.gns_authority);
   ac->label = resolver_lookup_get_next_label (rh);
   /* add AC to tail */
   GNUNET_CONTAINER_DLL_insert_tail (rh->ac_head,
@@ -2258,14 +2258,25 @@ handle_gns_resolution_result (void *cls,
         break;
 
       case GNUNET_GNSRECORD_TYPE_PKEY:
+      case GNUNET_GNSRECORD_TYPE_EDKEY:
         {
-          if (rd[i].data_size != sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey))
+          struct GNUNET_IDENTITY_PublicKey pubkey;
+          if (rd[i].data_size < sizeof(uint32_t))
+          {
+            GNUNET_break_op (0);
+            break;
+          }
+          if (GNUNET_OK !=
+              GNUNET_GNSRECORD_identity_from_data (rd[i].data,
+                                                   rd[i].data_size,
+                                                   rd[i].record_type,
+                                                   &pubkey))
           {
             GNUNET_break_op (0);
             break;
           }
           rd_off++;
-          if (GNUNET_GNSRECORD_TYPE_PKEY != rh->record_type)
+          if (rd[i].record_type != rh->record_type)
           {
             /* try to resolve "@" */
             struct AuthorityChain *ac;
@@ -2273,9 +2284,7 @@ handle_gns_resolution_result (void *cls,
             ac = GNUNET_new (struct AuthorityChain);
             ac->rh = rh;
             ac->gns_authority = GNUNET_YES;
-            GNUNET_GNSRECORD_record_to_identity_key (&rd[i],
-                                                     &ac->authority_info.
-                                                     gns_authority);
+            ac->authority_info.gns_authority = pubkey;
             ac->label = GNUNET_strdup (GNUNET_GNS_EMPTY_LABEL_AT);
             GNUNET_CONTAINER_DLL_insert_tail (rh->ac_head,
                                               rh->ac_tail,
@@ -2365,6 +2374,7 @@ handle_gns_resolution_result (void *cls,
     return;
 
   case GNUNET_GNSRECORD_TYPE_PKEY:
+  case GNUNET_GNSRECORD_TYPE_EDKEY:
     GNUNET_break_op (1 == rd_count);  /* PKEY should be unique */
     recursive_pkey_resolution (rh,
                                &rd[0]);
diff --git a/src/gns/plugin_gnsrecord_gns.c b/src/gns/plugin_gnsrecord_gns.c
index 0bd1d047f..a2ad0b905 100644
--- a/src/gns/plugin_gnsrecord_gns.c
+++ b/src/gns/plugin_gnsrecord_gns.c
@@ -55,10 +55,12 @@ gns_value_to_string (void *cls,
   switch (type)
   {
   case GNUNET_GNSRECORD_TYPE_PKEY:
-    if (data_size != sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey))
+  case GNUNET_GNSRECORD_TYPE_EDKEY:
+    if (GNUNET_OK != GNUNET_GNSRECORD_identity_from_data (data,
+                                                          data_size,
+                                                          type,
+                                                          &pk))
       return NULL;
-    pk.type = htonl (GNUNET_GNSRECORD_TYPE_PKEY);
-    memcpy (&pk.ecdsa_key, data, sizeof (struct GNUNET_CRYPTO_EcdsaPublicKey));
     return GNUNET_IDENTITY_public_key_to_string (&pk);
 
   case GNUNET_GNSRECORD_TYPE_NICK:
@@ -156,25 +158,35 @@ gns_string_to_value (void *cls,
                      void **data,
                      size_t *data_size)
 {
-  struct GNUNET_CRYPTO_EcdsaPublicKey pkey;
   struct GNUNET_IDENTITY_PublicKey pk;
+  uint32_t record_type;
 
   if (NULL == s)
     return GNUNET_SYSERR;
   switch (type)
   {
   case GNUNET_GNSRECORD_TYPE_PKEY:
+  case GNUNET_GNSRECORD_TYPE_EDKEY:
     if (GNUNET_OK !=
         GNUNET_IDENTITY_public_key_from_string (s, &pk))
     {
       GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                  _ ("Unable to parse PKEY record `%s'\n"),
+                  _ ("Unable to parse zone key record `%s'\n"),
                   s);
       return GNUNET_SYSERR;
     }
-    *data = GNUNET_new (struct GNUNET_CRYPTO_EcdsaPublicKey);
-    GNUNET_memcpy (*data, &pk.ecdsa_key, sizeof(pkey));
-    *data_size = sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey);
+    *data_size = GNUNET_IDENTITY_key_get_length (&pk);
+    if (GNUNET_OK != GNUNET_GNSRECORD_data_from_identity (&pk,
+                                                          (char **) data,
+                                                          data_size,
+                                                          &record_type))
+      return GNUNET_SYSERR;
+    if (record_type != type)
+    {
+      GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                  _("Record type does not match parsed record type\n"));
+      return GNUNET_SYSERR;
+    }
     return GNUNET_OK;
 
   case GNUNET_GNSRECORD_TYPE_NICK:
@@ -305,6 +317,7 @@ static struct
   const char *name;
   uint32_t number;
 } gns_name_map[] = { { "PKEY", GNUNET_GNSRECORD_TYPE_PKEY },
+                     { "EDKEY", GNUNET_GNSRECORD_TYPE_PKEY },
                      { "NICK", GNUNET_GNSRECORD_TYPE_NICK },
                      { "LEHO", GNUNET_GNSRECORD_TYPE_LEHO },
                      { "VPN", GNUNET_GNSRECORD_TYPE_VPN },
diff --git a/src/gnsrecord/gnsrecord_misc.c b/src/gnsrecord/gnsrecord_misc.c
index 4b1695d69..ba8803850 100644
--- a/src/gnsrecord/gnsrecord_misc.c
+++ b/src/gnsrecord/gnsrecord_misc.c
@@ -272,6 +272,51 @@ GNUNET_GNSRECORD_zkey_to_pkey (const char *zkey,
 }
 
 
+enum GNUNET_GenericReturnValue
+GNUNET_GNSRECORD_identity_from_data (const char *data,
+                                     size_t data_size,
+                                     uint32_t type,
+                                     struct GNUNET_IDENTITY_PublicKey *key)
+{
+  if (GNUNET_NO == GNUNET_GNSRECORD_is_zonekey_type (type))
+    return GNUNET_SYSERR;
+  if (data_size > sizeof (struct GNUNET_IDENTITY_PublicKey))
+    return GNUNET_SYSERR;
+  key->type = type;
+  memcpy (key, data, data_size);
+  return GNUNET_OK;
+}
+
+enum GNUNET_GenericReturnValue
+GNUNET_GNSRECORD_data_from_identity (const struct
+                                     GNUNET_IDENTITY_PublicKey *key,
+                                     char **data,
+                                     size_t *data_size,
+                                     uint32_t *type)
+{
+  *type = key->type;
+  *data_size = GNUNET_IDENTITY_key_get_length (key);
+  if (0 == *data_size)
+    return GNUNET_SYSERR;
+  *data = GNUNET_malloc (*data_size);
+  memcpy (*data, key, *data_size);
+  return GNUNET_OK;
+}
+
+
+enum GNUNET_GenericReturnValue
+GNUNET_GNSRECORD_is_zonekey_type (uint32_t type)
+{
+  switch (type)
+  {
+    case GNUNET_GNSRECORD_TYPE_PKEY:
+    case GNUNET_GNSRECORD_TYPE_EDKEY:
+      return GNUNET_YES;
+    default:
+      return GNUNET_NO;
+  }
+}
+
 size_t
 GNUNET_GNSRECORD_block_get_size (const struct GNUNET_GNSRECORD_Block *block)
 {
@@ -325,6 +370,7 @@ GNUNET_GNSRECORD_query_from_block (const struct 
GNUNET_GNSRECORD_Block *block,
 
 }
 
+
 enum GNUNET_GenericReturnValue
 GNUNET_GNSRECORD_record_to_identity_key (const struct GNUNET_GNSRECORD_Data 
*rd,
                                          struct GNUNET_IDENTITY_PublicKey *key)
@@ -346,4 +392,5 @@ GNUNET_GNSRECORD_record_to_identity_key (const struct 
GNUNET_GNSRECORD_Data *rd,
 
 }
 
+
 /* end of gnsrecord_misc.c */
diff --git a/src/gnsrecord/gnunet-gnsrecord-tvg.c 
b/src/gnsrecord/gnunet-gnsrecord-tvg.c
index c29f377bc..47b13bdab 100644
--- a/src/gnsrecord/gnunet-gnsrecord-tvg.c
+++ b/src/gnsrecord/gnunet-gnsrecord-tvg.c
@@ -98,16 +98,24 @@ run (void *cls,
   size_t data_size;
   char *rdata;
   size_t rdata_size;
+  char ztld[128];
 
   id_priv.type = htonl (GNUNET_GNSRECORD_TYPE_PKEY);
   GNUNET_CRYPTO_ecdsa_key_create (&id_priv.ecdsa_key);
   GNUNET_IDENTITY_key_get_public (&id_priv,
                                   &id_pub);
-  fprintf (stdout, "Zone private key (d, little-endian scalar):\n");
+  fprintf (stdout, "Zone private key (d, little-endian, with ztype 
prepended):\n");
   print_bytes (&id_priv, GNUNET_IDENTITY_key_get_length (&id_pub), 8); //FIXME 
length for privkey?
   fprintf (stdout, "\n");
-  fprintf (stdout, "Zone public key (zk):\n");
+  fprintf (stdout, "Zone identifier (zid):\n");
   print_bytes (&id_pub, GNUNET_IDENTITY_key_get_length (&id_pub), 8);
+  GNUNET_STRINGS_data_to_string (&id_pub,
+                                 GNUNET_IDENTITY_key_get_length (&id_pub),
+                                 ztld,
+                                 sizeof (ztld));
+  fprintf (stdout, "\n");
+  fprintf (stdout, "Encoded zone identifier (zkl = zTLD):\n");
+  fprintf (stdout, "%s\n", ztld);
   fprintf (stdout, "\n");
 
   pkey_data_p.type = htonl (GNUNET_GNSRECORD_TYPE_PKEY);
diff --git a/src/include/gnunet_gnsrecord_lib.h 
b/src/include/gnunet_gnsrecord_lib.h
index 530879b21..0bf2ceed7 100644
--- a/src/include/gnunet_gnsrecord_lib.h
+++ b/src/include/gnunet_gnsrecord_lib.h
@@ -686,16 +686,48 @@ GNUNET_GNSRECORD_query_from_block (const struct 
GNUNET_GNSRECORD_Block *block,
 
 
 /**
- * Build a #GNUNET_GNSRECORD_PublicKey from a
- * zone delegation resource record set.
+ * Build a #GNUNET_GNSRECORD_PublicKey from
+ * zone delegation resource record data.
  *
- * @param the resource record set. MUST be a delegation record.
- * @param key where to write the identtiy key.
- * @return GNUNET_SYSERR on error or if the zone is not a delegation zone.
+ * @param data the record data-
+ * @param data_size the data size.
+ * @param type the record type
+ * @param key the identity key to store the data in (must be allocated).
+ * @return GNUNET_OK if successful.
  */
 enum GNUNET_GenericReturnValue
-GNUNET_GNSRECORD_record_to_identity_key (const struct GNUNET_GNSRECORD_Data 
*rd,
-                                         struct GNUNET_IDENTITY_PublicKey 
*key);
+GNUNET_GNSRECORD_identity_from_data (const char *data,
+                                     size_t data_size,
+                                     uint32_t type,
+                                     struct GNUNET_IDENTITY_PublicKey *key);
+
+
+/**
+ * Create record data and size from an identity key.
+ *
+ * @param key the identity key to use.
+ * @param data the record data (will be allocated)
+ * @param data_size the allocated data size.
+ * @param type the resulting record type
+ * @return GNUNET_OK if successful.
+ */
+enum GNUNET_GenericReturnValue
+GNUNET_GNSRECORD_data_from_identity (const struct GNUNET_IDENTITY_PublicKey 
*key,
+                                     char **data,
+                                     size_t *data_size,
+                                     uint32_t *type);
+
+
+/**
+ * Check if this type is one of the supported GNS zone
+ * types.
+ *
+ * @param type the type to check
+ * @return GNUNET_YES if it is one of the supported types.
+ */
+enum GNUNET_GenericReturnValue
+GNUNET_GNSRECORD_is_zonekey_type (uint32_t type);
+
 
 #if 0 /* keep Emacsens' auto-indent happy */
 {
diff --git a/src/namestore/gnunet-namestore-fcfsd.c 
b/src/namestore/gnunet-namestore-fcfsd.c
index 844f4a990..22d108067 100644
--- a/src/namestore/gnunet-namestore-fcfsd.c
+++ b/src/namestore/gnunet-namestore-fcfsd.c
@@ -349,7 +349,8 @@ iterate_cb (void *cls,
     return;
   }
 
-  if (GNUNET_GNSRECORD_TYPE_PKEY != rd->record_type)
+  if ((GNUNET_GNSRECORD_TYPE_PKEY != rd->record_type) &&
+      (GNUNET_GNSRECORD_TYPE_EDKEY != rd->record_type))
   {
     GNUNET_NAMESTORE_zone_iterator_next (zr->list_it,
                                          1);
@@ -621,6 +622,7 @@ zone_to_name_cb (void *cls,
 {
   struct Request *request = cls;
   struct GNUNET_GNSRECORD_Data r;
+  char *rdata;
 
   (void) rd;
   (void) zone_key;
@@ -635,10 +637,21 @@ zone_to_name_cb (void *cls,
     run_httpd_now ();
     return;
   }
-  r.data = &request->pub;
-  r.data_size = sizeof(request->pub);
+  if (GNUNET_OK != GNUNET_GNSRECORD_data_from_identity (&request->pub,
+                                                        &rdata,
+                                                        &r.data_size,
+                                                        &r.record_type))
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+                _ ("Error creating record data.\n"));
+    request->phase = RP_FAIL;
+    MHD_resume_connection (request->con);
+    run_httpd_now ();
+    return;
+  }
+
+  r.data = rdata;
   r.expiration_time = UINT64_MAX;
-  r.record_type = GNUNET_GNSRECORD_TYPE_PKEY;
   r.flags = GNUNET_GNSRECORD_RF_NONE;
   request->qe = GNUNET_NAMESTORE_records_store (ns,
                                                 &fcfs_zone_pkey,
@@ -646,6 +659,7 @@ zone_to_name_cb (void *cls,
                                                 1, &r,
                                                 &put_continuation,
                                                 request);
+  GNUNET_free (rdata);
 }
 
 
diff --git a/src/namestore/gnunet-namestore.c b/src/namestore/gnunet-namestore.c
index 345d76910..92d2cf627 100644
--- a/src/namestore/gnunet-namestore.c
+++ b/src/namestore/gnunet-namestore.c
@@ -661,11 +661,11 @@ get_existing_record (void *cls,
       return;
 
     case GNUNET_GNSRECORD_TYPE_PKEY:
+    case GNUNET_GNSRECORD_TYPE_EDKEY:
       fprintf (
         stderr,
         _ (
-          "A %s record exists already under `%s', no other records can be 
added.\n"),
-        "PKEY",
+          "A zone key record exists already under `%s', no other records can 
be added.\n"),
         rec_name);
       ret = 1;
       test_finished ();
@@ -703,13 +703,13 @@ get_existing_record (void *cls,
     break;
 
   case GNUNET_GNSRECORD_TYPE_PKEY:
+  case GNUNET_GNSRECORD_TYPE_EDKEY:
     if (0 != rd_count)
     {
       fprintf (stderr,
                _ (
-                 "Records already exist under `%s', cannot add `%s' 
record.\n"),
-               rec_name,
-               "PKEY");
+                 "Records already exist under `%s', cannot add record.\n"),
+               rec_name);
       ret = 1;
       test_finished ();
       return;
diff --git a/src/namestore/plugin_namestore_flat.c 
b/src/namestore/plugin_namestore_flat.c
index 1a071fd80..9ccc90cfd 100644
--- a/src/namestore/plugin_namestore_flat.c
+++ b/src/namestore/plugin_namestore_flat.c
@@ -698,11 +698,14 @@ zone_to_name (void *cls,
 
   for (unsigned int i = 0; i < entry->record_count; i++)
   {
-    if (GNUNET_GNSRECORD_TYPE_PKEY != entry->record_data[i].record_type)
+    if (GNUNET_NO ==
+        GNUNET_GNSRECORD_is_zonekey_type (entry->record_data[i].record_type))
+      continue;
+    if (ztn->value_zone->type != entry->record_data[i].record_type)
       continue;
     if (0 == memcmp (ztn->value_zone,
                      entry->record_data[i].data,
-                     sizeof(struct GNUNET_IDENTITY_PublicKey)))
+                     entry->record_data[i].data_size))
     {
       ztn->iter (ztn->iter_cls,
                  i + 1,    /* zero is illegal! */
diff --git a/src/namestore/plugin_namestore_postgres.c 
b/src/namestore/plugin_namestore_postgres.c
index 358fd35d6..bdbaf96b3 100644
--- a/src/namestore/plugin_namestore_postgres.c
+++ b/src/namestore/plugin_namestore_postgres.c
@@ -195,13 +195,14 @@ namestore_postgres_store_records (void *cls,
           0,
           sizeof(pkey));
   for (unsigned int i = 0; i < rd_count; i++)
-    if (GNUNET_GNSRECORD_TYPE_PKEY == rd[i].record_type)
+    if (GNUNET_YES ==
+        GNUNET_GNSRECORD_is_zonekey_type (rd[i].record_type))
     {
-      GNUNET_break (sizeof(struct GNUNET_IDENTITY_PublicKey) ==
-                    rd[i].data_size);
-      GNUNET_memcpy (&pkey,
-                     rd[i].data,
-                     rd[i].data_size);
+      GNUNET_break (GNUNET_OK ==
+                    GNUNET_GNSRECORD_identity_from_data (rd[i].data,
+                                                         rd[i].data_size,
+                                                         rd[i].record_type,
+                                                         &pkey));
       break;
     }
   rvalue = GNUNET_CRYPTO_random_u64 (GNUNET_CRYPTO_QUALITY_WEAK,
diff --git a/src/namestore/plugin_namestore_sqlite.c 
b/src/namestore/plugin_namestore_sqlite.c
index 4a4ce3d8d..7cb9b7ed0 100644
--- a/src/namestore/plugin_namestore_sqlite.c
+++ b/src/namestore/plugin_namestore_sqlite.c
@@ -329,13 +329,13 @@ namestore_sqlite_store_records (void *cls,
           0,
           sizeof(pkey));
   for (unsigned int i = 0; i < rd_count; i++)
-    if (GNUNET_GNSRECORD_TYPE_PKEY == rd[i].record_type)
+    if (GNUNET_YES == GNUNET_GNSRECORD_is_zonekey_type (rd[i].record_type))
     {
-      GNUNET_break (sizeof(struct GNUNET_IDENTITY_PublicKey) ==
-                    rd[i].data_size);
-      GNUNET_memcpy (&pkey,
-                     rd[i].data,
-                     rd[i].data_size);
+      GNUNET_break (GNUNET_YES ==
+                    GNUNET_GNSRECORD_identity_from_data (rd[i].data,
+                                                         rd[i].data_size,
+                                                         rd[i].record_type,
+                                                         &pkey));
       break;
     }
   rvalue = GNUNET_CRYPTO_random_u64 (GNUNET_CRYPTO_QUALITY_WEAK,
diff --git a/src/revocation/gnunet-revocation-tvg.c 
b/src/revocation/gnunet-revocation-tvg.c
index 88117dd3f..cb5e31fcd 100644
--- a/src/revocation/gnunet-revocation-tvg.c
+++ b/src/revocation/gnunet-revocation-tvg.c
@@ -70,16 +70,24 @@ run (void *cls,
   struct GNUNET_REVOCATION_PowP *pow;
   struct GNUNET_REVOCATION_PowCalculationHandle *ph;
   struct GNUNET_TIME_Relative exp;
+  char ztld[128];
 
   id_priv.type = htonl (GNUNET_IDENTITY_TYPE_ECDSA);
   GNUNET_CRYPTO_ecdsa_key_create (&id_priv.ecdsa_key);
   GNUNET_IDENTITY_key_get_public (&id_priv,
                                   &id_pub);
-  fprintf (stdout, "Zone private key (d, little-endian scalar):\n");
+  GNUNET_STRINGS_data_to_string (&id_pub,
+                                 GNUNET_IDENTITY_key_get_length (&id_pub),
+                                 ztld,
+                                 sizeof (ztld));
+  fprintf (stdout, "Zone private key (d, little-endian scalar, with ztype 
prepended):\n");
   print_bytes (&id_priv, sizeof(id_priv), 8);
   fprintf (stdout, "\n");
-  fprintf (stdout, "Zone public key (zk):\n");
-  print_bytes (&id_pub, sizeof(id_pub), 8);
+  fprintf (stdout, "Zone identifier (zid):\n");
+  print_bytes (&id_pub, GNUNET_IDENTITY_key_get_length (&id_pub), 8);
+  fprintf (stdout, "\n");
+  fprintf (stdout, "Encoded zone identifier (zkl = zTLD):\n");
+  fprintf (stdout, "%s\n", ztld);
   fprintf (stdout, "\n");
   pow = GNUNET_malloc (GNUNET_REVOCATION_MAX_PROOF_SIZE);
   GNUNET_REVOCATION_pow_init (&id_priv,

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]