gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-exchange] branch master updated: -simplify: nonce no longer hashe


From: gnunet
Subject: [taler-exchange] branch master updated: -simplify: nonce no longer hashed
Date: Fri, 11 Feb 2022 18:00:22 +0100

This is an automated email from the git hooks/post-receive script.

grothoff pushed a commit to branch master
in repository exchange.

The following commit(s) were added to refs/heads/master by this push:
     new 3b1e742d -simplify: nonce no longer hashed
3b1e742d is described below

commit 3b1e742dde4c386b38fc77147127b4bf6119d9e5
Author: Christian Grothoff <christian@grothoff.org>
AuthorDate: Fri Feb 11 18:00:20 2022 +0100

    -simplify: nonce no longer hashed
---
 src/exchange/taler-exchange-httpd_keys.c           |  2 --
 src/exchange/taler-exchange-httpd_recoup-refresh.c | 12 ------------
 src/exchange/taler-exchange-httpd_recoup.c         | 12 ------------
 src/exchangedb/test_exchangedb.c                   |  2 +-
 src/lib/exchange_api_link.c                        | 15 ---------------
 src/lib/exchange_api_recoup.c                      | 19 -------------------
 src/lib/exchange_api_recoup_refresh.c              | 21 ---------------------
 src/util/crypto.c                                  | 22 ++--------------------
 8 files changed, 3 insertions(+), 102 deletions(-)

diff --git a/src/exchange/taler-exchange-httpd_keys.c 
b/src/exchange/taler-exchange-httpd_keys.c
index bf55b102..e5a54447 100644
--- a/src/exchange/taler-exchange-httpd_keys.c
+++ b/src/exchange/taler-exchange-httpd_keys.c
@@ -874,7 +874,6 @@ helper_rsa_cb (
               GNUNET_STRINGS_relative_time_to_string (validity_duration,
                                                       GNUNET_NO));
   key_generation++;
-  // FIXME: wait for sync?
   TEH_resume_keys_requests (false);
   hd = GNUNET_CONTAINER_multihashmap_get (hs->rsa_keys,
                                           &h_rsa->hash);
@@ -956,7 +955,6 @@ helper_cs_cb (
               GNUNET_STRINGS_relative_time_to_string (validity_duration,
                                                       GNUNET_NO));
   key_generation++;
-  // FIXME: wait for sync?
   TEH_resume_keys_requests (false);
   hd = GNUNET_CONTAINER_multihashmap_get (hs->cs_keys,
                                           &h_cs->hash);
diff --git a/src/exchange/taler-exchange-httpd_recoup-refresh.c 
b/src/exchange/taler-exchange-httpd_recoup-refresh.c
index 6089aec4..3e058894 100644
--- a/src/exchange/taler-exchange-httpd_recoup-refresh.c
+++ b/src/exchange/taler-exchange-httpd_recoup-refresh.c
@@ -174,7 +174,6 @@ verify_and_execute_recoup_refresh (
   const struct TALER_CoinPublicInfo *coin,
   const struct TALER_ExchangeWithdrawValues *exchange_vals,
   const union TALER_DenominationBlindingKeyP *coin_bks,
-  const struct TALER_CsNonce *nonce,
   const struct TALER_CoinSpendSignatureP *coin_sig)
 {
   struct RecoupContext pc;
@@ -264,9 +263,6 @@ verify_and_execute_recoup_refresh (
         TALER_EC_EXCHANGE_RECOUP_REFRESH_BLINDING_FAILED,
         NULL);
     }
-    if (TALER_DENOMINATION_CS == blinded_planchet.cipher)
-      blinded_planchet.details.cs_blinded_planchet.nonce
-        = *nonce;
     TALER_coin_ev_hash (&blinded_planchet,
                         &coin->denom_pub_hash,
                         &h_blind);
