summaryrefslogtreecommitdiff
path: root/src/util/gnunet-ecc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/util/gnunet-ecc.c')
-rw-r--r--src/util/gnunet-ecc.c208
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;
}