gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] [taler-exchange] 01/04: expose blinding key in refresh-reve


From: gnunet
Subject: [GNUnet-SVN] [taler-exchange] 01/04: expose blinding key in refresh-reveal API in preparation for #5777
Date: Sun, 21 Jul 2019 20:15:20 +0200

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

grothoff pushed a commit to branch master
in repository exchange.

commit ad343059427a20ad091d384fc430b631feae70cc
Author: Christian Grothoff <address@hidden>
AuthorDate: Sun Jul 21 12:20:45 2019 +0200

    expose blinding key in refresh-reveal API in preparation for #5777
---
 src/include/taler_crypto_lib.h       | 21 ---------------------
 src/include/taler_exchange_service.h |  4 +---
 src/include/taler_testing_lib.h      |  8 ++++++--
 src/lib/exchange_api_refresh.c       | 19 +++++++------------
 src/lib/testing_api_cmd_refresh.c    |  5 +++--
 5 files changed, 17 insertions(+), 40 deletions(-)

diff --git a/src/include/taler_crypto_lib.h b/src/include/taler_crypto_lib.h
index 4024123b..7b9d932d 100644
--- a/src/include/taler_crypto_lib.h
+++ b/src/include/taler_crypto_lib.h
@@ -435,27 +435,6 @@ struct TALER_PlanchetSecretsP
 };
 
 
-/**
- * Header for serializations of coin-specific information about the fresh
- * coins we generate from refresh.  These are the secrets that arise during
- * planchet generation, which is the first stage of creating a new coin from
- * refresh.
- */
-struct TALER_RefreshPlanchetSecretsP
-{
-
-  /**
-   * Private key of the coin.
-   */
-  struct TALER_CoinSpendPrivateKeyP coin_priv;
-
-  /**
-   * XXX. See #5777~0014690 - need a solution for this first!
-   */
-  struct TALER_TransferPrivateKeyP transfer_priv;
-
-};
-
 GNUNET_NETWORK_STRUCT_END
 
 
diff --git a/src/include/taler_exchange_service.h 
b/src/include/taler_exchange_service.h
index eebbf6c5..7fc7a569 100644
--- a/src/include/taler_exchange_service.h
+++ b/src/include/taler_exchange_service.h
@@ -1356,9 +1356,7 @@ typedef void
                                          unsigned int http_status,
                                          enum TALER_ErrorCode ec,
                                          unsigned int num_coins,
-                                         /* TODO (#5777): possibly replace
-                                            by a `struct 
TALER_RefreshPlanchetSecretsP` */
-                                         const struct 
TALER_CoinSpendPrivateKeyP *coin_privs,
+                                         const struct TALER_PlanchetSecretsP 
*coin_privs,
                                          const struct 
TALER_DenominationSignature *sigs,
                                          const json_t *full_response);
 
diff --git a/src/include/taler_testing_lib.h b/src/include/taler_testing_lib.h
index a421cf43..beb28f7a 100644
--- a/src/include/taler_testing_lib.h
+++ b/src/include/taler_testing_lib.h
@@ -1950,8 +1950,6 @@ TALER_TESTING_get_trait_uint
 /**
  * Information about a fresh coin generated by the refresh
  * operation. FIXME: should go away from here!
- *
- * FIXME: should be renamed, easily confused with `struct TALER_FreshCoin`!
  */
 struct TALER_TESTING_FreshCoinData
 {
@@ -1973,6 +1971,12 @@ struct TALER_TESTING_FreshCoinData
    * Set (by the interpreter) to the coin's private key.
    */
   struct TALER_CoinSpendPrivateKeyP coin_priv;
+
+  /**
+   * The blinding key (needed for payback operations).
+   */
+  struct TALER_DenominationBlindingKeyP blinding_key;
+
 };
 
 
diff --git a/src/lib/exchange_api_refresh.c b/src/lib/exchange_api_refresh.c
index 853c702e..c12fd32d 100644
--- a/src/lib/exchange_api_refresh.c
+++ b/src/lib/exchange_api_refresh.c
@@ -1318,14 +1318,12 @@ struct TALER_EXCHANGE_RefreshRevealHandle
  *
  * @param rrh operation handle
  * @param json reply from the exchange
