[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-donau] 03/03: solve merge conflicts
From: |
gnunet |
Subject: |
[taler-donau] 03/03: solve merge conflicts |
Date: |
Tue, 28 Nov 2023 01:27:03 +0100 |
This is an automated email from the git hooks/post-receive script.
lukas-matyja pushed a commit to branch master
in repository donau.
commit ffe0a1499466134eedadbce02bc09dd65b680f85
Merge: 8b43033 7101c75
Author: Matyja Lukas Adam <lukas.matyja@students.bfh.ch>
AuthorDate: Tue Nov 28 01:26:02 2023 +0100
solve merge conflicts
contrib/gana | 2 +-
doc/Makefile.am | 2 +-
src/donau-tools/Makefile.am | 6 +-
src/donau-tools/taler-donau-dbinit.c | 12 +-
src/donau-tools/taler-donau-offline.c | 548 ++--
src/donau/Makefile.am | 88 +-
src/donau/donau-httpd.c | 1079 +-------
src/donau/donau-httpd.h | 11 +-
src/donau/donau-httpd_batch-issue_receipts.c | 12 +-
src/donau/donau-httpd_batch-issue_receipts.h | 4 +-
src/donau/donau-httpd_batch-submit_receipts.c | 32 +-
src/donau/donau-httpd_batch-submit_receipts.h | 4 +-
src/donau/donau-httpd_charities_close.c | 10 +-
src/donau/donau-httpd_charities_close.h | 4 +-
src/donau/donau-httpd_charities_get.c | 6 +-
src/donau/donau-httpd_charities_get.h | 4 +-
src/donau/donau-httpd_charities_history.c | 10 +-
src/donau/donau-httpd_charities_history.h | 4 +-
src/donau/donau-httpd_charities_open.c | 6 +-
src/donau/donau-httpd_charities_open.h | 4 +-
src/donau/donau-httpd_charities_status.c | 10 +-
src/donau/donau-httpd_charities_status.h | 4 +-
src/donau/donau-httpd_common_submit_receipts.c | 2 +-
src/donau/donau-httpd_common_submit_receipts.h | 8 +-
src/donau/donau-httpd_config.c | 6 +-
src/donau/donau-httpd_config.h | 4 +-
src/donau/donau-httpd_csr.c | 10 +-
src/donau/donau-httpd_csr.h | 4 +-
src/donau/donau-httpd_db.c | 20 +-
src/donau/donau-httpd_db.h | 10 +-
src/donau/donau-httpd_issue_receipts.c | 12 +-
src/donau/donau-httpd_issue_receipts.h | 4 +-
src/donau/donau-httpd_keys.c | 50 +-
src/donau/donau-httpd_keys.h | 34 +-
src/donau/donau-httpd_metrics.c | 6 +-
src/donau/donau-httpd_metrics.h | 4 +-
src/donau/donau-httpd_mhd.c | 6 +-
src/donau/donau-httpd_mhd.h | 4 +-
src/donau/donau-httpd_responses.c | 114 +-
src/donau/donau-httpd_responses.h | 16 +-
src/donau/donau-httpd_submit_receipts_get.c | 22 +-
src/donau/donau-httpd_submit_receipts_get.h | 4 +-
src/donau/donau-httpd_terms.c | 4 +-
src/donau/donau-httpd_terms.h | 10 +-
src/donaudb/Makefile.am | 217 +-
src/donaudb/donaudb_plugin.c | 84 +-
src/donaudb/donaudb_transactions.c | 334 +--
src/donaudb/pg_activate_signing_key.c | 4 +-
src/donaudb/pg_activate_signing_key.h | 4 +-
src/donaudb/pg_add_donation_unit_key.c | 4 +-
src/donaudb/pg_add_donation_unit_key.h | 4 +-
src/donaudb/pg_commit.c | 4 +-
src/donaudb/pg_commit.h | 4 +-
src/donaudb/pg_create_tables.c | 4 +-
src/donaudb/pg_create_tables.h | 4 +-
src/donaudb/pg_drop_tables.c | 4 +-
src/donaudb/pg_drop_tables.h | 4 +-
src/donaudb/pg_event_listen.c | 4 +-
src/donaudb/pg_event_listen.h | 4 +-
src/donaudb/pg_event_listen_cancel.c | 4 +-
src/donaudb/pg_event_listen_cancel.h | 4 +-
src/donaudb/pg_event_notify.c | 4 +-
src/donaudb/pg_event_notify.h | 4 +-
src/donaudb/pg_get_donation_unit_info.c | 10 +-
src/donaudb/pg_get_donation_unit_info.h | 6 +-
src/donaudb/pg_insert_charity.c | 9 +-
src/donaudb/pg_insert_charity.h | 15 +-
src/donaudb/pg_insert_history_entry.c | 11 +-
src/donaudb/pg_insert_history_entry.h | 21 +-
src/donaudb/pg_insert_issued_receipt.c | 13 +-
src/donaudb/pg_insert_issued_receipt.h | 17 +-
src/donaudb/pg_insert_submitted_receipt.c | 17 +-
src/donaudb/pg_insert_submitted_receipt.h | 29 +-
src/donaudb/pg_lookup_donation_unit_key.c | 9 +-
src/donaudb/pg_lookup_donation_unit_key.h | 6 +-
src/donaudb/pg_lookup_signing_key.c | 4 +-
src/donaudb/pg_lookup_signing_key.h | 7 +-
src/donaudb/pg_preflight.c | 4 +-
src/donaudb/pg_preflight.h | 4 +-
src/donaudb/pg_rollback.c | 4 +-
src/donaudb/pg_rollback.h | 4 +-
src/donaudb/pg_start.c | 4 +-
src/donaudb/pg_start.h | 4 +-
src/donaudb/pg_start_read_committed.c | 4 +-
src/donaudb/pg_start_read_committed.h | 4 +-
src/donaudb/pg_start_read_only.c | 4 +-
src/donaudb/pg_start_read_only.h | 4 +-
src/donaudb/pg_template.c | 4 +-
src/donaudb/pg_template.h | 4 +-
src/donaudb/plugin_donaudb_common.c | 344 +--
src/donaudb/plugin_donaudb_common.h | 9 +-
src/donaudb/plugin_donaudb_postgres.c | 980 ++-----
src/donaudb/test_donaudb.c | 158 +-
src/include/donau_service.h | 295 +--
src/include/donaudb_lib.h | 69 +-
src/include/donaudb_plugin.h | 38 +-
src/json/Makefile.am | 2 +-
src/json/test_json.c | 4 +-
src/lib/Makefile.am | 6 +-
src/lib/donau_api_batch_issue_receipts.c | 78 +-
src/lib/donau_api_batch_issue_receipts2.c | 76 +-
src/lib/donau_api_batch_submit_receipts.c | 122 +-
src/lib/donau_api_charities_close.c | 40 +-
src/lib/donau_api_charities_get.c | 36 +-
src/lib/donau_api_charities_history.c | 78 +-
src/lib/donau_api_charities_open.c | 74 +-
src/lib/donau_api_charities_status.c | 72 +-
src/lib/donau_api_common.c | 220 +-
src/lib/donau_api_common.h | 38 +-
src/lib/donau_api_csr_issue_receipts.c | 44 +-
src/lib/donau_api_curl_defaults.c | 2 +-
src/lib/donau_api_curl_defaults.h | 2 +-
src/lib/donau_api_handle.c | 406 ++-
src/lib/donau_api_handle.h | 2 +-
src/lib/donau_api_issue_receipts.c | 90 +-
src/lib/donau_api_issue_receipts2.c | 80 +-
src/lib/donau_api_submit_receipts_get.c | 68 +-
src/lib/donau_api_transfers_get.c | 52 +-
src/pq/Makefile.am | 4 +-
src/pq/pq_query_helper.c | 1102 +-------
src/pq/pq_result_helper.c | 2800 ++++++++++----------
src/pq/test_pq.c | 2 +-
src/testing/test_donau_api.c | 42 +-
src/testing/testing_api_cmd_batch.c | 4 +-
src/testing/testing_api_cmd_batch_deposit.c | 36 +-
src/testing/testing_api_cmd_batch_withdraw.c | 38 +-
src/testing/testing_api_cmd_common.c | 24 +-
src/testing/testing_api_cmd_deposit.c | 30 +-
src/testing/testing_api_cmd_deposits_get.c | 16 +-
src/testing/testing_api_cmd_get_donau.c | 54 +-
src/testing/testing_api_cmd_insert_deposit.c | 22 +-
.../testing_api_cmd_offline_sign_extensions.c | 4 +-
.../testing_api_cmd_offline_sign_global_fees.c | 4 +-
src/testing/testing_api_cmd_offline_sign_keys.c | 4 +-
src/testing/testing_api_cmd_reserve_close.c | 12 +-
src/testing/testing_api_cmd_reserve_get.c | 12 +-
src/testing/testing_api_cmd_reserve_history.c | 32 +-
src/testing/testing_api_cmd_reserve_open.c | 18 +-
src/testing/testing_api_cmd_reserve_status.c | 18 +-
src/testing/testing_api_cmd_revoke.c | 6 +-
src/testing/testing_api_cmd_revoke_denom_key.c | 26 +-
src/testing/testing_api_cmd_revoke_sign_key.c | 30 +-
src/testing/testing_api_cmd_stat.c | 4 +-
src/testing/testing_api_cmd_transfer_get.c | 16 +-
src/testing/testing_api_cmd_wait.c | 4 +-
src/testing/testing_api_cmd_withdraw.c | 36 +-
src/testing/testing_api_misc.c | 8 +-
src/util/donau_signatures.c | 2 +-
148 files changed, 4186 insertions(+), 6846 deletions(-)
diff --cc src/include/donau_service.h
index bf6b3aa,9094ed5..2d73fc1
--- a/src/include/donau_service.h
+++ b/src/include/donau_service.h
@@@ -52,7 -52,36 +52,6 @@@ struct DONAU_SigningPublicKeyAndValidit
};
-
-/**
- * @brief Type of public signing keys for verifying blindly signed donation
receipts.
- */
-struct DONAU_DonationUnitPublicKey
-{
-
- /**
- * Type of the public key (RSA or CS).
- */
- enum GNUNET_CRYPTO_BlindSignatureAlgorithm cipher;
-
- /**
- * Details, depending on @e cipher.
- */
- union
- {
- /**
- * If we use #TALER_DENOMINATION_CS in @a cipher.
- */
- struct GNUNET_CRYPTO_CsPublicKey cs_public_key;
-
- /**
- * If we use #TALER_DENOMINATION_RSA in @a cipher.
- */
- struct GNUNET_CRYPTO_RsaPublicKey *rsa_public_key;
-
- } details;
-};
--
/**
* @brief Public information about a donau's donation unit signing key
*/
diff --cc src/lib/donau_api_handle.c
index 7dd0282,8f57bd7..7db0423
--- a/src/lib/donau_api_handle.c
+++ b/src/lib/donau_api_handle.c
@@@ -280,14 -280,24 +280,14 @@@ EXITIF_exit
static enum GNUNET_GenericReturnValue
decode_keys_json (const json_t *resp_obj,
bool check_sig,
- struct TALER_DONAU_Keys *key_data,
- enum TALER_DONAU_VersionCompatibility *vc)
+ struct DONAU_Keys *key_data,
+ enum DONAU_VersionCompatibility *vc)
{
struct TALER_DonauSignatureP denominations_sig;
- struct TALER_DonauPublicKeyP pub;
- struct GNUNET_HashCode hash_xor = {0};
+ struct DONAU_DonauPublicKeyP pub;
- const json_t *wblwk = NULL;
- const json_t *global_fees;
const json_t *sign_keys_array;
- const json_t *denominations_by_group;
- const json_t *auditors_array;
- const json_t *recoup_array = NULL;
- const json_t *manifests = NULL;
- bool no_extensions = false;
+ const json_t *donation_units_by_group;
bool no_signature = false;
- const json_t *accounts;
- const json_t *fees;
- const json_t *wads;
if (JSON_OBJECT != json_typeof (resp_obj))
{
@@@ -1455,22 -1474,92 +1455,82 @@@ add_grp (void *cls
}
+ /**
+ * Convert array of account restrictions @a ars to JSON.
+ *
+ * @param ar_len length of @a ars
+ * @param ars account restrictions to convert
+ * @return JSON representation
+ */
+ static json_t *
+ ar_to_json (unsigned int ar_len,
- const struct DONAU_AccountRestriction ars[static ar_len])
++ const struct TALER_DONAU_AccountRestriction ars[static ar_len])
+ {
+ json_t *rval;
+
+ rval = json_array ();
+ GNUNET_assert (NULL != rval);
+ for (unsigned int i = 0; i<ar_len; i++)
+ {
- const struct DONAU_AccountRestriction *ar = &ars[i];
++ const struct TALER_DONAU_AccountRestriction *ar = &ars[i];
+
+ switch (ar->type)
+ {
- case DONAU_AR_INVALID:
++ case TALER_DONAU_AR_INVALID:
+ GNUNET_break (0);
+ json_decref (rval);
+ return NULL;
- case DONAU_AR_DENY:
++ case TALER_DONAU_AR_DENY:
+ GNUNET_assert (
+ 0 ==
+ json_array_append_new (
+ rval,
+ GNUNET_JSON_PACK (
+ GNUNET_JSON_pack_string ("type",
+ "deny"))));
+ break;
- case DONAU_AR_REGEX:
++ case TALER_DONAU_AR_REGEX:
+ GNUNET_assert (
+ 0 ==
+ json_array_append_new (
+ rval,
+ GNUNET_JSON_PACK (
+ GNUNET_JSON_pack_string (
+ "type",
+ "regex"),
+ GNUNET_JSON_pack_string (
+ "regex",
+ ar->details.regex.posix_egrep),
+ GNUNET_JSON_pack_string (
+ "human_hint",
+ ar->details.regex.human_hint),
+ GNUNET_JSON_pack_object_incref (
+ "human_hint_i18n",
+ (json_t *) ar->details.regex.human_hint_i18n)
+ )));
+ break;
+ }
+ }
+ return rval;
+ }
+
+
json_t *
- TALER_DONAU_keys_to_json (const struct TALER_DONAU_Keys *kd)
+ DONAU_keys_to_json (const struct DONAU_Keys *kd)
{
- struct GNUNET_TIME_Timestamp now;
json_t *keys;
json_t *signkeys;
- json_t *denominations_by_group;
- json_t *auditors;
- json_t *recoup;
- json_t *wire_fees;
+ json_t *donation_units;
json_t *accounts;
- json_t *global_fees;
- json_t *wblwk = NULL;
now = GNUNET_TIME_timestamp_get ();
signkeys = json_array ();
GNUNET_assert (NULL != signkeys);
for (unsigned int i = 0; i<kd->num_sign_keys; i++)
{
- const struct TALER_DONAU_SigningPublicKeyAndValidity *sk =
&kd->sign_keys[i];
- const struct DONAU_SigningPublicKey *sk = &kd->sign_keys[i];
++ const struct TALER_DONAU_SigningPublicKey *sk = &kd->sign_keys[i];
json_t *signkey;
- if (GNUNET_TIME_timestamp_cmp (now,
- >,
- sk->valid_until))
- continue; /* skip keys that have expired */
signkey = GNUNET_JSON_PACK (
GNUNET_JSON_pack_data_auto ("key",
&sk->key),
@@@ -1489,13 -1584,14 +1549,13 @@@
dbg = GNUNET_CONTAINER_multihashmap_create (128,
false);
- for (unsigned int i = 0; i<kd->num_denom_keys; i++)
+ for (unsigned int i = 0; i<kd->num_donation_unit_keys; i++)
{
- const struct TALER_DonationUnitInformation *dk =
&kd->donation_unit_keys[i];
- struct DONAU_DonationUnitGroup meta = {
- .cipher = dk->key.bsign_pub_key->cipher,
- const struct DONAU_DenomPublicKey *dk = &kd->denom_keys[i];
++ const struct TALER_DONAU_DenomPublicKey *dk = &kd->denom_keys[i];
+ struct TALER_DenominationGroup meta = {
+ .cipher = dk->key.cipher,
.value = dk->value,
- .fees = dk->fees,
- .age_mask = dk->key.age_mask
+ .year = dk->year
};
struct GNUNET_HashCode key;
struct GroupData *gd;
@@@ -1567,6 -1665,184 +1627,184 @@@
GNUNET_CONTAINER_multihashmap_destroy (dbg);
}
+ auditors = json_array ();
+ GNUNET_assert (NULL != auditors);
+ for (unsigned int i = 0; i<kd->num_auditors; i++)
+ {
- const struct DONAU_AuditorInformation *ai = &kd->auditors[i];
++ const struct TALER_DONAU_AuditorInformation *ai = &kd->auditors[i];
+ json_t *a;
+ json_t *adenoms;
+
+ adenoms = json_array ();
+ GNUNET_assert (NULL != adenoms);
+ for (unsigned int j = 0; j<ai->num_denom_keys; j++)
+ {
- const struct DONAU_AuditorDenominationInfo *adi =
++ const struct TALER_DONAU_AuditorDenominationInfo *adi =
+ &ai->denom_keys[j];
- const struct DONAU_DenomPublicKey *dk =
++ const struct TALER_DONAU_DenomPublicKey *dk =
+ &kd->denom_keys[adi->denom_key_offset];
+ json_t *k;
+
+ GNUNET_assert (adi->denom_key_offset < kd->num_denom_keys);
+ if (GNUNET_TIME_timestamp_cmp (now,
+ >,
+ dk->expire_deposit))
+ continue; /* skip auditor signatures for denomination keys that have
expired */
+ GNUNET_assert (adi->denom_key_offset < kd->num_denom_keys);
+ k = GNUNET_JSON_PACK (
+ GNUNET_JSON_pack_data_auto ("denom_pub_h",
+ &dk->h_key),
+ GNUNET_JSON_pack_data_auto ("auditor_sig",
+ &adi->auditor_sig));
+ GNUNET_assert (0 ==
+ json_array_append_new (adenoms,
+ k));
+ }
+
+ a = GNUNET_JSON_PACK (
+ GNUNET_JSON_pack_data_auto ("auditor_pub",
+ &ai->auditor_pub),
+ GNUNET_JSON_pack_string ("auditor_url",
+ ai->auditor_url),
+ GNUNET_JSON_pack_array_steal ("denomination_keys",
+ adenoms));
+ GNUNET_assert (0 ==
+ json_array_append_new (auditors,
+ a));
+ }
+
+ global_fees = json_array ();
+ GNUNET_assert (NULL != global_fees);
+ for (unsigned int i = 0; i<kd->num_global_fees; i++)
+ {
- const struct DONAU_GlobalFee *gf
++ const struct TALER_DONAU_GlobalFee *gf
+ = &kd->global_fees[i];
+
+ if (GNUNET_TIME_absolute_is_past (gf->end_date.abs_time))
+ continue;
+ GNUNET_assert (
+ 0 ==
+ json_array_append_new (
+ global_fees,
+ GNUNET_JSON_PACK (
+ GNUNET_JSON_pack_timestamp ("start_date",
+ gf->start_date),
+ GNUNET_JSON_pack_timestamp ("end_date",
+ gf->end_date),
+ TALER_JSON_PACK_GLOBAL_FEES (&gf->fees),
+ GNUNET_JSON_pack_time_rel ("history_expiration",
+ gf->history_expiration),
+ GNUNET_JSON_pack_time_rel ("purse_timeout",
+ gf->purse_timeout),
+ GNUNET_JSON_pack_uint64 ("purse_account_limit",
+ gf->purse_account_limit),
+ GNUNET_JSON_pack_data_auto ("master_sig",
+ &gf->master_sig))));
+ }
+
+ accounts = json_array ();
+ GNUNET_assert (NULL != accounts);
+ for (unsigned int i = 0; i<kd->accounts_len; i++)
+ {
- const struct DONAU_WireAccount *acc
++ const struct TALER_DONAU_WireAccount *acc
+ = &kd->accounts[i];
+ json_t *credit_restrictions;
+ json_t *debit_restrictions;
+
+ credit_restrictions
+ = ar_to_json (acc->credit_restrictions_length,
+ acc->credit_restrictions);
+ GNUNET_assert (NULL != credit_restrictions);
+ debit_restrictions
+ = ar_to_json (acc->debit_restrictions_length,
+ acc->debit_restrictions);
+ GNUNET_assert (NULL != debit_restrictions);
+ GNUNET_assert (
+ 0 ==
+ json_array_append_new (
+ accounts,
+ GNUNET_JSON_PACK (
+ GNUNET_JSON_pack_string ("payto_uri",
+ acc->payto_uri),
+ GNUNET_JSON_pack_allow_null (
+ GNUNET_JSON_pack_string ("conversion_url",
+ acc->conversion_url)),
+ GNUNET_JSON_pack_array_steal ("debit_restrictions",
+ debit_restrictions),
+ GNUNET_JSON_pack_array_steal ("credit_restrictions",
+ credit_restrictions),
+ GNUNET_JSON_pack_data_auto ("master_sig",
+ &acc->master_sig))));
+ }
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ "Serialized %u/%u wire accounts to JSON\n",
+ (unsigned int) json_array_size (accounts),
+ kd->accounts_len);
+
+ wire_fees = json_object ();
+ GNUNET_assert (NULL != wire_fees);
+ for (unsigned int i = 0; i<kd->fees_len; i++)
+ {
- const struct DONAU_WireFeesByMethod *fbw
++ const struct TALER_DONAU_WireFeesByMethod *fbw
+ = &kd->fees[i];
+ json_t *wf;
+
+ wf = json_array ();
+ GNUNET_assert (NULL != wf);
- for (struct DONAU_WireAggregateFees *p = fbw->fees_head;
++ for (struct TALER_DONAU_WireAggregateFees *p = fbw->fees_head;
+ NULL != p;
+ p = p->next)
+ {
+ GNUNET_assert (
+ 0 ==
+ json_array_append_new (
+ wf,
+ GNUNET_JSON_PACK (
+ TALER_JSON_pack_amount ("wire_fee",
+ &p->fees.wire),
+ TALER_JSON_pack_amount ("closing_fee",
+ &p->fees.closing),
+ GNUNET_JSON_pack_timestamp ("start_date",
+ p->start_date),
+ GNUNET_JSON_pack_timestamp ("end_date",
+ p->end_date),
+ GNUNET_JSON_pack_data_auto ("sig",
+ &p->master_sig))));
+ }
+ GNUNET_assert (0 ==
+ json_object_set_new (wire_fees,
+ fbw->method,
+ wf));
+ }
+
+ recoup = json_array ();
+ GNUNET_assert (NULL != recoup);
+ for (unsigned int i = 0; i<kd->num_denom_keys; i++)
+ {
- const struct DONAU_DenomPublicKey *dk
++ const struct TALER_DONAU_DenomPublicKey *dk
+ = &kd->denom_keys[i];
+ if (! dk->revoked)
+ continue;
+ GNUNET_assert (0 ==
+ json_array_append_new (
+ recoup,
+ GNUNET_JSON_PACK (
+ GNUNET_JSON_pack_data_auto ("h_denom_pub",
+ &dk->h_key))));
+ }
+
+ wblwk = json_array ();
+ GNUNET_assert (NULL != wblwk);
+ for (unsigned int i = 0; i<kd->wblwk_length; i++)
+ {
+ const struct TALER_Amount *a = &kd->wallet_balance_limit_without_kyc[i];
+
+ GNUNET_assert (0 ==
+ json_array_append_new (
+ wblwk,
+ TALER_JSON_from_amount (a)));
+ }
+
keys = GNUNET_JSON_PACK (
GNUNET_JSON_pack_string ("version",
kd->version),
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.