Commit Graph

318 Commits

Author SHA1 Message Date
a849bfd13c
gana update 2022-02-15 23:21:51 +01:00
acab20a2ab
Merge branch 'master' into ar14-merging 2022-02-15 23:20:33 +01:00
327361adda
[age restriction] progress 14/n - withdraw and deposit
Age restriction support for
  - withdraw is done and tested
  - deposit is done and tested
  - melt is done, untested
  - reveal started
  - link started

Added functions
 - TALER_age_commitment_hash
 - TALER_age_restriction_commit
 - TALER_age_commitment_derive
 - 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
  - WithdrawState carries age_commitment and its hash
  - withdraw_run derives new age commitment, if applicable
  - Added age parameter to testing (13 as example)
  - TALER_TESTING_find_pk takes boolean age_restricted
  - struct RefreshMeltState carries age commitment of melted coin
  - melt_run calls TALER_age_commitment_derive, if necessary

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-14 09:22:38 +01:00
Christian Grothoff
9b8c350d4d
-remove redundancies in the refresh-melt computation and fix uninitialized bks return value 2022-02-13 12:44:09 +01:00
Christian Grothoff
c2549e8b1e
-address FIXMEs 2022-02-12 11:24:32 +01:00
Christian Grothoff
819b67426c
-doxygen fixes 2022-02-12 10:33:23 +01:00
Christian Grothoff
cfa1283053
merge more improvements from Dora 2022-02-06 12:33:49 +01:00
Christian Grothoff
9d40bd5a1e
split tests by rsa/cs 2022-02-04 18:45:42 +01:00
Gian Demarmels
a67786078b
resolves merge conflicts 2022-02-04 16:50:32 +01:00
Christian Grothoff
5ea4e5b122
corrections from Dora 2022-02-01 09:35:28 +01:00
Christian Grothoff
88f64e238c
cbdc - Italian edition 2022-01-31 16:16:23 +01:00
32f1276b8c
fix RFC 8785 JSON normalization 2022-01-27 15:29:55 +01:00
Christian Grothoff
e7aeec04f4
The current recoup API is broken. I guess this is another example where "trivial" API changes turn out to have (multiple!) unexpected consequences.
The current "/recoup" API does not have clear idempotency semantics, as we've discussed on the phone.  This is already bad by itself, as it makes it hard to write down what the API does other than "whatever the implementation does".

However, it actually breaks correctness in this (admittedly kinda contrived, but not impossible) case:

Say that we have a coin A obtained via withdrawal and a coin B obtained via refreshing coin A. Now the denominations of A gets revoked..

The wallet does a recoup of A for EUR:1.

Now the denomination of B also gets revoked.  The wallet recoups B (incidentally also for EUR:1) and now A can be recouped again for EUR:1.  But now the exchange is in a state where it will refuse a legitimate recoup request for A because the detection for an idempotent request kicks in.

This is IMHO bad API design, and the exchange should simply always recoup the maximum amount.

Furthermore, we usually follow the principle of "API calls that take up DB space are paid".  With the current recoup API, I can do many tiny recoup requests which the exchange then has to store, right?

I guess it would not be a big change to remove the "amount" value from the recoup/recoup-refresh request bodies, right?

- Florian
2022-01-11 12:47:35 +01:00
14efa23a2b
improve error response for withdrawal 2022-01-10 01:23:46 +01:00
Christian Grothoff
5cd2bc5de3
-cleanup 2021-12-28 15:36:26 +01:00
Christian Grothoff
87376e02eb
protocol v12 changes (/recoup split, signature changes) plus database sharding plus O(n^2)=>O(n) worst-case complexity reduction on coin balance checks 2021-12-25 13:56:40 +01:00
1b23857f2c
[age restriction] progress 8/n
More work towards support for extensions and age restriction

- updated gana
- added handler for DB-Event
- added TEH_extensions_init() and _done()
- added global for age restriction
- added stub for post handler
- added SQL-table for extension metadata
- added enum type for extensions and other data structures

