X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fnamestore%2Ftest_namestore_api_create_update.c;h=977b2cfcf874e7326adf5e2520f030780cad42dc;hb=dc40d894157a9eeee4c72f8cb974fd48e1a98a1b;hp=e898a30504f62539f31b4f4aaf1ce4e2969637cf;hpb=15f55fea6e6d2d1656e345eab131887efbd937b4;p=oweals%2Fgnunet.git diff --git a/src/namestore/test_namestore_api_create_update.c b/src/namestore/test_namestore_api_create_update.c index e898a3050..977b2cfcf 100644 --- a/src/namestore/test_namestore_api_create_update.c +++ b/src/namestore/test_namestore_api_create_update.c @@ -24,7 +24,7 @@ #include "platform.h" #include "gnunet_common.h" #include "gnunet_namestore_service.h" -#include "gnunet_testing_lib-new.h" +#include "gnunet_testing_lib.h" #include "namestore.h" #include "gnunet_signatures.h" @@ -43,18 +43,18 @@ #define TEST_CREATE_RECORD_DATA 'b' -#define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 10) +#define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 100) static struct GNUNET_NAMESTORE_Handle * nsh; static GNUNET_SCHEDULER_TaskIdentifier endbadly_task; -static struct GNUNET_CRYPTO_RsaPrivateKey * privkey; +static struct GNUNET_CRYPTO_EccPrivateKey * privkey; -static struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded pubkey; +static struct GNUNET_CRYPTO_EccPublicKey pubkey; -static struct GNUNET_CRYPTO_RsaSignature *s_signature; +static struct GNUNET_CRYPTO_EccSignature *s_signature; static struct GNUNET_CRYPTO_ShortHashCode s_zone; @@ -76,12 +76,14 @@ static int res; static void endbadly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) { + GNUNET_break (0); if (nsh != NULL) - GNUNET_NAMESTORE_disconnect (nsh, GNUNET_YES); + GNUNET_NAMESTORE_disconnect (nsh); nsh = NULL; if (privkey != NULL) - GNUNET_CRYPTO_rsa_key_free (privkey); + GNUNET_free (privkey); privkey = NULL; + GNUNET_free_non_null (s_name); res = 1; } @@ -98,11 +100,12 @@ end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) GNUNET_free (s_first_record); GNUNET_free_non_null (s_second_record); if (privkey != NULL) - GNUNET_CRYPTO_rsa_key_free (privkey); + GNUNET_free (privkey); privkey = NULL; if (nsh != NULL) - GNUNET_NAMESTORE_disconnect (nsh, GNUNET_YES); + GNUNET_NAMESTORE_disconnect (nsh); nsh = NULL; + GNUNET_free_non_null (s_name); } @@ -111,17 +114,17 @@ create_updated_cont (void *cls, int32_t success, const char *emsg) { char *name = cls; GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Updating expiration for record `%s': %s `%s'\n", name, ((success == GNUNET_YES) || (success == GNUNET_NO)) ? "SUCCESS" : "FAIL", emsg); - if (success == GNUNET_NO) + if (success == GNUNET_OK) { res = 0; GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Updated record for name `%s'\n", name); - } - else if (success == GNUNET_OK) + } + else if (success == GNUNET_NO) { res = 1; - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "FAIL, Create new record for name `%s'\n", name); + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed updating record for name `%s'\n", name); } - else + else { res = 1; GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to create records for name `%s'\n", name); @@ -134,20 +137,30 @@ static void create_identical_cont (void *cls, int32_t success, const char *emsg) { char *name = cls; - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Updating identical record for `%s': %s `%s'\n", name, ((success == GNUNET_YES) || (success == GNUNET_NO)) ? "SUCCESS" : "FAIL", emsg); - if (success == GNUNET_NO) + + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, + "Updating identical record for `%s': %s `%s'\n", + name, + ((success == GNUNET_YES) || (success == GNUNET_NO)) ? "SUCCESS" : "FAIL", + emsg); + if (success == GNUNET_OK) { res = 0; - s_first_record->expiration = GNUNET_TIME_absolute_get (); - GNUNET_NAMESTORE_record_create (nsh, privkey, s_name, s_first_record, &create_updated_cont, s_name); + s_first_record->expiration_time = GNUNET_TIME_absolute_get ().abs_value_us; + GNUNET_NAMESTORE_record_put_by_authority (nsh, privkey, s_name, + 1, s_first_record, + &create_updated_cont, s_name); } else { res = 1; - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Updating identical record for `%s': %s `%s'\n", name, ((success == GNUNET_YES) || (success == GNUNET_NO)) ? "SUCCESS" : "FAIL", emsg); - GNUNET_SCHEDULER_add_now(&end, NULL); + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, + "Updating identical record for `%s': %s `%s'\n", + name, + ((success == GNUNET_YES) || (success == GNUNET_NO)) ? "SUCCESS" : "FAIL", + emsg); + GNUNET_SCHEDULER_add_now (&end, NULL); } - } @@ -155,17 +168,23 @@ static void create_first_cont (void *cls, int32_t success, const char *emsg) { char *name = cls; - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Create record for `%s': %s `%s'\n", name, (success == GNUNET_OK) ? "SUCCESS" : "FAIL", emsg); + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, + "Create record for `%s': %s `%s'\n", + name, (success == GNUNET_OK) ? "SUCCESS" : "FAIL", + emsg); if (success == GNUNET_OK) { res = 0; /* check if record was created correct */ - GNUNET_NAMESTORE_record_create (nsh, privkey, s_name, s_first_record, &create_identical_cont, s_name); + GNUNET_NAMESTORE_record_put_by_authority (nsh, privkey, s_name, + 1, s_first_record, + &create_identical_cont, s_name); } else { res = 1; - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to put records for name `%s'\n", name); + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, + "Failed to put records for name `%s'\n", name); GNUNET_SCHEDULER_add_now(&end, NULL); } @@ -173,58 +192,60 @@ create_first_cont (void *cls, int32_t success, const char *emsg) static struct GNUNET_NAMESTORE_RecordData * -create_record (int count) +create_record (unsigned int count) { - int c; + unsigned int c; struct GNUNET_NAMESTORE_RecordData * rd; - rd = GNUNET_malloc (count * sizeof (struct GNUNET_NAMESTORE_RecordData)); + rd = GNUNET_malloc (count * sizeof (struct GNUNET_NAMESTORE_RecordData)); for (c = 0; c < count; c++) { - rd[c].expiration = GNUNET_TIME_UNIT_ZERO_ABS; + rd[c].expiration_time = 0; rd[c].record_type = TEST_RECORD_TYPE; rd[c].data_size = TEST_RECORD_DATALEN; rd[c].data = GNUNET_malloc(TEST_RECORD_DATALEN); memset ((char *) rd[c].data, TEST_RECORD_DATA, TEST_RECORD_DATALEN); } - return rd; } static void run (void *cls, - const struct GNUNET_CONFIGURATION_Handle *cfg) + const struct GNUNET_CONFIGURATION_Handle *cfg, + struct GNUNET_TESTING_Peer *peer) { size_t rd_ser_len; char *hostkey_file; + struct GNUNET_TIME_Absolute et; - endbadly_task = GNUNET_SCHEDULER_add_delayed(TIMEOUT,endbadly, NULL); + endbadly_task = GNUNET_SCHEDULER_add_delayed (TIMEOUT, endbadly, NULL); /* load privat key */ 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_rsa_key_create_from_file(hostkey_file); + privkey = GNUNET_CRYPTO_ecc_key_create_from_file(hostkey_file); GNUNET_free (hostkey_file); GNUNET_assert (privkey != NULL); /* get public key */ - GNUNET_CRYPTO_rsa_key_get_public(privkey, &pubkey); + GNUNET_CRYPTO_ecc_key_get_public(privkey, &pubkey); /* create record */ - s_name = "dummy.dummy.gnunet"; + s_name = GNUNET_NAMESTORE_normalize_string ("DUMMY.dummy.gnunet"); s_first_record = create_record (1); rd_ser_len = GNUNET_NAMESTORE_records_get_size(1, s_first_record); char rd_ser[rd_ser_len]; GNUNET_NAMESTORE_records_serialize(1, s_first_record, rd_ser_len, rd_ser); - s_signature = GNUNET_NAMESTORE_create_signature(privkey, s_first_record->expiration, s_name, s_first_record, 1); + et.abs_value_us = s_first_record->expiration_time; + s_signature = GNUNET_NAMESTORE_create_signature(privkey, et, s_name, s_first_record, 1); /* create random zone hash */ - GNUNET_CRYPTO_short_hash (&pubkey, sizeof (struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded), &s_zone); + GNUNET_CRYPTO_short_hash (&pubkey, sizeof (struct GNUNET_CRYPTO_EccPublicKey), &s_zone); - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Name: `%s' Zone: `%s' \n", s_name, GNUNET_short_h2s (&s_zone)); + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Name: `%s' Zone: `%s' \n", s_name, GNUNET_NAMESTORE_short_h2s (&s_zone)); nsh = GNUNET_NAMESTORE_connect (cfg); GNUNET_break (NULL != nsh); @@ -232,7 +253,9 @@ run (void *cls, GNUNET_break (s_name != NULL); /* create initial record */ - GNUNET_NAMESTORE_record_create (nsh, privkey, s_name, s_first_record, &create_first_cont, s_name); + GNUNET_NAMESTORE_record_put_by_authority (nsh, privkey, s_name, + 1, s_first_record, + &create_first_cont, s_name); }