X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Futil%2Fgnunet-rsa.c;h=ab4bf2cb0fe01ce876bdc3b2a97c3d808d58a619;hb=72c8645af31896829b674b575c5375706f362a30;hp=69b50010038dc5072265429a23df1a23fd22b3f4;hpb=b0ce623f7715cee2fe3cabb3a590572c70c39944;p=oweals%2Fgnunet.git diff --git a/src/util/gnunet-rsa.c b/src/util/gnunet-rsa.c index 69b500100..ab4bf2cb0 100644 --- a/src/util/gnunet-rsa.c +++ b/src/util/gnunet-rsa.c @@ -43,107 +43,6 @@ static int print_peer_identity; */ static int print_short_identity; -/** - * Use weak random number generator for key generation. - */ -static int weak_random; - -/** - * Option set to create a bunch of keys at once. - */ -static unsigned int make_keys; - -/** - * The private information of an RSA key pair. - * NOTE: this must match the definition in crypto_ksk.c and crypto_rsa.c! - */ -struct GNUNET_CRYPTO_RsaPrivateKey -{ - gcry_sexp_t sexp; -}; - - -#if 0 -/** - * Create a new private key. Caller must free return value. - * - * @return fresh private key - */ -struct GNUNET_CRYPTO_RsaPrivateKey * -GNUNET_CRYPTO_rsa_key_create () -{ - struct GNUNET_CRYPTO_RsaPrivateKey *ret; - gcry_sexp_t s_key; - gcry_sexp_t s_keyparam; - - GNUNET_assert (0 == - gcry_sexp_build (&s_keyparam, NULL, - "(genkey(rsa(nbits %d)(rsa-use-e 3:257)))", - HOSTKEY_LEN)); - GNUNET_assert (0 == gcry_pk_genkey (&s_key, s_keyparam)); - gcry_sexp_release (s_keyparam); -#if EXTRA_CHECKS - GNUNET_assert (0 == gcry_pk_testkey (s_key)); -#endif - ret = GNUNET_malloc (sizeof (struct GNUNET_CRYPTO_RsaPrivateKey)); - ret->sexp = s_key; - return ret; -} -#endif - - -/** - * Create a flat file with a large number of key pairs for testing. - */ -static void -create_keys (const char *fn) -{ - time_t start; - struct GNUNET_HashCode hc; - struct GNUNET_HashCode h2; - struct GNUNET_HashCode h3; - FILE *f; - struct GNUNET_CRYPTO_RsaPrivateKey *pk; - struct GNUNET_CRYPTO_RsaPrivateKeyBinaryEncoded *enc; - - start = time (NULL); - GNUNET_CRYPTO_hash (&start, sizeof (start), &hc); - if (NULL == (f = fopen (fn, "w+"))) - { - fprintf (stderr, - _("Failed to open `%s': %s\n"), - fn, - STRERROR (errno)); - return; - } - fprintf (stderr, - _("Generating %u keys, please wait"), - make_keys); - while (0 < make_keys--) - { - fprintf (stderr, - "."); - GNUNET_CRYPTO_hash (&make_keys, sizeof (make_keys), &h2); - GNUNET_CRYPTO_hash (&hc, sizeof (hc), &h3); - GNUNET_CRYPTO_hash_xor (&h2, &h3, &hc); - pk = GNUNET_CRYPTO_rsa_key_create_from_hash (&hc); - enc = GNUNET_CRYPTO_rsa_encode_key (pk); - if (htons (enc->len) != fwrite (enc, 1, htons (enc->len), f)) - { - fprintf (stderr, - _("\nFailed to write to `%s': %s\n"), - fn, - STRERROR (errno)); - break; - } - GNUNET_CRYPTO_rsa_key_free (pk); - } - if (0 == make_keys) - fprintf (stderr, - _("Finished!\n")); - fclose (f); -} - /** * Main function that will be run by the scheduler. @@ -166,13 +65,6 @@ run (void *cls, char *const *args, const char *cfgfile, fprintf (stderr, _("No hostkey file specified on command line\n")); return; } - if (0 != weak_random) - GNUNET_CRYPTO_random_disable_entropy_gathering (); - if (make_keys > 0) - { - create_keys (args[0]); - return; - } pk = GNUNET_CRYPTO_rsa_key_create_from_file (args[0]); if (NULL == pk) return; @@ -216,12 +108,9 @@ run (void *cls, char *const *args, const char *cfgfile, * @return 0 ok, 1 on error */ int -main (int argc, char *const *argv) +main (int argc, char *const*argv) { static const struct GNUNET_GETOPT_CommandLineOption options[] = { - { 'g', "generate-keys", "COUNT", - gettext_noop ("create COUNT public-private key pairs (for testing)"), - 1, &GNUNET_GETOPT_set_uint, &make_keys }, { 'p', "print-public-key", NULL, gettext_noop ("print the public key in ASCII format"), 0, &GNUNET_GETOPT_set_one, &print_public_key }, @@ -231,19 +120,19 @@ main (int argc, char *const *argv) { 's', "print-short-identity", NULL, gettext_noop ("print the short hash of the public key in ASCII format"), 0, &GNUNET_GETOPT_set_one, &print_short_identity }, - { 'w', "weak-random", NULL, - gettext_noop ("use insecure, weak random number generator for key generation (for testing only)"), - 0, &GNUNET_GETOPT_set_one, &weak_random }, GNUNET_GETOPT_OPTION_END }; + int ret; if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv)) return 2; - return (GNUNET_OK == - GNUNET_PROGRAM_run (argc, argv, "gnunet-rsa [OPTIONS] keyfile", - gettext_noop ("Manipulate GNUnet private RSA key files"), - options, &run, NULL)) ? 0 : 1; + ret = (GNUNET_OK == + GNUNET_PROGRAM_run (argc, argv, "gnunet-rsa [OPTIONS] keyfile", + gettext_noop ("Manipulate GNUnet private RSA key files"), + options, &run, NULL)) ? 0 : 1; + GNUNET_free ((void*) argv); + return ret; } /* end of gnunet-rsa.c */