[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-exchange] branch master updated: -refactor internal API to use ne
From: |
gnunet |
Subject: |
[taler-exchange] branch master updated: -refactor internal API to use new EncrptedContract struct where applicable |
Date: |
Sun, 05 Jun 2022 00:36:23 +0200 |
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 21a1c715 -refactor internal API to use new EncrptedContract struct
where applicable
21a1c715 is described below
commit 21a1c715ee2578b0cb7738a46117552674f0a294
Author: Christian Grothoff <christian@grothoff.org>
AuthorDate: Sun Jun 5 00:36:19 2022 +0200
-refactor internal API to use new EncrptedContract struct where applicable
---
src/exchange/taler-exchange-httpd_purses_create.c | 12 +----
src/exchange/taler-exchange-httpd_reserves_purse.c | 13 +----
src/exchangedb/plugin_exchangedb_postgres.c | 62 ++++++++--------------
src/include/taler_exchangedb_plugin.h | 18 ++-----
src/lib/exchange_api_purse_create_with_deposit.c | 5 +-
5 files changed, 33 insertions(+), 77 deletions(-)
diff --git a/src/exchange/taler-exchange-httpd_purses_create.c
b/src/exchange/taler-exchange-httpd_purses_create.c
index 65cd5d45..434984d8 100644
--- a/src/exchange/taler-exchange-httpd_purses_create.c
+++ b/src/exchange/taler-exchange-httpd_purses_create.c
@@ -369,13 +369,9 @@ create_transaction (void *cls,
}
/* 3) if present, persist contract */
in_conflict = true;
- // FIXME: combine econtract arguments into one!
qs = TEH_plugin->insert_contract (TEH_plugin->cls,
pcc->purse_pub,
- &pcc->econtract.contract_pub,
- pcc->econtract.econtract_size,
- pcc->econtract.econtract,
- &pcc->econtract.econtract_sig,
+ &pcc->econtract,
&in_conflict);
if (qs < 0)
{
@@ -393,14 +389,10 @@ create_transaction (void *cls,
struct TALER_EncryptedContract econtract;
struct GNUNET_HashCode h_econtract;
- // FIXME: combine econtract arguments into one!
qs = TEH_plugin->select_contract_by_purse (
TEH_plugin->cls,
pcc->purse_pub,
- &econtract.contract_pub,
- &econtract.econtract_sig,
- &econtract.econtract_size,
- &econtract.econtract);
+ &econtract);
if (qs <= 0)
{
if (GNUNET_DB_STATUS_SOFT_ERROR == qs)
diff --git a/src/exchange/taler-exchange-httpd_reserves_purse.c
b/src/exchange/taler-exchange-httpd_reserves_purse.c
index af86bc91..74291976 100644
--- a/src/exchange/taler-exchange-httpd_reserves_purse.c
+++ b/src/exchange/taler-exchange-httpd_reserves_purse.c
@@ -411,13 +411,9 @@ purse_transaction (void *cls,
{
bool in_conflict = true;
- // FIXME: combine econtract args!
qs = TEH_plugin->insert_contract (TEH_plugin->cls,
&rpc->purse_pub,
- &rpc->econtract.contract_pub,
- rpc->econtract.econtract_size,
- rpc->econtract.econtract,
- &rpc->econtract.econtract_sig,
+ &rpc->econtract,
&in_conflict);
if (qs < 0)
{
@@ -435,15 +431,10 @@ purse_transaction (void *cls,
struct TALER_EncryptedContract econtract;
struct GNUNET_HashCode h_econtract;
- /* FIXME: change API to only pass econtract
- instead of all members! */
qs = TEH_plugin->select_contract_by_purse (
TEH_plugin->cls,
&rpc->purse_pub,
- &econtract.contract_pub,
- &econtract.econtract_sig,
- &econtract.econtract_size,
- &econtract.econtract);
+ &econtract);
if (qs <= 0)
{
if (GNUNET_DB_STATUS_SOFT_ERROR == qs)
diff --git a/src/exchangedb/plugin_exchangedb_postgres.c
b/src/exchangedb/plugin_exchangedb_postgres.c
index 9fcd6203..b259e351 100644
--- a/src/exchangedb/plugin_exchangedb_postgres.c
+++ b/src/exchangedb/plugin_exchangedb_postgres.c
@@ -13959,21 +13959,14 @@ postgres_select_contract (void *cls,
*
* @param cls the @e cls of this struct with the plugin-specific state
* @param purse_pub key to lookup the contract by
- * @param[out] pub_ckey set to the ephemeral DH used to encrypt the contract
- * @param[out] econtract_sig set to the signature over the encrypted contract
- * @param[out] econtract_size set to the number of bytes in @a econtract
* @param[out] econtract set to the encrypted contract on success, to be freed
by the caller
* @return transaction status code
*/
static enum GNUNET_DB_QueryStatus
-postgres_select_contract_by_purse (void *cls,
- const struct
- TALER_PurseContractPublicKeyP *purse_pub,
- struct TALER_ContractDiffiePublicP
*pub_ckey,
- struct TALER_PurseContractSignatureP *
- econtract_sig,
- size_t *econtract_size,
- void **econtract)
+postgres_select_contract_by_purse (
+ void *cls,
+ const struct TALER_PurseContractPublicKeyP *purse_pub,
+ struct TALER_EncryptedContract *econtract)
{
struct PostgresClosure *pg = cls;
struct GNUNET_PQ_QueryParam params[] = {
@@ -13982,12 +13975,12 @@ postgres_select_contract_by_purse (void *cls,
};
struct GNUNET_PQ_ResultSpec rs[] = {
GNUNET_PQ_result_spec_auto_from_type ("pub_ckey",
- pub_ckey),
+ &econtract->contract_pub),
GNUNET_PQ_result_spec_auto_from_type ("contract_sig",
- econtract_sig),
+ &econtract->econtract_sig),
GNUNET_PQ_result_spec_variable_size ("e_contract",
- econtract,
- econtract_size),
+ &econtract->econtract,
+ &econtract->econtract_size),
GNUNET_PQ_result_spec_end
};
@@ -14004,10 +13997,7 @@ postgres_select_contract_by_purse (void *cls,
*
* @param cls the @e cls of this struct with the plugin-specific state
* @param purse_pub the purse the contract is associated with (must exist)
- * @param pub_ckey ephemeral key for DH used to encrypt the contract
- * @param econtract_size number of bytes in @a econtract
* @param econtract the encrypted contract
- * @param[out] econtract_sig set to the signature over the encrypted contract
* @param[out] in_conflict set to true if @a econtract
* conflicts with an existing contract;
* in this case, the return value will be
@@ -14018,20 +14008,17 @@ static enum GNUNET_DB_QueryStatus
postgres_insert_contract (
void *cls,
const struct TALER_PurseContractPublicKeyP *purse_pub,
- const struct TALER_ContractDiffiePublicP *pub_ckey,
- size_t econtract_size,
- const void *econtract,
- const struct TALER_PurseContractSignatureP *econtract_sig,
+ const struct TALER_EncryptedContract *econtract,
bool *in_conflict)
{
struct PostgresClosure *pg = cls;
enum GNUNET_DB_QueryStatus qs;
struct GNUNET_PQ_QueryParam params[] = {
GNUNET_PQ_query_param_auto_from_type (purse_pub),
- GNUNET_PQ_query_param_auto_from_type (pub_ckey),
- GNUNET_PQ_query_param_fixed_size (econtract,
- econtract_size),
- GNUNET_PQ_query_param_auto_from_type (econtract_sig),
+ GNUNET_PQ_query_param_auto_from_type (&econtract->contract_pub),
+ GNUNET_PQ_query_param_fixed_size (econtract->econtract,
+ econtract->econtract_size),
+ GNUNET_PQ_query_param_auto_from_type (&econtract->econtract_sig),
GNUNET_PQ_query_param_end
};
@@ -14042,31 +14029,28 @@ postgres_insert_contract (
if (GNUNET_DB_STATUS_SUCCESS_NO_RESULTS != qs)
return qs;
{
- struct TALER_ContractDiffiePublicP pub_ckey2;
- struct TALER_PurseContractSignatureP esig2;
- size_t econtract_size2;
- void *econtract2;
+ struct TALER_EncryptedContract econtract2;
qs = postgres_select_contract_by_purse (pg,
purse_pub,
- &pub_ckey2,
- &esig2,
- &econtract_size2,
&econtract2);
if (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT != qs)
{
GNUNET_break (0);
return GNUNET_DB_STATUS_HARD_ERROR;
}
- if ( (0 == GNUNET_memcmp (&pub_ckey2,
- pub_ckey)) &&
- (econtract_size2 == econtract_size) &&
- (0 == memcmp (econtract2,
- econtract,
- econtract_size)) )
+ if ( (0 == GNUNET_memcmp (&econtract->contract_pub,
+ &econtract2.contract_pub)) &&
+ (econtract2.econtract_size ==
+ econtract->econtract_size) &&
+ (0 == memcmp (econtract2.econtract,
+ econtract->econtract,
+ econtract->econtract_size)) )
{
+ GNUNET_free (econtract2.econtract);
return GNUNET_DB_STATUS_SUCCESS_NO_RESULTS;
}
+ GNUNET_free (econtract2.econtract);
*in_conflict = true;
return GNUNET_DB_STATUS_SUCCESS_ONE_RESULT;
}
diff --git a/src/include/taler_exchangedb_plugin.h
b/src/include/taler_exchangedb_plugin.h
index 39417775..15f5661d 100644
--- a/src/include/taler_exchangedb_plugin.h
+++ b/src/include/taler_exchangedb_plugin.h
@@ -24,6 +24,7 @@
#include <jansson.h>
#include <gnunet/gnunet_util_lib.h>
#include <gnunet/gnunet_db_lib.h>
+#include "taler_json_lib.h"
#include "taler_signatures.h"
@@ -4779,9 +4780,6 @@ struct TALER_EXCHANGEDB_Plugin
* Function called to persist an encrypted contract associated with a
reserve.
*
* @param cls the @e cls of this struct with the plugin-specific state
- * @param purse_pub the purse the contract is associated with (must exist)
- * @param pub_ckey ephemeral key for DH used to encrypt the contract
- * @param econtract_size number of bytes in @a econtract
* @param econtract the encrypted contract
* @param[out] econtract_sig set to the signature over the encrypted contract
* @param[out] in_conflict set to true if @a econtract
@@ -4793,10 +4791,7 @@ struct TALER_EXCHANGEDB_Plugin
enum GNUNET_DB_QueryStatus
(*insert_contract)(void *cls,
const struct TALER_PurseContractPublicKeyP *purse_pub,
- const struct TALER_ContractDiffiePublicP *pub_ckey,
- size_t econtract_size,
- const void *econtract,
- const struct TALER_PurseContractSignatureP *econtract_sig,
+ const struct TALER_EncryptedContract *econtract,
bool *in_conflict);
@@ -4820,14 +4815,12 @@ struct TALER_EXCHANGEDB_Plugin
size_t *econtract_size,
void **econtract);
+
/**
* Function called to retrieve an encrypted contract.
*
* @param cls the @e cls of this struct with the plugin-specific state
* @param purse_pub key to lookup the contract by
- * @param[out] pub_ckey set to the ephemeral DH used to encrypt the contract
- * @param[out] econtract_sig set to the signature over the encrypted contract
- * @param[out] econtract_size set to the number of bytes in @a econtract
* @param[out] econtract set to the encrypted contract on success, to be
freed by the caller
* @return transaction status code
*/
@@ -4835,10 +4828,7 @@ struct TALER_EXCHANGEDB_Plugin
(*select_contract_by_purse)(
void *cls,
const struct TALER_PurseContractPublicKeyP *purse_pub,
- struct TALER_ContractDiffiePublicP *pub_ckey,
- struct TALER_PurseContractSignatureP *econtract_sig,
- size_t *econtract_size,
- void **econtract);
+ struct TALER_EncryptedContract *econtract);
/**
diff --git a/src/lib/exchange_api_purse_create_with_deposit.c
b/src/lib/exchange_api_purse_create_with_deposit.c
index e77bbf2d..cace7324 100644
--- a/src/lib/exchange_api_purse_create_with_deposit.c
+++ b/src/lib/exchange_api_purse_create_with_deposit.c
@@ -254,7 +254,6 @@ TALER_EXCHANGE_purse_create_with_deposit (
CURL *eh;
struct TALER_PurseContractSignatureP purse_sig;
struct TALER_EncryptedContract econtract;
- struct TALER_ContractDiffiePublicP contract_pub;
char arg_str[sizeof (pch->purse_pub) * 2 + 32];
char *url;
uint32_t min_age = 0;
@@ -402,10 +401,10 @@ TALER_EXCHANGE_purse_create_with_deposit (
&econtract.econtract,
&econtract.econtract_size);
GNUNET_CRYPTO_ecdhe_key_get_public (&contract_priv->ecdhe_priv,
- &contract_pub.ecdhe_pub);
+ &econtract.contract_pub.ecdhe_pub);
TALER_wallet_econtract_upload_sign (econtract.econtract,
econtract.econtract_size,
- &contract_pub,
+ &econtract.contract_pub,
purse_priv,
&econtract.econtract_sig);
}
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [taler-exchange] branch master updated: -refactor internal API to use new EncrptedContract struct where applicable,
gnunet <=