Commit Graph

370 Commits

Author SHA1 Message Date
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
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
f6ecf7458a
-refactor melt API, add FIXME for discovered bug 2022-02-12 14:38:27 +01:00
Christian Grothoff
7cedf3f0bf
-clean up refresh reveal API 2022-02-12 14:00:58 +01:00
Christian Grothoff
4d26042b5a
-modify link API to return 'ps' so that linked coins can be refreshed 2022-02-12 13:39:58 +01:00
Christian Grothoff
bc14c215b3
-doxygen fixes 2022-02-12 11:12:33 +01:00
Christian Grothoff
0eb5b08d50
-minor API clean up 2022-02-11 17:05:57 +01:00
Christian Grothoff
2772050b95
-add missing cfg file 2022-02-11 12:23:57 +01:00
Christian Grothoff
3b9d67a6f8
-get twisted tests to pass 2022-02-11 11:46:42 +01:00
Christian Grothoff
0995bdd1d0
-get tests to pass 2022-02-11 09:36:01 +01:00
Christian Grothoff
532d4ad0dc
-fixes to tests, and half-baked fixes for CS-/link (still fails) 2022-02-10 23:39:00 +01:00
Christian Grothoff
d58d89dcab
-get recoup/refresh to pass 2022-02-10 20:15:17 +01:00
Christian Grothoff
d05c561e4f
-fix fTBFS 2022-02-09 15:33:20 +01:00
Christian Grothoff
bc15478c3b
-fix leak 2022-02-09 09:25:32 +01:00
Christian Grothoff
b3cf788424
-more test fixes 2022-02-08 14:02:27 +01:00
Christian Grothoff
8cbe16a220
fix refresh/link tests 2022-02-08 09:58:22 +01:00
Christian Grothoff
7eb989b2df
-get melt and refresh-reveal to pass again 2022-02-08 00:12:56 +01:00
Christian Grothoff
17a30cbd70
-cleanups 2022-02-07 23:38:30 +01:00
Christian Grothoff
e27ff05e63
-fix config file name 2022-02-07 22:01:37 +01:00
Christian Grothoff
ca7fa98016
-fix config file names 2022-02-07 14:53:32 +01:00
Christian Grothoff
fb9ba5b1d2
-rename fest 2022-02-07 12:33:35 +01:00
Christian Grothoff
f7a1f41eee
-get testing to build 2022-02-07 11:01:54 +01:00
Christian Grothoff
031e365814
fix FTBFS of main logic 2022-02-07 10:55:07 +01:00
Christian Grothoff
2164c36f0f
got testing_api_cmd_refresh to compile 2022-02-07 10:09:12 +01:00
Christian Grothoff
5ff3189075
-fix recoup testing cmds 2022-02-06 20:04:36 +01:00
Christian Grothoff
03fd154a69
messing with CS/RSA fixes 2022-02-04 19:30:15 +01:00
Lucien Heuzeveldt
7d2a1a596a
split .conf files into rsa and cs 2022-02-04 19:24:30 +01:00
Christian Grothoff
9d40bd5a1e
split tests by rsa/cs 2022-02-04 18:45:42 +01:00
Gian Demarmels
8674f32aec
denomination CIPHER field per denom 2022-02-04 15:39:57 +01:00
Lucien Heuzeveldt
8d85c8b5b6
implement feedback 2022-02-04 15:37:30 +01:00
Gian Demarmels
5b7e8f9ac5
refactoring 2022-02-04 15:36:11 +01:00
Lucien Heuzeveldt
daa7fdcfb1
implement spend 2022-02-04 15:36:10 +01:00
Gian Demarmels
9c2aefaa51
removed varargs 2022-02-04 15:36:08 +01:00
Lucien Heuzeveldt
9074e66ebc
implement withdraw (nonce reuse check missing) 2022-02-04 15:35:31 +01:00
Lucien Heuzeveldt
82405b0ce5
implement CS key handling and csr endpoint 2022-02-04 15:34:19 +01:00
Gian Demarmels
18db69be2d
initial cs_secmod implementation 2022-02-04 15:33:11 +01:00
Gian Demarmels
f3fb7c29e6
added CS data structures, implemented CS keypair 2022-02-04 15:31:45 +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
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
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
Christian Grothoff
1acc851deb
-fix recoup ugliness 2021-12-16 20:18:44 +01:00
Christian Grothoff
1a1fafbd43
introducing GNUNET_TIME_Timestamp, recoup now with amounts 2021-12-14 16:04:40 +01:00
Christian Grothoff
5433c2a475
be more backwards-compatible 2021-12-08 21:14:36 +01:00
Christian Grothoff
e8fc5d8d5c
-fix command to avoid timing-dependent assertion failure 2021-12-02 06:41:49 +01:00
Christian Grothoff
94012d011c
add invariant checks 2021-11-25 13:37:47 +01:00
Christian Grothoff
ed6634f98e
-do not use parallel by default 2021-11-24 22:01:01 +01:00
Christian Grothoff
4ceef77ae5
add -r option to exchange-httpd 2021-11-24 21:57:39 +01:00
Christian Grothoff
61616fe2c8
-fix check 2021-11-24 21:47:21 +01:00
Christian Grothoff
0ac1b7abad
handle revoke followed immediately by a sign request 2021-11-24 17:44:26 +01:00
Christian Grothoff
a5a3b2ea9a
add taler-auditor-offline test command, fixes test_auditor_api warnings 2021-11-20 13:09:16 +01:00
Christian Grothoff
303f105985
-code cleanup 2021-11-20 12:41:50 +01:00
Christian Grothoff
52fe9d657b
-fix leaks and compiler warnings 2021-11-19 20:56:53 +01:00
Christian Grothoff
68a4d90134
-misc bugfixes 2021-11-19 11:47:52 +01:00
Christian Grothoff
bdaaa0f6cb
-fix misc. compiler warnings 2021-11-19 10:57:27 +01:00
Christian Grothoff
2078dd1bfb
-fix FTBFS in testing/ 2021-11-17 21:03:13 +01:00
Christian Grothoff
6e86a3c43c
-sms wip 2021-11-17 13:03:47 +01:00
Christian Grothoff
ed1db63a48
fix DB query and error handling 2021-11-17 11:01:19 +01:00
591cefd315
[age restriction] progress 3/n
- remove redundant struct members for age commitment hash
- undo pre-mature implementation in taler-exchange-secmod-rsa.c
- carry through age restriction parameter for TALER_denom_blind
2021-11-16 14:43:54 +01:00
Christian Grothoff
4b7ee48456
-new option 2021-11-15 20:06:34 +01:00
Christian Grothoff
e5ead88057
complete oauth logic (in theory) 2021-11-15 20:00:45 +01:00
Christian Grothoff
77bab62560
-fixes for test 2021-11-09 22:52:01 +01:00
Christian Grothoff
016551dbb4
misc TODOs for KYC left 2021-11-09 20:36:30 +01:00
Christian Grothoff
a9b2140b1e
get first KYC test to pass 2021-11-09 15:39:31 +01:00
Christian Grothoff
a79cc16067
sleep to get tests to pass 2021-11-08 23:31:16 +01:00
Christian Grothoff
e7d3d9a7b0
skip 2021-11-08 09:21:24 +01:00
Christian Grothoff
b7f0d636e9
-fix NPE 2021-11-08 08:54:12 +01:00
Christian Grothoff
d9690fb087
add KYC test skeleton 2021-11-08 08:52:25 +01:00
Christian Grothoff
398ef9d971
implement OAuth 2.0 service 2021-11-07 23:46:23 +01:00
Christian Grothoff
051deacb97
comment 2021-11-07 23:43:38 +01:00
Christian Grothoff
38c7180806
add oauth service faker 2021-11-07 23:42:03 +01:00
Christian Grothoff
6a611e39d1
add /kyc-proof cmd 2021-11-07 23:07:56 +01:00
Christian Grothoff
6000339fbc
fix comments 2021-11-07 19:37:06 +01:00
Christian Grothoff
6ffb32aaab
add required payto URI traits 2021-11-07 19:35:29 +01:00
Christian Grothoff
f374a5cd38
add wallet for KYC status check 2021-11-07 17:57:23 +01:00
Christian Grothoff
4cde9e3977
add kyc-wallet test command 2021-11-07 17:42:36 +01:00
Christian Grothoff
659cd4439d
expose KYC traits for withdraw/get deposits commands 2021-11-07 14:12:54 +01:00
Christian Grothoff
4fff4895ad
prepare for KYC tests 2021-11-07 12:45:49 +01:00
Christian Grothoff
cd8d4bede1
add missing file 2021-11-07 11:41:53 +01:00
Christian Grothoff
81f9b2c93e
-misc fixes 2021-11-06 19:57:34 +01:00
Christian Grothoff
9d6e104066
include h_extensions in deposit confirmation 2021-11-06 19:43:47 +01:00
Christian Grothoff
8175fdfa0f
introduce TALER_wallet_deposit_verify 2021-11-06 16:52:14 +01:00
Christian Grothoff
938e2ce39c
more RSA cleanup 2021-11-06 16:04:26 +01:00
Christian Grothoff
ba627bf84c
-fixes 2021-11-05 22:22:47 +01:00
Christian Grothoff
32da809fd6
abstract denomination keys a bit more 2021-11-05 14:00:10 +01:00
Christian Grothoff
9358b886f1
bugfix! 2021-11-01 22:57:46 +01:00
Christian Grothoff
8df5fba56a
-code cleanup 2021-11-01 18:15:47 +01:00
Christian Grothoff
22ce5bff77
fix sharding 2021-11-01 18:05:01 +01:00
Christian Grothoff
f02b5b7859
fix bug 2021-11-01 13:17:44 +01:00
Christian Grothoff
41bfdb4509
-fix FTBFS issues 2021-10-31 00:21:46 +02:00
Christian Grothoff
963a06c0aa
fix more FTBFS issues 2021-10-30 19:28:11 +02:00
Christian Grothoff
07ea1c9890
-fix testing FTBFS 2021-10-27 23:37:45 +02:00
Christian Grothoff
0996b83a65
libtalertesting compiles 2021-10-27 22:28:52 +02:00
Christian Grothoff
382fb837bd
-work on testing FTBFS 2021-10-27 21:59:04 +02:00
Christian Grothoff
b449c7353e
work on testing ftbfs 2021-10-27 18:37:42 +02:00
Christian Grothoff
3f630eafc4
the big macrofication of the traits 2021-10-27 15:21:48 +02:00
Christian Grothoff
acbadd5c6e
-modify C API to future-proof it for returning more details as required for KYC implementation 2021-10-13 18:52:59 +02:00
Christian Grothoff
ae8d481e1c
implement taler-exchange-transfer DB sharding logic 2021-09-05 15:25:57 +02:00
Christian Grothoff
c559b1c935
complete implementation of long-polling for reserve status; remove support for multi-threaded exchange httpd 2021-08-23 00:00:32 +02:00
Christian Grothoff
f174781b57
support long_poll_ms argument in bank API (#6987) 2021-08-12 13:13:42 +02:00
Christian Grothoff
26e061c212
-fix disting 2021-08-07 16:44:55 +02:00