diff options
Diffstat (limited to 'src/util/gnunet-ecc.c')
-rw-r--r-- | src/util/gnunet-ecc.c | 208 |
1 files changed, 93 insertions, 115 deletions
diff --git a/src/util/gnunet-ecc.c b/src/util/gnunet-ecc.c index d2253337c..e7a170b81 100644 --- a/src/util/gnunet-ecc.c +++ b/src/util/gnunet-ecc.c @@ -31,7 +31,7 @@ /** * Number of characters a Base32-encoded public key requires. */ -#define KEY_STR_LEN sizeof(struct GNUNET_CRYPTO_EddsaPublicKey)*8/5+1 +#define KEY_STR_LEN sizeof (struct GNUNET_CRYPTO_EddsaPublicKey) * 8 / 5 + 1 /** * Flag for listing public key. @@ -91,7 +91,7 @@ create_keys (const char *fn, const char *prefix) if (NULL == (f = fopen (fn, "w+"))) { - fprintf (stderr, _("Failed to open `%s': %s\n"), fn, STRERROR (errno)); + fprintf (stderr, _ ("Failed to open `%s': %s\n"), fn, strerror (errno)); return; } if (NULL != prefix) @@ -116,7 +116,7 @@ create_keys (const char *fn, const char *prefix) * rest = 5%8 = 5 (bits) * mask = ~(2**(8 - 5) - 1) = ~(2**3 - 1) = ~(8 - 1) = ~b111 = b11111000 */ - mask = ~ ((int)pow (2, 8 - rest) - 1); + mask = ~((int) pow (2, 8 - rest) - 1); target_byte = ((unsigned char *) &target_pub)[n] & mask; } else @@ -126,21 +126,15 @@ create_keys (const char *fn, const char *prefix) } s = GNUNET_CRYPTO_eddsa_public_key_to_string (&target_pub); fprintf (stderr, - _("Generating %u keys like %s, please wait"), + _ ("Generating %u keys like %s, please wait"), make_keys, s); GNUNET_free (s); - fprintf (stderr, - "\nattempt %s [%u, %X]\n", - vanity, - (unsigned int) n, - mask); + fprintf (stderr, "\nattempt %s [%u, %X]\n", vanity, (unsigned int) n, mask); } else { - fprintf (stderr, - _("Generating %u keys, please wait"), - make_keys); + fprintf (stderr, _ ("Generating %u keys, please wait"), make_keys); /* Just so old (debian) versions of GCC calm down with the warnings. */ n = rest = target_byte = mask = 0; } @@ -150,8 +144,8 @@ create_keys (const char *fn, const char *prefix) fprintf (stderr, "."); if (NULL == (pk = GNUNET_CRYPTO_eddsa_key_create ())) { - GNUNET_break (0); - break; + GNUNET_break (0); + break; } if (NULL != prefix) { @@ -176,38 +170,32 @@ create_keys (const char *fn, const char *prefix) } } if (GNUNET_TESTING_HOSTKEYFILESIZE != - fwrite (pk, 1, - GNUNET_TESTING_HOSTKEYFILESIZE, f)) + fwrite (pk, 1, GNUNET_TESTING_HOSTKEYFILESIZE, f)) { fprintf (stderr, - _("\nFailed to write to `%s': %s\n"), - fn, - STRERROR (errno)); + _ ("\nFailed to write to `%s': %s\n"), + fn, + strerror (errno)); GNUNET_free (pk); break; } GNUNET_free (pk); } if (UINT_MAX == make_keys) - fprintf (stderr, - _("\nFinished!\n")); + fprintf (stderr, _ ("\nFinished!\n")); else - fprintf (stderr, - _("\nError, %u keys not generated\n"), - make_keys); + fprintf (stderr, _ ("\nError, %u keys not generated\n"), make_keys); fclose (f); } static void -print_hex (const char *msg, - const void *buf, - size_t size) +print_hex (const char *msg, const void *buf, size_t size) { printf ("%s: ", msg); for (size_t i = 0; i < size; i++) { - printf ("%02hhx", ((const uint8_t *)buf)[i]); + printf ("%02hhx", ((const uint8_t *) buf)[i]); } printf ("\n"); } @@ -230,7 +218,8 @@ print_examples_ecdh () GNUNET_CRYPTO_ecdhe_key_get_public (dh_priv1, dh_pub1); GNUNET_CRYPTO_ecdhe_key_get_public (dh_priv2, dh_pub2); - GNUNET_assert (NULL != GNUNET_STRINGS_data_to_string (dh_priv1, 32, buf, 128)); + GNUNET_assert (NULL != + GNUNET_STRINGS_data_to_string (dh_priv1, 32, buf, 128)); printf ("ECDHE key 1:\n"); printf ("private: %s\n", buf); print_hex ("private(hex)", dh_priv1, sizeof *dh_priv1); @@ -238,7 +227,8 @@ print_examples_ecdh () printf ("public: %s\n", buf); print_hex ("public(hex)", dh_pub1, sizeof *dh_pub1); - GNUNET_assert (NULL != GNUNET_STRINGS_data_to_string (dh_priv2, 32, buf, 128)); + GNUNET_assert (NULL != + GNUNET_STRINGS_data_to_string (dh_priv2, 32, buf, 128)); printf ("ECDHE key 2:\n"); printf ("private: %s\n", buf); print_hex ("private(hex)", dh_priv2, sizeof *dh_priv2); @@ -246,7 +236,8 @@ print_examples_ecdh () printf ("public: %s\n", buf); print_hex ("public(hex)", dh_pub2, sizeof *dh_pub2); - GNUNET_assert (GNUNET_OK == GNUNET_CRYPTO_ecc_ecdh (dh_priv1, dh_pub2, &hash)); + GNUNET_assert (GNUNET_OK == + GNUNET_CRYPTO_ecc_ecdh (dh_priv1, dh_pub2, &hash)); GNUNET_assert (NULL != GNUNET_STRINGS_data_to_string (&hash, 64, buf, 128)); printf ("ECDH shared secret: %s\n", buf); @@ -282,56 +273,39 @@ print_key (const char *filename) unsigned int c; ssize_t sret; - if (GNUNET_YES != - GNUNET_DISK_file_test (filename)) + if (GNUNET_YES != GNUNET_DISK_file_test (filename)) { - fprintf (stderr, - _("Hostkeys file `%s' not found\n"), - filename); + fprintf (stderr, _ ("Hostkeys file `%s' not found\n"), filename); return; } /* Check hostkey file size, read entire thing into memory */ if (GNUNET_OK != - GNUNET_DISK_file_size (filename, - &fs, - GNUNET_YES, - GNUNET_YES)) + GNUNET_DISK_file_size (filename, &fs, GNUNET_YES, GNUNET_YES)) fs = 0; if (0 == fs) { - fprintf (stderr, - _("Hostkeys file `%s' is empty\n"), - filename); - return; /* File is empty */ + fprintf (stderr, _ ("Hostkeys file `%s' is empty\n"), filename); + return; /* File is empty */ } if (0 != (fs % GNUNET_TESTING_HOSTKEYFILESIZE)) { - fprintf (stderr, - _("Incorrect hostkey file format: %s\n"), - filename); + fprintf (stderr, _ ("Incorrect hostkey file format: %s\n"), filename); return; } fd = GNUNET_DISK_file_open (filename, - GNUNET_DISK_OPEN_READ, - GNUNET_DISK_PERM_NONE); + GNUNET_DISK_OPEN_READ, + GNUNET_DISK_PERM_NONE); if (NULL == fd) { - GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_ERROR, - "open", - filename); + GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_ERROR, "open", filename); return; } hostkeys_data = GNUNET_malloc (fs); - sret = GNUNET_DISK_file_read (fd, - hostkeys_data, - fs); - if ( (sret < 0) || - (fs != (size_t) sret) ) + sret = GNUNET_DISK_file_read (fd, hostkeys_data, fs); + if ((sret < 0) || (fs != (size_t) sret)) { - fprintf (stderr, - _("Could not read hostkey file: %s\n"), - filename); + fprintf (stderr, _ ("Could not read hostkey file: %s\n"), filename); GNUNET_free (hostkeys_data); GNUNET_DISK_file_close (fd); return; @@ -344,8 +318,8 @@ print_key (const char *filename) for (c = 0; (c < total_hostkeys) && (c < list_keys_count); c++) { GNUNET_memcpy (&private_key, - hostkeys_data + (c * GNUNET_TESTING_HOSTKEYFILESIZE), - GNUNET_TESTING_HOSTKEYFILESIZE); + hostkeys_data + (c * GNUNET_TESTING_HOSTKEYFILESIZE), + GNUNET_TESTING_HOSTKEYFILESIZE); GNUNET_CRYPTO_eddsa_key_get_public (&private_key, &public_key); hostkey_str = GNUNET_CRYPTO_eddsa_public_key_to_string (&public_key); if (NULL != hostkey_str) @@ -377,7 +351,7 @@ run (void *cls, (void) cls; (void) cfgfile; (void) cfg; - + if (print_examples_flag) { print_examples (); @@ -385,9 +359,7 @@ run (void *cls, } if (NULL == args[0]) { - FPRINTF (stderr, - "%s", - _("No hostkey file specified on command line\n")); + fprintf (stderr, "%s", _ ("No hostkey file specified on command line\n")); return; } if (list_keys) @@ -407,12 +379,12 @@ run (void *cls, struct GNUNET_CRYPTO_EddsaPrivateKey pk; struct GNUNET_CRYPTO_EddsaPublicKey pub; - keyfile = GNUNET_DISK_file_open (args[0], GNUNET_DISK_OPEN_READ, + keyfile = GNUNET_DISK_file_open (args[0], + GNUNET_DISK_OPEN_READ, GNUNET_DISK_PERM_NONE); if (NULL == keyfile) return; - while (sizeof (pk) == - GNUNET_DISK_file_read (keyfile, &pk, sizeof (pk))) + while (sizeof (pk) == GNUNET_DISK_file_read (keyfile, &pk, sizeof (pk))) { GNUNET_CRYPTO_eddsa_key_get_public (&pk, &pub); if (print_public_key_hex) @@ -422,19 +394,18 @@ run (void *cls, else if (print_public_key) { str = GNUNET_CRYPTO_eddsa_public_key_to_string (&pub); - FPRINTF (stdout, "%s\n", str); + fprintf (stdout, "%s\n", str); GNUNET_free (str); } else if (print_private_key) { str = GNUNET_CRYPTO_eddsa_private_key_to_string (&pk); - FPRINTF (stdout, "%s\n", str); + fprintf (stdout, "%s\n", str); GNUNET_free (str); } } GNUNET_DISK_file_close (keyfile); } - } @@ -446,59 +417,66 @@ run (void *cls, * @return 0 ok, 1 on error */ int -main (int argc, - char *const *argv) +main (int argc, char *const *argv) { - struct GNUNET_GETOPT_CommandLineOption options[] = { - GNUNET_GETOPT_option_flag ('i', - "iterate", - gettext_noop ("list keys included in a file (for testing)"), - &list_keys), - GNUNET_GETOPT_option_uint ('e', - "end=", - "COUNT", - gettext_noop ("number of keys to list included in a file (for testing)"), - &list_keys_count), - GNUNET_GETOPT_option_uint ('g', - "generate-keys", - "COUNT", - gettext_noop ("create COUNT public-private key pairs (for testing)"), - &make_keys), - GNUNET_GETOPT_option_flag ('p', - "print-public-key", - gettext_noop ("print the public key in ASCII format"), - &print_public_key), - GNUNET_GETOPT_option_flag ('P', - "print-private-key", - gettext_noop ("print the private key in ASCII format"), - &print_private_key), - GNUNET_GETOPT_option_flag ('x', - "print-hex", - gettext_noop ("print the public key in HEX format"), - &print_public_key_hex), - GNUNET_GETOPT_option_flag ('E', - "examples", - gettext_noop ("print examples of ECC operations (used for compatibility testing)"), - &print_examples_flag), - GNUNET_GETOPT_OPTION_END - }; + struct GNUNET_GETOPT_CommandLineOption options[] = + {GNUNET_GETOPT_option_flag ('i', + "iterate", + gettext_noop ( + "list keys included in a file (for testing)"), + &list_keys), + GNUNET_GETOPT_option_uint ( + 'e', + "end=", + "COUNT", + gettext_noop ("number of keys to list included in a file (for testing)"), + &list_keys_count), + GNUNET_GETOPT_option_uint ( + 'g', + "generate-keys", + "COUNT", + gettext_noop ("create COUNT public-private key pairs (for testing)"), + &make_keys), + GNUNET_GETOPT_option_flag ('p', + "print-public-key", + gettext_noop ( + "print the public key in ASCII format"), + &print_public_key), + GNUNET_GETOPT_option_flag ('P', + "print-private-key", + gettext_noop ( + "print the private key in ASCII format"), + &print_private_key), + GNUNET_GETOPT_option_flag ('x', + "print-hex", + gettext_noop ( + "print the public key in HEX format"), + &print_public_key_hex), + GNUNET_GETOPT_option_flag ( + 'E', + "examples", + gettext_noop ( + "print examples of ECC operations (used for compatibility testing)"), + &print_examples_flag), + GNUNET_GETOPT_OPTION_END}; int ret; list_keys_count = UINT32_MAX; - if (GNUNET_OK != - GNUNET_STRINGS_get_utf8_args (argc, argv, - &argc, &argv)) + if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv)) return 2; ret = (GNUNET_OK == - GNUNET_PROGRAM_run (argc, + GNUNET_PROGRAM_run (argc, argv, "gnunet-ecc [OPTIONS] keyfile [VANITY_PREFIX]", - gettext_noop ("Manipulate GNUnet private ECC key files"), - options, + gettext_noop ( + "Manipulate GNUnet private ECC key files"), + options, &run, - NULL)) ? 0 : 1; - GNUNET_free ((void*) argv); + NULL)) + ? 0 + : 1; + GNUNET_free ((void *) argv); return ret; } |