Also:
- fixed some warnings -Wmaybe-unitialized
2021-12-23 15:15:33 +01:00
Christian Grothoff
57f4933451
fix uncrustify 2021-12-11 21:53:30 +01:00
Christian Grothoff
e0700ad916
optimize /deposit logic to minimize serialization failures (presumably) 2021-12-08 20:33:14 +01:00
Thien-Thi Nguyen
56318f53e2
update contrib/gana to b7320181c5e0d95c6f2e2a9e5c53dce0bc1a35a8 2021-11-21 06:23:36 -05:00
Christian Grothoff
1caeaec257
fix #7099 2021-11-21 10:01:31 +01:00
Christian Grothoff
0325a79631
avoid duplication 2021-11-15 14:39:18 +01:00
Christian Grothoff
ee687c87ed
-better types 2021-11-15 10:53:33 +01:00
Christian Grothoff
77bab62560
-fixes for test 2021-11-09 22:52:01 +01:00
Christian Grothoff
ba627bf84c
-fixes 2021-11-05 22:22:47 +01:00
Christian Grothoff
766922f7e9
implement missing SQL statement 2021-11-05 13:20:14 +01:00
Christian Grothoff
9358b886f1
bugfix! 2021-11-01 22:57:46 +01:00
Christian Grothoff
22ce5bff77
fix sharding 2021-11-01 18:05:01 +01:00
Christian Grothoff
3900531e0d
eliminate HKDF when hashing paytos 2021-10-27 11:40:12 +02:00
Christian Grothoff
7ac57acb18
fix auditor FTBFS 2021-10-27 09:23:14 +02:00
Christian Grothoff
fd615f3e33
-fix exchange FTBFS 2021-10-27 09:23:14 +02:00
Christian Grothoff
8a6d9da545
-work on FTBFS 2021-10-27 09:23:14 +02:00
Christian Grothoff
58ea04167c
-fix misc FTBFS 2021-10-27 09:23:13 +02:00
Christian Grothoff
3af7bc0a29
-more FTBFS fixes 2021-10-27 09:23:12 +02:00
Christian Grothoff
d4e03b12ae
-more changes towards fixing FTBFS 2021-10-27 09:23:12 +02:00
Christian Grothoff
778a402d07
-implement more of the KYC handlers 2021-10-19 21:02:10 +02:00
Christian Grothoff
4e3b133e47
-incomplete draft for /kyc-wallet handler 2021-10-17 14:12:13 +02:00
Christian Grothoff
8a213cd3ad
spanish hypenation rules 2021-10-12 12:33:41 +02:00
Christian Grothoff
66573865e1
generate 502 on secmod unavailable instead of 200 with bad public key; more logging 2021-10-11 14:32:32 +02:00
Christian Grothoff
7bf2845b66
update tos 2021-09-30 21:43:48 +02:00
Christian Grothoff
2f31d06392
regenerate pp/tos 2021-09-30 21:41:06 +02:00
Christian Grothoff
4a92cc0584
-pp revision 2021-09-24 12:02:09 +02:00
Christian Grothoff
896bb8f074
typo 2021-08-31 22:56:14 +02:00
Christian Grothoff
0013ce41e7
hyperaggregation schema proposal 2021-08-31 17:41:46 +02:00
6761e2a997
gana 2021-08-26 16:45:54 +02:00
7ca2787d5f
debian: changelog 2021-08-26 16:37:44 +02:00
Christian Grothoff
e01be3c09e
-gana update 2021-08-25 15:14:18 +02:00
Christian Grothoff
18a68ab789
ensure statements are prepared before keys subsystem initialization 2021-08-25 11:45:13 +02:00
Christian Grothoff
e50a5f4d2b
-update GANA 2021-08-25 07:58:07 +02:00
Christian Grothoff
7b954c1e26
-bump version in configure.ac 2021-08-24 15:43:32 +02:00