Commit Graph

173 Commits

Author SHA1 Message Date
Christian Grothoff
59e057b93e
-misc fixes 2023-07-20 02:15:58 +02:00
Christian Grothoff
e08fe4eff8
bump protocol version to 16 2023-07-13 23:11:10 +02:00
Christian Grothoff
b60b339ee4
merging /keys and /wire 2023-07-13 23:07:33 +02:00
Christian Grothoff
a5451527cb
implement 'lost' field for #7883 2023-07-11 20:36:52 +02:00
Christian Grothoff
6c44755458
use DK age group, not global age group 2023-07-10 16:55:26 +02:00
Christian Grothoff
6a483b51ec
fix alignment issue, ensure we hash over packed structure to avoid non-determinism 2023-07-10 16:34:01 +02:00
Christian Grothoff
66f9a5b5e5
-simplify 2023-07-10 15:26:53 +02:00
Christian Grothoff
f4abc1c369
tip -> reward 2023-07-10 10:34:33 +02:00
Christian Grothoff
c02d88c8e3
work on keys serialization/deserialization 2023-07-06 00:08:00 +02:00
Christian Grothoff
1db17d43bd
-misc minor fixes 2023-07-05 13:13:16 +02:00
Christian Grothoff
999db0fb80
-bugfixes 2023-07-04 23:21:47 +02:00
Christian Grothoff
ff8349e6e7
more exchange API refactoring 2023-07-04 15:37:46 +02:00
40629e8992
[age-withdraw] added library function for age-withdraw
- Added TALER_EXCHANGE_age_withdraw
- Also: Change TALER_EXCHANGE_batch_withdraw and related functions to
  use GNUNET_CURL_ctx, TALER_EXCHANGE_keys and const char *echange_url
2023-07-03 16:18:40 +02:00
Christian Grothoff
421129a32e
next round of exchange API atomization 2023-06-25 19:10:26 +02:00
Christian Grothoff
75733ee00e
more work on atomizing exchange API: deposit 2023-06-25 13:59:47 +02:00
Christian Grothoff
f5ce22ddf6
-more clean up of auditor api: atomization complete 2023-06-21 09:00:58 +02:00
Christian Grothoff
af77a2a178
-more auditor API atomization 2023-06-21 08:15:06 +02:00
Christian Grothoff
17789253e9
ensure forward-compatibility for auditor C API 2023-06-21 07:53:17 +02:00
Christian Grothoff
a2dde02b64
major libtalertesting API refactoring, including no longer having taler-specific logic in the test engine core 2023-06-07 23:11:05 +02:00
Christian Grothoff
809300158c
code cleanup, fixing misc. memory leaks in the process 2023-06-04 13:26:00 +02:00
Christian Grothoff
89e21002d6
return tipping_allowed from /keys 2023-05-13 20:31:47 +02:00
Christian Grothoff
3ebd0a70b2
fix 0-length VLAs 2023-05-10 00:57:04 +02:00
Christian Grothoff
75f75c4a51
breaking protocol changes towards fixing #7810 (incomplete, taler-exchange-offline still unfinished) 2023-05-01 22:34:35 +02:00
Christian Grothoff
5828eead70
-fix SQL 2022-12-29 10:10:11 +01:00
Christian Grothoff
58983d7455
add asset_type to /keys response 2022-12-11 13:48:44 +01:00
752f102738
policy extensions and age restriction refactoring
- refactoring of extension-plugin-mechanism
- refactoring of age restriction extension
- added policy extensions plugin plumbing
- added DB schema and api
  - policy_details
  - policy_fulfillments
2022-11-04 12:18:16 +01:00
Christian Grothoff
481ffc1a0a
remove wad fee, kyc fee and kyc-timeout 2022-11-01 16:43:59 +01:00
Christian Grothoff
9ed99558e2
-fix clang compiler warnings 2022-08-22 22:45:41 +02:00
Christian Grothoff
1009084e94
major rework of the KYC logic, making it more configurable, not complete, but tests pass again 2022-08-11 23:35:33 +02:00
Christian Grothoff
085e40bc56
-exchange_api_batch_deposit.c compiles 2022-07-01 07:08:13 +02:00
Christian Grothoff
2805018da2
-reduce logging 2022-06-29 20:34:22 +02:00
9b312aa0f8
version bump due to new /keys response 2022-06-29 13:34:26 +02:00
5633ad5a26
better api for parsing a denomination group 2022-06-27 10:36:13 +02:00
a6544069f9
[new /keys response] added proper hash verification
- Running XOR of all SHA-512 hashes of each denomination's public key is
  compared against the "hash" value in the JSON blob.