- * @param[out] coin_privs array of length `num_fresh_coins`, initialized to 
contain private keys
  * @param[out] sigs array of length `num_fresh_coins`, initialized to cointain 
RSA signatures
  * @return #GNUNET_OK on success, #GNUNET_SYSERR on errors
  */
 static int
 refresh_reveal_ok (struct TALER_EXCHANGE_RefreshRevealHandle *rrh,
                    const json_t *json,
-                   struct TALER_CoinSpendPrivateKeyP *coin_privs,
                    struct TALER_DenominationSignature *sigs)
 {
   json_t *jsona;
@@ -1405,7 +1403,6 @@ refresh_reveal_ok (struct 
TALER_EXCHANGE_RefreshRevealHandle *rrh,
       return GNUNET_SYSERR;
     }
     GNUNET_CRYPTO_rsa_signature_free (blind_sig);
-    coin_privs[i] = coin.coin_priv;
     sigs[i] = coin.sig;
   }
   GNUNET_JSON_parse_free (outer_spec);
@@ -1436,14 +1433,12 @@ handle_refresh_reveal_finished (void *cls,
     break;
   case MHD_HTTP_OK:
     {
-      struct TALER_CoinSpendPrivateKeyP coin_privs[rrh->md->num_fresh_coins];
       struct TALER_DenominationSignature sigs[rrh->md->num_fresh_coins];
       int ret;
 
       memset (sigs, 0, sizeof (sigs));
       ret = refresh_reveal_ok (rrh,
                                j,
-                               coin_privs,
                                sigs);
       if (GNUNET_OK != ret)
       {
@@ -1453,9 +1448,9 @@ handle_refresh_reveal_finished (void *cls,
       {
         rrh->reveal_cb (rrh->reveal_cb_cls,
                         MHD_HTTP_OK,
-                       TALER_EC_NONE,
+                        TALER_EC_NONE,
                         rrh->md->num_fresh_coins,
-                        coin_privs,
+                        rrh->md->fresh_coins[rrh->noreveal_index],
                         sigs,
                         j);
         rrh->reveal_cb = NULL;
@@ -1490,10 +1485,10 @@ handle_refresh_reveal_finished (void *cls,
   if (NULL != rrh->reveal_cb)
     rrh->reveal_cb (rrh->reveal_cb_cls,
                     response_code,
-                   TALER_JSON_get_error_code (j),
-                   0,
-                   NULL,
-                   NULL,
+                    TALER_JSON_get_error_code (j),
+                    0,
+                    NULL,
+                    NULL,
                     j);
   TALER_EXCHANGE_refresh_reveal_cancel (rrh);
 }
@@ -1616,7 +1611,7 @@ TALER_EXCHANGE_refresh_reveal (struct 
TALER_EXCHANGE_Handle *exchange,
                      json_array_append_new (link_sigs,
                                             GNUNET_JSON_from_data_auto 
(&link_sig)));
     }
-    
+
     GNUNET_free (pd.coin_ev);
   }
 
diff --git a/src/lib/testing_api_cmd_refresh.c 
b/src/lib/testing_api_cmd_refresh.c
index 155d30ce..71f3833f 100644
--- a/src/lib/testing_api_cmd_refresh.c
+++ b/src/lib/testing_api_cmd_refresh.c
@@ -289,7 +289,7 @@ reveal_cb (void *cls,
            unsigned int http_status,
            enum TALER_ErrorCode ec,
            unsigned int num_coins,
-           const struct TALER_CoinSpendPrivateKeyP *coin_privs,
+           const struct TALER_PlanchetSecretsP *coin_privs,
            const struct TALER_DenominationSignature *sigs,
            const json_t *full_response)
 {
@@ -358,7 +358,8 @@ reveal_cb (void *cls,
         TALER_TESTING_interpreter_fail (rrs->is);
         return;
       }
-      fc->coin_priv = coin_privs[i];
+      fc->coin_priv = coin_privs[i].coin_priv;
+      fc->blinding_key = coin_privs[i].blinding_key;
       fc->sig.rsa_signature = GNUNET_CRYPTO_rsa_signature_dup
         (sigs[i].rsa_signature);
     }

-- 
To stop receiving notification emails like this one, please contact
address@hidden.



reply via email to

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