From 6a86935d5e69874324a158fa6d418b88df8c575d Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Wed, 2 May 2018 01:42:55 +0200 Subject: add test for query derivation (passed instantly) --- src/gnsrecord/gnsrecord_crypto.c | 7 ++- src/gnsrecord/test_gnsrecord_crypto.c | 79 ++++++++++++++++++++------------ src/namestore/gnunet-service-namestore.c | 2 +- 3 files changed, 56 insertions(+), 32 deletions(-) diff --git a/src/gnsrecord/gnsrecord_crypto.c b/src/gnsrecord/gnsrecord_crypto.c index d9fe2ae40..cebc842f3 100644 --- a/src/gnsrecord/gnsrecord_crypto.c +++ b/src/gnsrecord/gnsrecord_crypto.c @@ -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); } diff --git a/src/gnsrecord/test_gnsrecord_crypto.c b/src/gnsrecord/test_gnsrecord_crypto.c index 24fe2ad36..1df3f3730 100644 --- a/src/gnsrecord/test_gnsrecord_crypto.c +++ b/src/gnsrecord/test_gnsrecord_crypto.c @@ -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; } diff --git a/src/namestore/gnunet-service-namestore.c b/src/namestore/gnunet-service-namestore.c index 7934ea6ce..fa189dbc3 100644 --- a/src/namestore/gnunet-service-namestore.c +++ b/src/namestore/gnunet-service-namestore.c @@ -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 */ -- cgit v1.2.3