- Fixed a bug during creation of the running XOR.
2022-06-27 10:10:51 +02:00
31f74059e0
[new /keys response] create and parse denomination implemented
- /keys response now contains signed denomintations
	- hashes of denominations now XOR'ed per group into a single hash-code
	- final hash-code is now XOR of all group hash codes
	- final hash-code is signed

- lib/exchange_api_handle support for new "denominations" implemented
	- parses array of denomation groups
	- creates running xor of hashes
	- verifies signature at the end
	- previous diff/merge logic for keys remains intact.
2022-06-26 16:59:27 +02:00
Christian Grothoff
370ee3a417
-fix leaks 2022-05-07 18:58:29 +02:00
Christian Grothoff
b4965db0d2
-fix fieldnames, regenerated DBs 2022-04-24 20:49:11 +02:00
Christian Grothoff
f3a4b00907
adapt to latest GNUnet API: GNUNET_JSON_spec_mark_optional() changed 2022-04-05 17:15:50 +02:00
Christian Grothoff
074ea7502e
centralize exchange online signature logic 2022-03-29 15:21:49 +02:00
Christian Grothoff
427417b835
towards support for new reserve history/status APIs 2022-03-20 13:20:45 +01:00
Christian Grothoff
dee45bf022
return new global fees from /keys 2022-03-20 09:44:42 +01:00
Christian Grothoff
938db9ac56
-fix memory leak introduced by Oec 2022-03-19 16:04:41 +01:00
Christian Grothoff
c4690a44bc
-minor code cleanup 2022-03-19 15:54:05 +01:00
Christian Grothoff
280f94c3a6
improve style of some SQL queries (no semantic change) 2022-03-19 08:27:01 +01:00
Christian Grothoff
544ba42f44
-big renaming of structs for consistent naming with P suffix 2022-02-21 00:23:23 +01:00
Christian Grothoff
a351bfc4b4
-fix CS nonce reuse check logic 2022-02-17 15:18:09 +01:00
8bdf6ab19d
[age restriction] progress 14/n - withdraw and deposit
Age restriction support for
  - withdraw is done and tested
  - deposit is done and tested

TODOs:
  - melt/refresh/reveal
  - link

------

Added functions
 - TALER_age_restriction_commit
 - TALER_age_commitment_derive
 - TALER_age_commitment_hash
 - TALER_age_restriction_commitment_free_inside
 - Hash of age commitment passed around API boundaries

Exchangedb adjustments for denominations
 - all prepared statements re: denominations now handle age_mask
 - signature parameters adjusted

Hash and signature verification of /keys adjusted
 - Hashes of (normal) denominations and age-restricted denominations are
   calculated seperately
 - The hash of the age-restricted ones will then be added to the other
   hash
 - The total hash is signed/verified

Tests for withdraw with age restriction added
 - TALER_EXCHANGE_DenomPublickey now carries age_mask
 - TALER_TESTING_cmd_withdraw_amount* takes age parameter
 - TALER_TESTING_find_pk takes boolean age_restricted
 - WithdrawState carries age_commitment and its hash
 - withdraw_run derives new age commitment, if applicable
 - Added age parameter to testing (13 as example)

Various Fixes and changes
 - Fixes of post handler for /management/extensions
 - Fixes for offline tool extensions signing
 - Slight refactoring of extensions
 - Age restriction extension simplified
   - config is now global to extension
   - added global TEH_age_restriction_enabled and TEH_age_mask in
     taler-exchange-httpd
   - helper functions and macros introduced
2022-02-16 22:01:05 +01:00
8684a9bfea
[age_restriction] progress 13/n
- major refactoring of extensions
  - extensions live now in a separate library, libtalerextensions
  - refactored all components using age_restriction accordingly
  - plumbing for plugin support for extensions roughly layed down
2022-01-23 01:36:21 +01:00
0b56de6c99
[age restriction] progress 12/n
- taler-offline-tool now handles extensions
  - command "extensions" added with subcommands "show" and "sign"
  - parses extensions from taler config
  - shows and signs of extensions and their configurations
  - creates signed set of configurations for upload
  - added test for retrieval of extension config

- simplified signature verification for extensions
  - remove per-extension signatures, also from DB schema
  - adjust prepared statements accordingly
  - adjust DB event handler for extensions
  - allow NULL for config for extension in DB schema
  - handler for /management/extensions adjusted to new datastructures

- changed test for TALER_denom_blind/TALER_denom_sign_blinded with and
  without TALER_AgeHash

- minor updates and various fixes
2022-01-21 15:41:02 +01:00
e30989c930
[age restriction] progress 11/n
Parse age restriction information from "/keys"
- parse "age_restriction" extension, extract mask for age groups
- parse denominations from "age_restricted_denoms", too, if available
2022-01-10 00:04:23 +01:00