diff options
author | Christian Grothoff <christian@grothoff.org> | 2021-11-17 23:02:05 +0100 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2021-11-17 23:02:05 +0100 |
commit | b61f601028f38a6c56aa00f171fa20605ca8c663 (patch) | |
tree | d433a1e721677b1445151ad41acd0ca29914adc0 /src/lib/exchange_api_management_get_keys.c | |
parent | 2078dd1bfbf942d36923d24836a29e40ff24989a (diff) | |
download | exchange-b61f601028f38a6c56aa00f171fa20605ca8c663.tar.xz |
-use different hash for RSA vs. Denomination hashing
Diffstat (limited to 'src/lib/exchange_api_management_get_keys.c')
-rw-r--r-- | src/lib/exchange_api_management_get_keys.c | 31 |
1 files changed, 24 insertions, 7 deletions
diff --git a/src/lib/exchange_api_management_get_keys.c b/src/lib/exchange_api_management_get_keys.c index 980836792..5e6024f27 100644 --- a/src/lib/exchange_api_management_get_keys.c +++ b/src/lib/exchange_api_management_get_keys.c @@ -219,20 +219,37 @@ handle_ok (struct TALER_EXCHANGE_ManagementGetKeysHandle *gh, TALER_denom_pub_hash (&denom_key->key, &h_denom_pub); - if (GNUNET_OK != - TALER_exchange_secmod_denom_verify (&h_denom_pub, - section_name, - denom_key->valid_from, - duration, - &fk.denom_secmod_public_key, - &denom_key->denom_secmod_sig)) + switch (denom_key->key.cipher) { + case TALER_DENOMINATION_RSA: + { + struct TALER_RsaPubHashP h_rsa; + + TALER_rsa_pub_hash (denom_key->key.details.rsa_public_key, + &h_rsa); + if (GNUNET_OK != + TALER_exchange_secmod_rsa_verify (&h_rsa, + section_name, + denom_key->valid_from, + duration, + &fk.denom_secmod_public_key, + &denom_key->denom_secmod_sig)) + { + GNUNET_break_op (0); + ok = false; + break; + } + } + break; + default: GNUNET_break_op (0); ok = false; break; } } GNUNET_JSON_parse_free (spec); + if (! ok) + break; } if (ok) { |