@@ -364,7 +360,6 @@ TEH_handler_recoup_refresh (struct MHD_Connection 
*connection,
   union TALER_DenominationBlindingKeyP coin_bks;
   struct TALER_CoinSpendSignatureP coin_sig;
   struct TALER_ExchangeWithdrawValues exchange_vals;
-  struct TALER_CsNonce nonce;
   struct GNUNET_JSON_Specification spec[] = {
     GNUNET_JSON_spec_fixed_auto ("denom_pub_hash",
                                  &coin.denom_pub_hash),
@@ -376,18 +371,12 @@ TEH_handler_recoup_refresh (struct MHD_Connection 
*connection,
                                  &coin_bks),
     GNUNET_JSON_spec_fixed_auto ("coin_sig",
                                  &coin_sig),
-    GNUNET_JSON_spec_mark_optional (
-      GNUNET_JSON_spec_fixed_auto ("cs-nonce",
-                                   &nonce)),
     GNUNET_JSON_spec_end ()
   };
 
   memset (&coin,
           0,
           sizeof (coin));
-  memset (&nonce,
-          0,
-          sizeof (nonce));
   coin.coin_pub = *coin_pub;
   ret = TALER_MHD_parse_json_data (connection,
                                    root,
@@ -403,7 +392,6 @@ TEH_handler_recoup_refresh (struct MHD_Connection 
*connection,
                                              &coin,
                                              &exchange_vals,
                                              &coin_bks,
-                                             &nonce,
                                              &coin_sig);
     GNUNET_JSON_parse_free (spec);
     return res;
diff --git a/src/exchange/taler-exchange-httpd_recoup.c 
b/src/exchange/taler-exchange-httpd_recoup.c
index 0208d45a..f4e426fb 100644
--- a/src/exchange/taler-exchange-httpd_recoup.c
+++ b/src/exchange/taler-exchange-httpd_recoup.c
@@ -177,7 +177,6 @@ verify_and_execute_recoup (
   const struct TALER_CoinPublicInfo *coin,
   const struct TALER_ExchangeWithdrawValues *exchange_vals,
   const union TALER_DenominationBlindingKeyP *coin_bks,
-  const struct TALER_CsNonce *nonce,
   const struct TALER_CoinSpendSignatureP *coin_sig)
 {
   struct RecoupContext pc;
@@ -269,9 +268,6 @@ verify_and_execute_recoup (
         TALER_EC_EXCHANGE_RECOUP_BLINDING_FAILED,
         NULL);
     }
-    if (TALER_DENOMINATION_CS == blinded_planchet.cipher)
-      blinded_planchet.details.cs_blinded_planchet.nonce
-        = *nonce;
     if (GNUNET_OK !=
         TALER_coin_ev_hash (&blinded_planchet,
                             &coin->denom_pub_hash,
@@ -377,7 +373,6 @@ TEH_handler_recoup (struct MHD_Connection *connection,
   union TALER_DenominationBlindingKeyP coin_bks;
   struct TALER_CoinSpendSignatureP coin_sig;
   struct TALER_ExchangeWithdrawValues exchange_vals;
-  struct TALER_CsNonce nonce;
   struct GNUNET_JSON_Specification spec[] = {
     GNUNET_JSON_spec_fixed_auto ("denom_pub_hash",
                                  &coin.denom_pub_hash),
@@ -389,18 +384,12 @@ TEH_handler_recoup (struct MHD_Connection *connection,
                                  &coin_bks),
     GNUNET_JSON_spec_fixed_auto ("coin_sig",
                                  &coin_sig),
-    GNUNET_JSON_spec_mark_optional (
-      GNUNET_JSON_spec_fixed_auto ("cs-nonce",
-                                   &nonce)),
     GNUNET_JSON_spec_end ()
   };
 
   memset (&coin,
           0,
           sizeof (coin));
-  memset (&nonce,
-          0,
-          sizeof (nonce));
   coin.coin_pub = *coin_pub;
   ret = TALER_MHD_parse_json_data (connection,
                                    root,
@@ -419,7 +408,6 @@ TEH_handler_recoup (struct MHD_Connection *connection,
                                      &coin,
                                      &exchange_vals,
                                      &coin_bks,
-                                     &nonce,
                                      &coin_sig);
     GNUNET_JSON_parse_free (spec);
     return res;
diff --git a/src/exchangedb/test_exchangedb.c b/src/exchangedb/test_exchangedb.c
index e290502c..d54b2c04 100644
--- a/src/exchangedb/test_exchangedb.c
+++ b/src/exchangedb/test_exchangedb.c
@@ -1352,7 +1352,7 @@ run (void *cls)
   struct TALER_DenominationPublicKey *new_denom_pubs = NULL;
   uint64_t reserve_out_serial_id;
   uint64_t melt_serial_id;
-  struct TALER_PlanchetSecretsP ps;
+  struct TALER_PlanchetMasterSecretP ps;
   union TALER_DenominationBlindingKeyP bks;
   struct TALER_ExchangeWithdrawValues alg_values = {
     /* RSA is simpler, and for the DB there is no real difference between
diff --git a/src/lib/exchange_api_link.c b/src/lib/exchange_api_link.c
index 2e3b01a6..6a904da1 100644
--- a/src/lib/exchange_api_link.c
+++ b/src/lib/exchange_api_link.c
@@ -169,21 +169,6 @@ parse_link_coin (const struct TALER_EXCHANGE_LinkHandle 
*lh,
 
     GNUNET_CRYPTO_eddsa_key_get_public (&lh->coin_priv.eddsa_priv,
                                         &old_coin_pub.eddsa_pub);
-    // FIXME-NEXT: this is probably the wrong 'ps'!
-    // However, the 'right' PS is not something the
-    // exchange could even give us. So probably we
-    // really need to change the derivation structure
-    // during refresh to derive the nonces differently
-    // and make /link possible!
-    /* FIXME: we cannot get the 'rms' here, and
-       if the TALER_coin_ev_hash() includes that 'nonce',
-       we are screwed on/link. */
-#if FIXME_OMIT
-    TALER_cs_refresh_nonce_derive (
-      &ps,
-      coin_idx,
-      &pd.blinded_planchet.details.cs_blinded_planchet.nonce);
-#endif
     TALER_coin_ev_hash (&pd.blinded_planchet,
                         &pd.denom_pub_hash,
                         &coin_envelope_hash);
diff --git a/src/lib/exchange_api_recoup.c b/src/lib/exchange_api_recoup.c
index 5ae0c55b..a3ba18af 100644
--- a/src/lib/exchange_api_recoup.c
+++ b/src/lib/exchange_api_recoup.c
@@ -329,25 +329,6 @@ TALER_EXCHANGE_recoup (struct TALER_EXCHANGE_Handle 
*exchange,
                                 &coin_sig),
     GNUNET_JSON_pack_data_auto ("coin_blind_key_secret",
                                 &bks));
-  if (TALER_DENOMINATION_CS == denom_sig->cipher)
-  {
-    struct TALER_CsNonce nonce;
-
-    // FIXME: add this to the spec!
-    /* NOTE: this is not elegant, and as per the note in TALER_coin_ev_hash()
-       it is not strictly clear that the nonce is needed. Best case would be
-       to find a way to include it more 'naturally' somehow, for example with
-       the variant union version of bks! */
-    TALER_cs_withdraw_nonce_derive (ps,
-                                    &nonce);
-    GNUNET_assert (
-      0 ==
-      json_object_set_new (recoup_obj,
-                           "cs-nonce",
-                           GNUNET_JSON_from_data_auto (
-                             &nonce)));
-  }
-
   {
     char pub_str[sizeof (struct TALER_CoinSpendPublicKeyP) * 2];
     char *end;
diff --git a/src/lib/exchange_api_recoup_refresh.c 
b/src/lib/exchange_api_recoup_refresh.c
index 44b117b0..51749706 100644
--- a/src/lib/exchange_api_recoup_refresh.c
+++ b/src/lib/exchange_api_recoup_refresh.c
@@ -333,27 +333,6 @@ TALER_EXCHANGE_recoup_refresh (
                                 &coin_sig),
     GNUNET_JSON_pack_data_auto ("coin_blind_key_secret",
                                 &bks));
-
-  if (TALER_DENOMINATION_CS == denom_sig->cipher)
-  {
-    struct TALER_CsNonce nonce;
-
-    // FIXME: add this to the spec!
-    /* NOTE: this is not elegant, and as per the note in TALER_coin_ev_hash()
-       it is not strictly clear that the nonce is needed. Best case would be
-       to find a way to include it more 'naturally' somehow, for example with
-       the variant union version of bks! */
-    TALER_cs_refresh_nonce_derive (rms,
-                                   idx,
-                                   &nonce);
-    GNUNET_assert (
-      0 ==
-      json_object_set_new (recoup_obj,
-                           "cs-nonce",
-                           GNUNET_JSON_from_data_auto (
-                             &nonce)));
-  }
-
   {
     char pub_str[sizeof (struct TALER_CoinSpendPublicKeyP) * 2];
     char *end;
diff --git a/src/util/crypto.c b/src/util/crypto.c
index 49d5bcab..1b486d40 100644
--- a/src/util/crypto.c
+++ b/src/util/crypto.c
@@ -518,26 +518,8 @@ TALER_coin_ev_hash (const struct TALER_BlindedPlanchet 
*blinded_planchet,
       blinded_planchet->details.rsa_blinded_planchet.blinded_msg_size);
     break;
   case TALER_DENOMINATION_CS:
-    /* NOTE: it is not obvious that we need to hash the
-       nonce here; if we omit this, we could skip sending
-       the nonce in the /recoup protocol. OTOH, there is
-       certainly no further harm (beyond the extra
-       bytes send on /recoup) from including it.
-       ****
-       UPDATE: hashing 'nonce' here kills link, as
-       link does not HAVE the 'rms' to derive the nonce
-       from! (see FIXME_OMIT in exchange_api_link.c)
-       ***
-       => either figure elegant way to resolve this,
-       or omit hashing nonce and ALSO skip sending
-       nonce in /recoup!
-    */
-#if FIXME_OMIT
-    GNUNET_CRYPTO_hash_context_read (
-      hash_context,
-      &blinded_planchet->details.cs_blinded_planchet.nonce,
-      sizeof (blinded_planchet->details.cs_blinded_planchet.nonce));
-#endif
+    // FIXME: simplifies once 'nonce' is removed
+    // from TALER_BlindedCsPlanchet!
     GNUNET_CRYPTO_hash_context_read (
       hash_context,
       &blinded_planchet->details.cs_blinded_planchet.c[0],

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]