Commit Graph

4837 Commits

Author SHA1 Message Date
b20ddf0c8a
[age restriction] progress 17/n - attestation implemented
- functions TALER_age_commitment_attest and TALER_age_commitment_verify
  implemented.
- age restriction implementation moved into util/age_restriction.c
2022-03-01 19:30:57 +01:00
e9eb00e285
Refactoring TALER_AgeCommitment
Instead of a single struct TALER_AgeCommitment, we now use
 1. TALER_AgeCommitment for the age mask and list public keys for age
    restriciton.
 2. TALER_AgeProof for list of private keys for age restriction
 3. TALER_AgeCommitmentProof for the aggregation of the former two.

Also, we introduce TALER_AgeAttestation as the EDDSA signature to attest
a particular age group, along with the function prototypes
TALER_age_commitment_attest and TALER_age_commitment_verify.
2022-03-01 17:02:37 +01:00
Marco Boss
b4f7fef224
stay with partitions for now - find shards on dev/boss/sharding 2022-03-01 15:54:47 +01:00
Marco Boss
0eed0c0de2
tested shard creation locally 2022-03-01 14:01:42 +01:00
Marco Boss
afb1b5f902
prepare sharding / partitioning init
- create exchange-0001.sql with functions to create all tables and partitions / shards
- create exchange-0002.sql for the master db
2022-03-01 12:11:58 +01:00
Christian Grothoff
e24a6369aa
test-sync passes again 2022-02-28 23:18:40 +01:00
Christian Grothoff
a8d9e7e0a6
-more bool cleanup 2022-02-28 22:46:24 +01:00
Christian Grothoff
3d4e580699
work on auditor-sync update to latest DB 2022-02-28 22:41:24 +01:00
Christian Grothoff
ee79f31275
-work on test_sync.sh, incomplete 2022-02-28 22:41:24 +01:00
Marco Boss
0efc7fd524
cleaner sql 2022-02-28 22:32:59 +01:00
Christian Grothoff
23bc09fe3c
get test-auditor and #7181 to pass 2022-02-28 20:37:19 +01:00
Christian Grothoff
8f77bda2e0
-towards getting auditor tests to pass again with new logic 2022-02-28 16:13:30 +01:00
Christian Grothoff
d7bbf934a0
make DB generation work with new CS logic 2022-02-28 16:13:30 +01:00
Marco Boss
58eb3d95fc
towards adding shard/partitioning init functionality 2022-02-27 21:23:20 +01:00
Marco Boss
99dd36f7f6
add index on wire_targets
- better performance on local db
- many queries use wire_target_serial_id as join condition -> discussion use this as shard key?
2022-02-26 17:37:52 +01:00
Christian Grothoff
f11cab90ff
-add parens 2022-02-24 23:58:17 +01:00
Marco Boss
3d52f52164
Fix ON CONFLICT statements for distributed tables 2022-02-24 14:31:19 +01:00
Christian Grothoff
fd9ba53c49
make_coin_known can experience serialization failures, add retry logic 2022-02-24 13:53:19 +01:00
Christian Grothoff
10b9023575
-on conflict example 2022-02-24 10:16:10 +01:00
Christian Grothoff
5e5004020e
-fix aggregator with deferred constraint 2022-02-24 10:06:43 +01:00
Christian Grothoff
e253a5b055
-unique constraint is crucial 2022-02-24 09:06:15 +01:00
b244e23859
-make age commiment structs const in traits 2022-02-23 16:08:27 +01:00
7910ca183f
double melt test no works with age restriction
- added missing field h_age_commitment in exchange's error response
- slight refactoring
2022-02-22 18:35:10 +01:00
Christian Grothoff
fbdc1996a6
-use correct idx 2022-02-22 17:28:44 +01:00
Christian Grothoff
900b2d6fd9
-use correct idx 2022-02-22 17:26:27 +01:00
26158fc725
[age restriction] progress 16/n - refresh/reveal/link tests
Age restriction works now with withdraw, melt/refresh/reveal and link,
including tests.

However, there is still a problem with the tests:  The melting operation
"refresh-melt-failing-age" that should fail (because of conflict), but
currently fails for other reasons.  I decided to disable that particular
test (and the next) and submit the patch I have so far.
2022-02-22 14:34:47 +01:00
3cd6156513
do not clamp EdDSA private keys 2022-02-21 16:08:45 +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
19624fd776
-ensure different HKDF is used in melt vs. withdraw 2022-02-20 21:51:46 +01:00
Christian Grothoff
bc150693de
-work around missing constraint, if not present 2022-02-20 19:26:01 +01:00
Thien-Thi Nguyen
e02c850acf
add libtalerextensions.la to _LDADD (two instances)
* src/benchmark/Makefile.am (taler_bank_benchmark_LDADD): ...here.
* src/exchange-tools/Makefile.am (taler_auditor_offline_LDADD): Likewise.
2022-02-19 21:36:08 -05:00
Christian Grothoff
bc3ec56373
reject wire deadline of 'never' (#7157) 2022-02-19 21:26:27 +01:00
Christian Grothoff
bccdf7e452
-reduce default fakebank memory allocation (see #7156) 2022-02-19 21:21:24 +01:00
71af4c539e
-reducing FIXMEs re: age restriction
- deposit info now carries h_age_commitment
- benchmark does age commitment, too
2022-02-18 02:07:38 +01:00
f4f502d037
-minor merge conflict resolves 2022-02-18 00:50:31 +01:00
a78b3345fb
[age restriction] progress 15/n - melt/refresh/reveal and recoup
Added age restriction support for
  - melt/refresh/reveal
  - recoup

However, tests are not yet implemented for those flows.

Also: minor fixes and refactoring.
2022-02-18 00:30:19 +01:00
Christian Grothoff
22fe5da700
-migrate to Postgress 11: use BIGINT GENERATED BY DEFAULT AS IDENTITY instead of BIGSERIAL 2022-02-17 23:08:34 +01:00
Christian Grothoff
d380ff1ffe
-restore fee structure 2022-02-17 19:02:55 +01:00
Christian Grothoff
802f4986fe
-fix Oec FTBFS 2022-02-17 15:29:50 +01:00
Christian Grothoff
f74757e234
-another OEC FIXME 2022-02-17 15:28:00 +01:00
Christian Grothoff
721c2c88d5
-use age_mask 2022-02-17 15:23:56 +01:00
Christian Grothoff
668342cd41
-fix test_crypto FTBFS 2022-02-17 15:23:05 +01:00
Christian Grothoff
81bf3ebeb4
-fix bad choice during merge 2022-02-17 15:19:05 +01:00
Christian Grothoff
5147993785
-add missing file 2022-02-17 15:18:12 +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
Christian Grothoff
ef938e0f7a
-correctly implement CS idempotency check on withdraw 2022-02-15 17:07:13 +01:00
Christian Grothoff
8ecbdeb55b
-actually, commit phase does take care of this 2022-02-14 23:15:29 +01:00
Christian Grothoff
bd77bcb52d
-towards fixing the protocol 2022-02-14 23:02:25 +01:00
Christian Grothoff
f4f40a31ef
-fixmes 2022-02-14 13:03:26 +01:00