- if (GNUNET_YES == GNUNET_DISK_file_test (keyfile))
- {
- private_key = GNUNET_CRYPTO_rsa_key_create_from_file (keyfile);
- GNUNET_CRYPTO_rsa_key_get_public (private_key, &pkey);
- GNUNET_CRYPTO_short_hash(&pkey,
- sizeof(struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded),
- &private_zone);
- GNUNET_CRYPTO_short_hash_to_enc (&private_zone, &zonename);
- if (!raw)
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
- "Using private zone: %s!\n", &zonename);
- }
- else
- {
- /* FIXME: shouldn't we just create the private key in this case? */
- if (!raw)
- fprintf (stderr,
- _("Key file `%s' for private zone does not exist!\n"),
- keyfile);
-
- }
- GNUNET_free(keyfile);
- if (NULL != private_key)
- {
- GNUNET_CRYPTO_rsa_key_free (private_key);
- private_key = NULL;
- }
+ private_key = GNUNET_CRYPTO_rsa_key_create_from_file (keyfile);
+ GNUNET_CRYPTO_rsa_key_get_public (private_key, &pkey);
+ private_zone = GNUNET_malloc (sizeof (struct GNUNET_CRYPTO_ShortHashCode));
+ GNUNET_CRYPTO_short_hash(&pkey,
+ sizeof(struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded),
+ private_zone);
+ GNUNET_CRYPTO_short_hash_to_enc (private_zone, &zonename);
+ if (! raw)
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ "Using private zone: %s!\n", &zonename);
+ GNUNET_CRYPTO_rsa_key_free (private_key);