add test for query derivation (passed instantly)
authorChristian Grothoff <christian@grothoff.org>
Tue, 1 May 2018 23:42:55 +0000 (01:42 +0200)
committerChristian Grothoff <christian@grothoff.org>
Tue, 1 May 2018 23:42:55 +0000 (01:42 +0200)
src/gnsrecord/gnsrecord_crypto.c
src/gnsrecord/test_gnsrecord_crypto.c
src/namestore/gnunet-service-namestore.c

index d9fe2ae40a566d89acbbcab1ffe15bbeeae7ab9f..cebc842f377aee62bbbebf1da9f32d5aea72fb38 100644 (file)
@@ -405,8 +405,11 @@ GNUNET_GNSRECORD_query_from_private_key (const struct GNUNET_CRYPTO_EcdsaPrivate
 {
   struct GNUNET_CRYPTO_EcdsaPublicKey pub;
 
-  GNUNET_CRYPTO_ecdsa_key_get_public (zone, &pub);
-  GNUNET_GNSRECORD_query_from_public_key (&pub, label, query);
+  GNUNET_CRYPTO_ecdsa_key_get_public (zone,
+                                      &pub);
+  GNUNET_GNSRECORD_query_from_public_key (&pub,
+                                          label,
+                                          query);
 }
 
 
index 24fe2ad364a203ffbe32a5eb1275a672a2299d12..1df3f37300e59e30fbeccd89b7f43d0fbb0cdeca 100644 (file)
@@ -52,11 +52,10 @@ static int res;
 static struct GNUNET_GNSRECORD_Data *
 create_record (int count)
 {
-  unsigned int c;
   struct GNUNET_GNSRECORD_Data *rd;
 
   rd = GNUNET_malloc (count * sizeof (struct GNUNET_GNSRECORD_Data));
-  for (c = 0; c < count; c++)
+  for (unsigned int c = 0; c < count; c++)
   {
     rd[c].expiration_time = GNUNET_TIME_absolute_get().abs_value_us + 1000000000;
     rd[c].record_type = TEST_RECORD_TYPE;
@@ -74,17 +73,19 @@ rd_decrypt_cb (void *cls,
                const struct GNUNET_GNSRECORD_Data *rd)
 {
   char rd_cmp_data[TEST_RECORD_DATALEN];
-  int c;
 
   GNUNET_assert (RECORDS == rd_count);
   GNUNET_assert (NULL != rd);
-
-  memset (rd_cmp_data, 'a', TEST_RECORD_DATALEN);
-  for (c = 0; c < rd_count; c++)
+  memset (rd_cmp_data,
+          'a',
+          TEST_RECORD_DATALEN);
+  for (unsigned int c = 0; c < rd_count; c++)
   {
     GNUNET_assert (TEST_RECORD_TYPE == rd[c].record_type);
     GNUNET_assert (TEST_RECORD_DATALEN == rd[c].data_size);
-    GNUNET_assert (0 == memcmp (&rd_cmp_data, rd[c].data, TEST_RECORD_DATALEN));
+    GNUNET_assert (0 == memcmp (&rd_cmp_data,
+                                rd[c].data,
+                                TEST_RECORD_DATALEN));
   }
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
              "Block was decrypted successfully \n");
@@ -93,37 +94,53 @@ rd_decrypt_cb (void *cls,
 }
 
 static void
-run (void *cls, char *const *args, const char *cfgfile,
+run (void *cls,
+     char *const *args,
+     const char *cfgfile,
      const struct GNUNET_CONFIGURATION_Handle *cfg)
 {
   struct GNUNET_GNSRECORD_Block *block;
   struct GNUNET_CRYPTO_EcdsaPublicKey pubkey;
+  struct GNUNET_HashCode query_pub;
+  struct GNUNET_HashCode query_priv;
 
-  /* load privat key */
-  char *hostkey_file;
-  GNUNET_asprintf(&hostkey_file,
-                  "zonefiles%s%s",
-                  DIR_SEPARATOR_STR,
-                  "N0UJMP015AFUNR2BTNM3FKPBLG38913BL8IDMCO2H0A1LIB81960.zkey");
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-              "Using zonekey file `%s'\n",
-              hostkey_file);
-  privkey = GNUNET_CRYPTO_ecdsa_key_create_from_file(hostkey_file);
-  GNUNET_free (hostkey_file);
-  GNUNET_assert (privkey != NULL);
+  privkey = GNUNET_CRYPTO_ecdsa_key_create ();
+  GNUNET_assert (NULL != privkey);
   struct GNUNET_TIME_Absolute expire = GNUNET_TIME_absolute_get();
-  /* get public key */
-  GNUNET_CRYPTO_ecdsa_key_get_public(privkey, &pubkey);
 
+  /* get public key */
+  GNUNET_CRYPTO_ecdsa_key_get_public (privkey,
+                                      &pubkey);
+
+  /* test query derivation */
+  GNUNET_GNSRECORD_query_from_private_key (privkey,
+                                           "testlabel",
+                                           &query_priv);
+  GNUNET_GNSRECORD_query_from_public_key (&pubkey,
+                                          "testlabel",
+                                          &query_pub);
+  GNUNET_assert (0 == memcmp (&query_priv,
+                              &query_pub,
+                              sizeof (struct GNUNET_HashCode)));
   /* create record */
   s_name = "DUMMY.dummy.gnunet";
   s_rd = create_record (RECORDS);
 
   /* Create block */
-  GNUNET_assert (NULL != (block = GNUNET_GNSRECORD_block_create (privkey, expire,s_name, s_rd, RECORDS)));
-  GNUNET_assert (GNUNET_OK == GNUNET_GNSRECORD_block_verify (block));
-  GNUNET_assert (GNUNET_OK == GNUNET_GNSRECORD_block_decrypt (block, &pubkey, s_name, &rd_decrypt_cb, s_name));
-
+  GNUNET_assert (NULL != (block =
+                          GNUNET_GNSRECORD_block_create (privkey,
+                                                         expire,
+                                                         s_name,
+                                                         s_rd,
+                                                         RECORDS)));
+  GNUNET_assert (GNUNET_OK ==
+                 GNUNET_GNSRECORD_block_verify (block));
+  GNUNET_assert (GNUNET_OK ==
+                 GNUNET_GNSRECORD_block_decrypt (block,
+                                                 &pubkey,
+                                                 s_name,
+                                                 &rd_decrypt_cb,
+                                                 s_name));
   GNUNET_free (block);
 }
 
@@ -131,7 +148,8 @@ run (void *cls, char *const *args, const char *cfgfile,
 int
 main (int argc, char *argv[])
 {
-  static char *const argvx[] = { "test-gnsrecord-crypto",
+  static char *const argvx[] = {
+    "test-gnsrecord-crypto",
     NULL
   };
   static struct GNUNET_GETOPT_CommandLineOption options[] = {
@@ -139,8 +157,11 @@ main (int argc, char *argv[])
   };
 
   res = 1;
-  GNUNET_PROGRAM_run ((sizeof (argvx) / sizeof (char *)) - 1, argvx, "test-namestore-api",
-                      "nohelp", options, &run, &res);
+  GNUNET_PROGRAM_run ((sizeof (argvx) / sizeof (char *)) - 1,
+                      argvx,
+                      "test-gnsrecord-crypto",
+                      "nohelp", options,
+                      &run, &res);
   return res;
 }
 
index 7934ea6ce2cf38a74db5aca1ee24545b81504eab..fa189dbc39000e857f92a24c86d05d0e6f965914 100644 (file)
@@ -1697,7 +1697,7 @@ handle_monitor_start (void *cls,
 
 
 /**
- * Obtain the next datum during the zone monitor's zone intiial iteration.
+ * Obtain the next datum during the zone monitor's zone initial iteration.
  *
  * @param cls zone monitor that does its initial iteration
  */