#define HOSTKEYFILESIZE 914
+
/**
* Final status code.
*/
static int ret;
-static unsigned int create_hostkey;
-
-static unsigned int create_cfg;
+static char *create_hostkey;
-static int create_no;
+static int create_cfg;
-static char * create_cfg_template;
+static unsigned int create_no;
-static char * create_hostkey_file;
+static char *create_cfg_template;
static int
}
GNUNET_CONFIGURATION_destroy (cfg_new);
GNUNET_free (cur_file);
- if (fail == GNUNET_YES)
+ if (GNUNET_YES == fail)
break;
}
GNUNET_CONFIGURATION_destroy(cfg_tmpl);
static int
create_hostkeys (const unsigned int no)
{
+ struct GNUNET_TESTING_System *system;
+ struct GNUNET_PeerIdentity id;
struct GNUNET_DISK_FileHandle *fd;
- int cur = 0;
- uint64_t fs;
- uint64_t total_hostkeys;
- char *hostkey_data;
- char *hostkey_src_file;
- char *hostkey_dest_file;
-
- /* prepare hostkeys */
- if (create_hostkey_file == NULL)
- hostkey_src_file = "../../contrib/testing_hostkeys.dat";
- else
- {
- hostkey_src_file = create_hostkey_file;
- }
-
- if (GNUNET_YES != GNUNET_DISK_file_test (hostkey_src_file))
- {
- if (create_hostkey_file == NULL)
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR, _("Could not read hostkeys file, specify hostkey file with -H!\n"));
- else
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR, _("Specified hostkey file `%s' not found!\n"), create_hostkey_file);
- return 1;
- }
- else
- {
- /* Check hostkey file size, read entire thing into memory */
- fd = GNUNET_DISK_file_open (hostkey_src_file, GNUNET_DISK_OPEN_READ,
- GNUNET_DISK_PERM_NONE);
- if (NULL == fd)
- {
- GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_ERROR, "open", hostkey_src_file);
- return 1;
- }
-
- if (GNUNET_OK != GNUNET_DISK_file_size (hostkey_src_file, &fs, GNUNET_YES, GNUNET_YES))
- fs = 0;
-
- if (0 != (fs % HOSTKEYFILESIZE))
- {
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
- "File size %llu seems incorrect for hostkeys...\n", fs);
- }
- else
- {
- total_hostkeys = fs / HOSTKEYFILESIZE;
- hostkey_data = GNUNET_malloc_large (fs);
- GNUNET_assert (fs == GNUNET_DISK_file_read (fd, hostkey_data, fs));
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
- "Read %llu hostkeys from file\n", total_hostkeys);
- }
- GNUNET_assert (GNUNET_OK == GNUNET_DISK_file_close (fd));
- }
-
- while (cur < no)
- {
- GNUNET_asprintf (&hostkey_dest_file, "%04u-hostkey",cur);
- GNUNET_assert (GNUNET_OK ==
- GNUNET_DISK_directory_create_for_file (hostkey_dest_file));
- fd = GNUNET_DISK_file_open (hostkey_dest_file,
- GNUNET_DISK_OPEN_READWRITE |
- GNUNET_DISK_OPEN_CREATE,
- GNUNET_DISK_PERM_USER_READ |
- GNUNET_DISK_PERM_USER_WRITE);
- GNUNET_assert (fd != NULL);
- GNUNET_assert (HOSTKEYFILESIZE ==
- GNUNET_DISK_file_write (fd, &hostkey_data[cur * HOSTKEYFILESIZE], HOSTKEYFILESIZE));
- GNUNET_assert (GNUNET_OK == GNUNET_DISK_file_close (fd));
- GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, "transport-testing",
- "Wrote hostkey to file: `%s' \n", hostkey_dest_file);
- GNUNET_free (hostkey_dest_file);
- cur ++;
- }
-
- GNUNET_free (hostkey_data);
-
+ struct GNUNET_CRYPTO_RsaPrivateKey *pk;
+
+ system = GNUNET_TESTING_system_create ("testing", NULL);
+ pk = GNUNET_TESTING_hostkey_get (system, create_no, &id);
+ fd = GNUNET_DISK_file_open (create_hostkey,
+ GNUNET_DISK_OPEN_READWRITE |
+ GNUNET_DISK_OPEN_CREATE,
+ GNUNET_DISK_PERM_USER_READ |
+ GNUNET_DISK_PERM_USER_WRITE);
+ GNUNET_assert (fd != NULL);
+ GNUNET_assert (HOSTKEYFILESIZE ==
+ GNUNET_DISK_file_write (fd, pk, HOSTKEYFILESIZE));
+ GNUNET_assert (GNUNET_OK == GNUNET_DISK_file_close (fd));
+ GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, "transport-testing",
+ "Wrote hostkey to file: `%s'\n", create_hostkey);
+ GNUNET_CRYPTO_rsa_key_free (pk);
return 0;
}
+
/**
* Main function that will be run by the scheduler.
*
const struct GNUNET_CONFIGURATION_Handle *cfg)
{
/* main code here */
- if (create_cfg == GNUNET_YES)
+ if (GNUNET_YES == create_cfg)
{
if (create_no > 0)
{
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Creating %u configuration files based on template `%s'\n", create_no, create_cfg_template);
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ "Creating %u configuration files based on template `%s'\n", create_no, create_cfg_template);
ret = create_unique_cfgs (create_cfg_template, create_no);
}
else
ret = 1;
}
}
-
- if (create_hostkey == GNUNET_YES)
+ if (NULL != create_hostkey)
{
- if (create_no > 0)
- {
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Creating %u hostkeys \n", create_no);
- ret = create_hostkeys (create_no);
- }
- else
- {
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Missing arguments! \n");
- ret = 1;
- }
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Extracting hostkey %u\n", create_no);
+ ret = create_hostkeys (create_no);
}
-
GNUNET_free_non_null (create_cfg_template);
}
static const struct GNUNET_GETOPT_CommandLineOption options[] = {
{'C', "cfg", NULL, gettext_noop ("create unique configuration files"),
GNUNET_NO, &GNUNET_GETOPT_set_one, &create_cfg},
- {'k', "key", NULL, gettext_noop ("create hostkey files from pre-computed hostkey list"),
- GNUNET_NO, &GNUNET_GETOPT_set_one, &create_hostkey},
- {'H', "hostkeys", NULL, gettext_noop ("host key file"),
- GNUNET_YES, &GNUNET_GETOPT_set_string, &create_hostkey_file},
- {'n', "number", NULL, gettext_noop ("number of unique configuration files or hostkeys to create"),
+ {'k', "key", "FILENAME", gettext_noop ("extract hostkey file from pre-computed hostkey list"),
+ GNUNET_YES, &GNUNET_GETOPT_set_string, &create_hostkey},
+ {'n', "number", "NUMBER", gettext_noop ("number of unique configuration files to create, or number of the hostkey to extract"),
GNUNET_YES, &GNUNET_GETOPT_set_uint, &create_no},
- {'t', "template", NULL, gettext_noop ("configuration template"),
+ {'t', "template", "FILENAME", gettext_noop ("configuration template"),
GNUNET_YES, &GNUNET_GETOPT_set_string, &create_cfg_template},
GNUNET_GETOPT_OPTION_END
};