From 19e0b66f8780f97f15f0a40a739eb277244750f1 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Wed, 26 Jun 2019 23:58:48 +0200 Subject: first steps on #5777 --- src/exchange/taler-exchange-httpd_keystate.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/exchange/taler-exchange-httpd_keystate.c') diff --git a/src/exchange/taler-exchange-httpd_keystate.c b/src/exchange/taler-exchange-httpd_keystate.c index 24eef36ea..7d67b8768 100644 --- a/src/exchange/taler-exchange-httpd_keystate.c +++ b/src/exchange/taler-exchange-httpd_keystate.c @@ -1907,6 +1907,9 @@ TEH_KS_denomination_key_lookup_by_hash (const struct TEH_KS_StateHandle *key_sta map = (TEH_KS_DKU_PAYBACK == use) ? key_state->revoked_map : key_state->denomkey_map; dki = GNUNET_CONTAINER_multihashmap_get (map, denom_pub_hash); + if ( (NULL == dki) && (TEH_KS_DKU_ZOMBIE == use)) + dki = GNUNET_CONTAINER_multihashmap_get (key_state->revoked_map, + denom_pub_hash); if (NULL == dki) return NULL; now = GNUNET_TIME_absolute_get (); @@ -1958,6 +1961,16 @@ TEH_KS_denomination_key_lookup_by_hash (const struct TEH_KS_StateHandle *key_sta return NULL; } break; + case TEH_KS_DKU_ZOMBIE: + if (now.abs_value_us > + GNUNET_TIME_absolute_ntoh (dki->issue.properties.expire_legal).abs_value_us) + { + GNUNET_log (GNUNET_ERROR_TYPE_INFO, + "Not returning DKI for %s, as legal expiration of coin has passed\n", + GNUNET_h2s (denom_pub_hash)); + return NULL; + } + break; } return dki; } -- cgit v1.2.3