- 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);
-
+ (void) GNUNET_DISK_directory_create_for_file (create_hostkey);
+ 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);
+ pkb = GNUNET_CRYPTO_rsa_encode_key (pk);
+ GNUNET_assert (HOSTKEYFILESIZE ==
+ GNUNET_DISK_file_write (fd, pkb, ntohs (pkb->len)));
+ 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_free (pkb);
+ GNUNET_CRYPTO_rsa_key_free (pk);
+ GNUNET_TESTING_system_destroy (system, GNUNET_YES);