also check for master public key consistency in taler-exchange-keyup

This commit is contained in:
Christian Grothoff 2019-06-26 21:19:07 +02:00
parent 258263a510
commit e042792944
No known key found for this signature in database
GPG Key ID: 939E6BE1E29FC3CC

View File

@ -1160,8 +1160,8 @@ revoke_denomination (const struct GNUNET_HashCode *hc)
}
if (GNUNET_OK !=
TALER_EXCHANGEDB_denomination_key_revoke (basedir,
hc,
&master_priv))
hc,
&master_priv))
{
GNUNET_free (basedir);
GNUNET_break (0);
@ -1265,6 +1265,48 @@ run (void *cls,
GNUNET_CRYPTO_eddsa_key_get_public (&master_priv.eddsa_priv,
&master_public_key.eddsa_pub);
/* Check master public key in configuration matches our
master private key */
{
char *masters;
struct TALER_MasterPublicKeyP mpub_cfg;
if (GNUNET_OK !=
GNUNET_CONFIGURATION_get_value_string (cfg,
"exchange",
"MASTER_PUBLIC_KEY",
&masters))
{
fprintf (stderr,
"Master public key option missing in configuration\n");
global_ret = 1;
return;
}
if (GNUNET_OK !=
GNUNET_STRINGS_string_to_data (masters,
strlen (masters),
&mpub_cfg,
sizeof (mpub_cfg)))
{
fprintf (stderr,
"Master public key `%s' in configuration is not a valid key\n",
masters);
GNUNET_free (masters);
global_ret = 1;
return;
}
if (0 != GNUNET_memcmp (&master_public_key,
&mpub_cfg))
{
fprintf (stderr,
"Master public key `%s' in configuration does not match our master private key!\n",
masters);
GNUNET_free (masters);
global_ret = 1;
return;
}
GNUNET_free (masters);
}
if (NULL != auditorrequestfile)
{
auditor_output_file = FOPEN (auditorrequestfile,