gnunet-svn
[Top][All Lists]
Advanced

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

[gnunet] branch master updated: -add edkey test vector


From: gnunet
Subject: [gnunet] branch master updated: -add edkey test vector
Date: Sun, 02 May 2021 11:21:58 +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 74a8960d2 -add edkey test vector
74a8960d2 is described below

commit 74a8960d27377d1065fd3dcd2a5de94e8cbf0041
Author: Martin Schanzenbach <mschanzenbach@posteo.de>
AuthorDate: Sun May 2 11:19:45 2021 +0200

    -add edkey test vector
---
 src/gnsrecord/gnunet-gnsrecord-tvg.c | 131 +++++++++++++++++++++++++++++++++--
 1 file changed, 125 insertions(+), 6 deletions(-)

diff --git a/src/gnsrecord/gnunet-gnsrecord-tvg.c 
b/src/gnsrecord/gnunet-gnsrecord-tvg.c
index d6b35544c..16a360bdc 100644
--- a/src/gnsrecord/gnunet-gnsrecord-tvg.c
+++ b/src/gnsrecord/gnunet-gnsrecord-tvg.c
@@ -81,10 +81,7 @@ print_record (const struct GNUNET_GNSRECORD_Data *rd)
  * @param cfg configuration
  */
 static void
-run (void *cls,
-     char *const *args,
-     const char *cfgfile,
-     const struct GNUNET_CONFIGURATION_Handle *cfg)
+run_pkey (void)
 {
   struct GNUNET_GNSRECORD_Data rd[2];
   struct GNUNET_TIME_Absolute exp_abs = GNUNET_TIME_absolute_get ();
@@ -104,8 +101,9 @@ run (void *cls,
   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, with ztype 
prepended):\n");
-  print_bytes (&id_priv, GNUNET_IDENTITY_key_get_length (&id_pub), 8); //FIXME 
length for privkey?
+  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 identifier (zid):\n");
   print_bytes (&id_pub, GNUNET_IDENTITY_key_get_length (&id_pub), 8);
@@ -176,6 +174,127 @@ run (void *cls,
 }
 
 
+/**
+ * Main function that will be run.
+ *
+ * @param cls closure
+ * @param args remaining command-line arguments
+ * @param cfgfile name of the configuration file used (for saving, can be 
NULL!)
+ * @param cfg configuration
+ */
+static void
+run_edkey (void)
+{
+  struct GNUNET_GNSRECORD_Data rd[2];
+  struct GNUNET_TIME_Absolute exp_abs = GNUNET_TIME_absolute_get ();
+  struct GNUNET_GNSRECORD_Block *rrblock;
+  char *bdata;
+  struct GNUNET_IDENTITY_PrivateKey id_priv;
+  struct GNUNET_IDENTITY_PublicKey id_pub;
+  struct GNUNET_IDENTITY_PrivateKey pkey_data_p;
+  struct GNUNET_IDENTITY_PublicKey pkey_data;
+  void *data;
+  size_t data_size;
+  char *rdata;
+  size_t rdata_size;
+  char ztld[128];
+
+  id_priv.type = htonl (GNUNET_IDENTITY_TYPE_EDDSA);
+  GNUNET_CRYPTO_eddsa_key_create (&id_priv.eddsa_key);
+  GNUNET_IDENTITY_key_get_public (&id_priv,
+                                  &id_pub);
+  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 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_EDKEY);
+  GNUNET_CRYPTO_eddsa_key_create (&pkey_data_p.eddsa_key);
+  GNUNET_IDENTITY_key_get_public (&pkey_data_p,
+                                  &pkey_data);
+  fprintf (stdout,
+           "Label: %s\nRRCOUNT: %d\n\n", TEST_RECORD_LABEL, TEST_RRCOUNT);
+  memset (rd, 0, sizeof (struct GNUNET_GNSRECORD_Data) * 2);
+  GNUNET_assert (GNUNET_OK == GNUNET_GNSRECORD_string_to_value (
+                   GNUNET_DNSPARSER_TYPE_A, TEST_RECORD_A, &data, &data_size));
+  rd[0].data = data;
+  rd[0].data_size = data_size;
+  rd[0].expiration_time = exp_abs.abs_value_us;
+  rd[0].record_type = GNUNET_DNSPARSER_TYPE_A;
+  fprintf (stdout, "Record #0\n");
+  print_record (&rd[0]);
+
+  rd[1].data = &pkey_data;
+  rd[1].data_size = sizeof (struct GNUNET_CRYPTO_EddsaPublicKey);
+  rd[1].expiration_time = exp_abs.abs_value_us;
+  rd[1].record_type = GNUNET_GNSRECORD_TYPE_EDKEY;
+  rd[1].flags = GNUNET_GNSRECORD_RF_PRIVATE;
+  fprintf (stdout, "Record #1\n");
+  print_record (&rd[1]);
+
+  rdata_size = GNUNET_GNSRECORD_records_get_size (2,
+                                                  rd);
+  rdata = GNUNET_malloc (rdata_size);
+  GNUNET_GNSRECORD_records_serialize (2,
+                                      rd,
+                                      rdata_size,
+                                      rdata);
+  fprintf (stdout, "RDATA:\n");
+  print_bytes (rdata, rdata_size, 8);
+  fprintf (stdout, "\n");
+  rrblock = GNUNET_GNSRECORD_block_create (&id_priv,
+                                           exp_abs,
+                                           TEST_RECORD_LABEL,
+                                           rd,
+                                           TEST_RRCOUNT);
+  size_t bdata_size = ntohl (rrblock->eddsa_block.purpose.size)
+                      - sizeof(struct GNUNET_CRYPTO_EccSignaturePurpose)
+                      - sizeof(struct GNUNET_TIME_AbsoluteNBO);
+  size_t ecblock_size = ntohl (rrblock->eddsa_block.purpose.size)
+                        + sizeof(struct GNUNET_CRYPTO_EddsaPublicKey)
+                        + sizeof(struct GNUNET_CRYPTO_EddsaSignature);
+  size_t block_size = ecblock_size + sizeof (uint32_t);
+
+  bdata = (char*) &(&rrblock->eddsa_block)[1];
+  fprintf (stdout, "BDATA:\n");
+  print_bytes (bdata, bdata_size, 8);
+  fprintf (stdout, "\n");
+  fprintf (stdout, "RRBLOCK:\n");
+  print_bytes (rrblock, block_size, 8);
+  fprintf (stdout, "\n");
+  GNUNET_free (rdata);
+}
+
+
+/**
+ * Main function that will be run.
+ *
+ * @param cls closure
+ * @param args remaining command-line arguments
+ * @param cfgfile name of the configuration file used (for saving, can be 
NULL!)
+ * @param cfg configuration
+ */
+static void
+run (void *cls,
+     char *const *args,
+     const char *cfgfile,
+     const struct GNUNET_CONFIGURATION_Handle *cfg)
+{
+  run_pkey();
+  run_edkey();
+}
+
+
 /**
  * The main function of the test vector generation tool.
  *

-- 
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]