#include "namestore.h"
#include "gnunet_signatures.h"
-#define VERBOSE GNUNET_NO
-
#define RECORDS 5
+
#define TEST_RECORD_TYPE 1234
+
#define TEST_RECORD_DATALEN 123
+
#define TEST_RECORD_DATA 'a'
#define TEST_REMOVE_RECORD_TYPE 4321
+
#define TEST_REMOVE_RECORD_DATALEN 255
+
#define TEST_REMOVE_RECORD_DATA 'b'
+
static struct GNUNET_CRYPTO_RsaPrivateKey * privkey;
+
static struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded pubkey;
-struct GNUNET_CRYPTO_RsaSignature s_signature;
-struct GNUNET_NAMESTORE_RecordData *s_rd;
+
+static struct GNUNET_NAMESTORE_RecordData *s_rd;
+
static char *s_name;
static int res;
+
static struct GNUNET_NAMESTORE_RecordData *
create_record (int count)
{
- int c;
+ unsigned int c;
struct GNUNET_NAMESTORE_RecordData * rd;
- rd = GNUNET_malloc (count * sizeof (struct GNUNET_NAMESTORE_RecordData));
- for (c = 0; c < RECORDS; c++)
+ rd = GNUNET_malloc (count * sizeof (struct GNUNET_NAMESTORE_RecordData));
+ for (c = 0; c < count; c++)
{
- rd[c].expiration = GNUNET_TIME_absolute_get();
- 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);
+ rd[c].expiration_time = GNUNET_TIME_absolute_get().abs_value;
+ 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, char *const *args, const char *cfgfile,
const struct GNUNET_CONFIGURATION_Handle *cfg)
struct GNUNET_CRYPTO_RsaSignature * signature;
/* load privat key */
- privkey = GNUNET_CRYPTO_rsa_key_create_from_file("hostkey");
+ 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_rsa_key_create_from_file(hostkey_file);
+ GNUNET_free (hostkey_file);
GNUNET_assert (privkey != NULL);
+ struct GNUNET_TIME_Absolute expire = GNUNET_TIME_absolute_get();
/* get public key */
GNUNET_CRYPTO_rsa_key_get_public(privkey, &pubkey);
int res_w;
/* create record */
- s_name = "dummy.dummy.gnunet";
+ s_name = "DUMMY.dummy.gnunet";
s_rd = create_record (RECORDS);
- signature = GNUNET_NAMESTORE_create_signature (privkey, s_name, s_rd, RECORDS);
+ signature = GNUNET_NAMESTORE_create_signature (privkey, expire, s_name, s_rd, RECORDS);
GNUNET_assert (signature != NULL);
- res_c = GNUNET_NAMESTORE_verify_signature(&pubkey, s_name, RECORDS, s_rd, signature);
+ res_c = GNUNET_NAMESTORE_verify_signature(&pubkey, expire, s_name, RECORDS, s_rd, signature);
GNUNET_break (res == GNUNET_OK);
GNUNET_free (signature);
- signature = GNUNET_NAMESTORE_create_signature (privkey, s_name, s_rd, RECORDS);
+ signature = GNUNET_NAMESTORE_create_signature (privkey, expire, s_name, s_rd, RECORDS);
GNUNET_break (signature != NULL);
- GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "FYI: The next warning is intended!\n");
- res_w = GNUNET_NAMESTORE_verify_signature(&pubkey, s_name, RECORDS - 1, s_rd, signature);
+ GNUNET_log_skip(1, GNUNET_NO);
+ res_w = GNUNET_NAMESTORE_verify_signature(&pubkey, expire, s_name, RECORDS - 1, s_rd, signature);
GNUNET_break (res_w == GNUNET_SYSERR);
GNUNET_free (signature);
}
-static int
-check ()
+
+int
+main (int argc, char *argv[])
{
- static char *const argv[] = { "test-namestore-api",
+ static char *const argvx[] = { "test-namestore-api",
"-c",
"test_namestore_api.conf",
-#if VERBOSE
- "-L", "DEBUG",
-#endif
NULL
};
static struct GNUNET_GETOPT_CommandLineOption options[] = {
};
res = 1;
- GNUNET_PROGRAM_run ((sizeof (argv) / sizeof (char *)) - 1, argv, "test-namestore-api",
+ GNUNET_PROGRAM_run ((sizeof (argvx) / sizeof (char *)) - 1, argvx, "test-namestore-api",
"nohelp", options, &run, &res);
return res;
}
-int
-main (int argc, char *argv[])
-{
- int ret;
-
- ret = check ();
-
- return ret;
-}
-
/* end of test_namestore_api_sign_verify.c */