Commit Graph

5356 Commits

Author SHA1 Message Date
Christian Grothoff
4199e4438d
rename function that is for the merchant signature to have merchant in the name 2022-05-07 23:21:27 +02:00
Christian Grothoff
370ee3a417
-fix leaks 2022-05-07 18:58:29 +02:00
Christian Grothoff
65943dcb13
-payment router skeleton 2022-05-02 21:09:07 +02:00
Christian Grothoff
31e554ad46
-remove FIXMEs 2022-05-02 20:53:29 +02:00
Christian Grothoff
7ebdac0a8b
-investigate FIXME 2022-05-02 20:51:34 +02:00
Christian Grothoff
0a7b75b2cf
-regen DBs to fix #7236 2022-05-02 20:34:41 +02:00
Christian Grothoff
40440604dd
-address some FIXMEs 2022-05-02 19:55:40 +02:00
Christian Grothoff
1173502189
-fix leak 2022-05-02 19:48:23 +02:00
Marco Boss
72ae759fa0
include shard domain and remote users in taler config 2022-05-02 00:27:59 +02:00
Christian Grothoff
a4ede7caec
add batch withdraw to demultiplexer 2022-05-01 13:16:03 +02:00
Christian Grothoff
3d80b20459
-get batch withdraw to build 2022-05-01 13:01:32 +02:00
Christian Grothoff
7718cd4153
skeleton for batch withdraw logic (not finished) 2022-05-01 12:45:12 +02:00
Christian Grothoff
f99fb9ad4b
-GET purse test passes 2022-04-30 17:35:24 +02:00
Christian Grothoff
fed8353c67
-expand p2p tests with purse long poller 2022-04-30 14:03:57 +02:00
Christian Grothoff
fb8349a7e3
-add notifications for purse events 2022-04-30 13:46:35 +02:00
Christian Grothoff
8e4969eb66
-implement purses_get CMD 2022-04-30 12:02:43 +02:00
Christian Grothoff
c48b51be6f
-fix help text 2022-04-28 22:37:39 +02:00
1bb992d777
-logging 2022-04-27 21:00:23 +02:00
Christian Grothoff
3e8c797bb7
-get p2p test to pass 2022-04-27 13:28:28 +02:00
Christian Grothoff
d623cab1a3
-work on p2p payments 2022-04-27 13:09:41 +02:00
Christian Grothoff
1396afc136
-drop 2022-04-27 10:34:36 +02:00
Christian Grothoff
521e0bbcb5
-p2p fixes 2022-04-27 10:34:36 +02:00
9a05781ab3
-fix derivation, logging 2022-04-27 00:00:15 +02:00
17a00ef22d
age restriction: make seed a HashCode due to endianess and security level concerns 2022-04-26 23:34:14 +02:00
47e276e11a
-remove debug logging 2022-04-26 23:10:50 +02:00
be536de23c
various age restriction fixes, some of them half-baked 2022-04-26 23:10:12 +02:00
Christian Grothoff
336f2d8991
-misc. minor fixes 2022-04-26 17:46:36 +02:00
Christian Grothoff
25aa208d12
-draft pull p2p test case 2022-04-26 17:05:12 +02:00
Christian Grothoff
932cef3d8c
-complete purses_get draft implementation 2022-04-26 13:34:18 +02:00
Christian Grothoff
efb8c8037b
-implement purses get db sketch 2022-04-26 13:24:51 +02:00
a92d3aae7b
-use uint32_t instead of uint8_t + padding for the age 2022-04-26 11:23:27 +02:00
f24fc18564
use htonl, not GNUNET_htonll 2022-04-26 01:50:31 +02:00
38fcca16c8
fix age attestation signature padding and endianess 2022-04-26 01:28:36 +02:00
Christian Grothoff
505989a507
-mark FIXMEs 2022-04-25 13:30:03 +02:00
Christian Grothoff
5c0cbba761
-sketch implementation of exchange_do_reserve_purse() 2022-04-25 13:18:37 +02:00
Christian Grothoff
94038bfcfd
-sketch implementation of exchange_do_reserve_purse() 2022-04-25 13:11:13 +02:00
Christian Grothoff
b4965db0d2
-fix fieldnames, regenerated DBs 2022-04-24 20:49:11 +02:00
Christian Grothoff
b671d6b25d
get first p2p test to pass 2022-04-24 16:02:34 +02:00
Christian Grothoff
aedd2014ec
-misc p2p fixes 2022-04-24 15:29:58 +02:00
Thien-Thi Nguyen
36c568ab8d
Remove empty GNUNET_NETWORK_STRUCT_{BEGIN,END} pair 2022-04-24 08:48:51 -04:00
Christian Grothoff
345c141bad
-work on p2p payments 2022-04-23 20:50:27 +02:00
Christian Grothoff
b7a4fd401e
add subcommand to sign global fees in tests 2022-04-23 20:02:28 +02:00
Christian Grothoff
a1825d38b3
integrate p2p handlers with main dispatcher 2022-04-23 19:45:33 +02:00
Christian Grothoff
e270bc32cc
-expand p2p test to cover purse-with-deposit-merge sequence 2022-04-23 19:32:07 +02:00
Christian Grothoff
b054c969cb
-add more accounting fields to reserve table 2022-04-23 19:01:28 +02:00
Christian Grothoff
cf358f9546
-uncrustify 2022-04-23 18:13:15 +02:00
Christian Grothoff
e731739396
-create cmd for purse deposit 2022-04-23 18:11:31 +02:00
Christian Grothoff
cf11b3f0b2
-create cmd for purse creation from reserve 2022-04-23 18:01:00 +02:00
Christian Grothoff
132359a444
add purses-get to build 2022-04-23 12:34:48 +02:00
Thien-Thi Nguyen
a72337a5f3
Add abstractions: TALER_exchange_deposit_{sign,verify}
This change also removes ‘struct TALER_DepositTrackPS’
from the public API.

* src/include/taler_signatures.h (struct TALER_DepositTrackPS): Delete.

* src/util/exchange_signatures.c (struct TALER_DepositTrackPS): New.
  (TALER_exchange_deposit_sign): New func.
  (TALER_exchange_deposit_verify): New func.

* src/include/taler_crypto_lib.h
  (TALER_exchange_deposit_sign): New func decl.
  (TALER_exchange_deposit_verify): New func decl.

* src/exchange/taler-exchange-httpd_deposits_get.c
  (TEH_handler_deposits_get): Rework to use ‘TALER_exchange_deposit_verify’.

* src/lib/exchange_api_deposits_get.c
  (TALER_EXCHANGE_deposits_get): Rework to use ‘taler_exchange_deposit_sign’.
2022-04-22 20:29:45 -04:00
Christian Grothoff
e40a16aa8e
towards GET /purses/PID 2022-04-22 23:48:15 +02:00
Christian Grothoff
c30c7cde4d
add purses_deposit to build 2022-04-22 23:43:15 +02:00
Christian Grothoff
8ef3997160
-make purses_get compile 2022-04-22 23:34:37 +02:00
Christian Grothoff
ae2f1ced8b
skeleton for GET /purses/ client 2022-04-22 23:22:06 +02:00
Christian Grothoff
1002ac13e4
skeleton for /purses//deposit 2022-04-22 23:14:29 +02:00
31c545b9e8
-fixed tests for age restriction, now using correct seed 2022-04-22 15:15:57 +02:00
Christian Grothoff
eea35ffb01
-skeleton logic for deposits into purse 2022-04-21 22:44:51 +02:00
Christian Grothoff
53cde04c4e
-add FIXME 2022-04-21 21:05:49 +02:00
Christian Grothoff
582acc3cf3
add taler-exchange-httpd_reserves_purse.c to build 2022-04-21 21:04:33 +02:00
Christian Grothoff
c3e67dfc6b
-add purse_create_with_merge to build 2022-04-21 20:36:14 +02:00
Christian Grothoff
f5eef0c816
-more work on purse creation for reserve 2022-04-21 20:25:01 +02:00
061c4f72bd
-m statically link libtalerextensions.la from build-tree 2022-04-21 16:13:00 +02:00
b84c88fc04
Fixed seed size for TALER_age_restriction_commit
Also, added src/util/tv_age_restriction.{c,json} for/as test vectors for
age restriction.
2022-04-21 14:27:29 +02:00
137bd97154
cleanup of extension API
- removed TALER_extensions_init()
- added TALER_extension_age_restriction_register()
2022-04-21 12:54:59 +02:00
Christian Grothoff
4af1772f12
-work on create purse with merge 2022-04-20 23:07:44 +02:00
Christian Grothoff
1e0789eda3
-more deposit GET cleanup 2022-04-20 20:18:03 +02:00
Christian Grothoff
8776f16b06
-refactor deposits_get logic to help ttn with signature logic refactoring 2022-04-20 20:05:25 +02:00
14b57d3e13
find extensions case-insensitively 2022-04-19 18:37:56 +02:00
Thien-Thi Nguyen
509657bfef
Add abstraction: TALER_merchant_contract_sign
Additionally, this change removes ‘struct TALER_ProposalDataPS’
from the public API.

* src/include/taler_crypto_lib.h
  (TALER_merchant_contract_sign): New func decl.

* src/include/taler_signatures.h
  (struct TALER_ProposalDataPS): Delete.

* src/util/merchant_signatures.c
  (struct TALER_ProposalDataPS): Move here from taler_signatures.h.
  (TALER_merchant_contract_sign): New func.
2022-04-17 19:53:17 -04:00
Thien-Thi Nguyen
a7ad5a07e2
Add abstractions: TALER_merchant_pay_{sign,verify}
Additionally, this change removes ‘struct TALER_PaymentResponsePS’
from the public API.

* src/include/taler_crypto_lib.h
  (TALER_merchant_pay_sign): New func decl.
  (TALER_merchant_pay_verify): New func decl.

* src/include/taler_signatures.h
  (struct TALER_PaymentResponsePS): Delete.

* src/util/merchant_signatures.c
  (struct TALER_PaymentResponsePS): Move here from taler_signatures.h.
  (TALER_merchant_pay_sign): New func.
  (TALER_merchant_pay_verify): New func.
2022-04-17 04:53:17 -04:00
Christian Grothoff
b496b8fed5
add more flexibility to endpoint naming for KYC 2022-04-16 17:51:27 +02:00
Christian Grothoff
fc1383ebd1
-skeleton for p2p test 2022-04-15 16:02:50 +02:00
Christian Grothoff
001f406ad6
regen test DBs to fix #7220 2022-04-15 11:42:57 +02:00
Christian Grothoff
a2604f7967
-style fix 2022-04-15 11:18:33 +02:00
Christian Grothoff
a13f90a15e
add wirewatch shutdown shard cleanup logic 2022-04-14 00:00:50 +02:00
Christian Grothoff
5882e6b56b
-edit correct file 2022-04-13 10:02:01 +02:00
Christian Grothoff
00928aba0a
-wip on p2p payments 2022-04-13 09:50:53 +02:00
Christian Grothoff
2299b8b193
-draft for purse merge command 2022-04-12 16:35:05 +02:00
Christian Grothoff
3893afa49c
-implementing purse merge DB logic 2022-04-12 11:58:21 +02:00
Christian Grothoff
cacb019501
testing command to GET contracts 2022-04-11 23:27:23 +02:00
Christian Grothoff
b91a406525
-finish first implementaation of exchange_api_contracts_get.c 2022-04-11 19:22:30 +02:00
Christian Grothoff
78cf27aaac
-skeleton for GET /contracts/ logic: add to build system 2022-04-11 18:58:54 +02:00
Christian Grothoff
6aad1fa351
-skeleton for GET /contracts/ logic 2022-04-11 18:56:05 +02:00
Christian Grothoff
7a1dcc52ca
-towards new GET /contracts/$C_PUB hander 2022-04-11 16:48:30 +02:00
Christian Grothoff
c8c1005297
-add draft handler for purse merge client request 2022-04-11 15:34:45 +02:00
Christian Grothoff
d30b7f8eeb
-load wire fees only when needed 2022-04-11 15:23:29 +02:00
Christian Grothoff
bd09b2302a
-add exchange-internal API to lookup current wire fees 2022-04-11 15:04:26 +02:00
Christian Grothoff
72dd9514aa
-draft implementation of /purses//merge endpoint 2022-04-11 13:52:06 +02:00
Christian Grothoff
f9971faa7a
-draft for merge endpoint 2022-04-08 19:23:19 +02:00
Marco Boss
fe2a15c558
Update queries for better network load in sharded setup 2022-04-06 14:21:57 +02:00
Christian Grothoff
89431a41b7
-complete va coin parser of purse_create_deposit CMD 2022-04-06 13:54:08 +02:00
Marco Boss
0a10644b81
improve some queries for sharding 2022-04-06 13:33:47 +02:00
Christian Grothoff
22cfc59d90
-towards testing purse creation 2022-04-06 12:50:07 +02:00
Marco Boss
adb999ce2c
fix sharding 2022-04-06 11:33:50 +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
7191641406
implement more DB functions 2022-04-04 20:42:26 +02:00
Christian Grothoff
df8ff01f29
add contract_sig field 2022-04-04 17:04:31 +02:00
Marco Boss
970225516e
add p2p tables to sharding logic 2022-04-04 16:40:39 +02:00
Christian Grothoff
5147c8b788
-fix FTBFS 2022-04-04 08:55:01 +02:00
Christian Grothoff
831e32b7ad
-add logic for econtract_sig signatures 2022-04-04 07:29:50 +02:00
Marco Boss
393cea46d1
implement shard node setup and drop 2022-04-02 19:07:12 +02:00
Marco Boss
7ba135362e
fix name 2022-04-02 18:59:20 +02:00
Marco Boss
ae75ff2cb4
extend sharding logic that shard nodes can be initialied and dropped 2022-04-02 18:43:49 +02:00
Christian Grothoff
6f027fc130
add additinal signature 2022-04-02 17:25:18 +02:00
Marco Boss
caabee9e94
install shard-0000.sql 2022-04-02 14:33:50 +02:00
Marco Boss
86ee587b03
add shard-0000.sql 2022-04-02 14:31:59 +02:00
Marco Boss
ca536c0379
fix return 2022-04-02 14:25:04 +02:00
Marco Boss
5880a8ec4f
drop functions 2022-04-02 13:42:00 +02:00
Marco Boss
f596b27a97
fix format specifiers 2022-04-02 12:18:56 +02:00
Marco Boss
82718aecf8
fix argument to create_shard_server 2022-04-02 11:52:21 +02:00
Marco Boss
1b76ba5e9a
Include sharding sql logic 2022-04-02 09:28:25 +02:00
Marco Boss
0ba219fe5b
add permissions 2022-04-02 09:27:30 +02:00
Christian Grothoff
6c66f6f5cf
rollback transaction to end transaction scope before releasing the shard (fixes #7216) 2022-04-02 03:50:30 +02:00
Christian Grothoff
caf66486e7
work on purse creation logic 2022-04-01 16:39:07 +02:00
Marco Boss
45916b992b
remove built sql files from vc 2022-03-31 21:49:35 +02:00
Marco Boss
75c1e10a67
add shard init for shard node 2022-03-31 21:31:07 +02:00
Marco Boss
0cf9a9984c
add sharding logic 2022-03-31 17:00:44 +02:00
Christian Grothoff
747ae5ef09
privatize more signature structs, simplify code 2022-03-31 12:37:39 +02:00
Christian Grothoff
eadee56dcf
-remove row check, not stable enough to assert on 2022-03-30 12:00:20 +02:00
Christian Grothoff
6040c9ff0f
make struct private again 2022-03-30 01:36:52 +02:00
Sebastian
e5b65aa443
fix: wtid request param size 2022-03-29 17:53:50 -03:00
Sebastian
adc9dae4cc
make TALER_RefundConfirmationPS public 2022-03-29 14:12:45 -03:00
Christian Grothoff
074ea7502e
centralize exchange online signature logic 2022-03-29 15:21:49 +02:00
Christian Grothoff
3249687b2a
rename to avoid symbol conflict with musl 2022-03-28 18:18:08 +02:00
Christian Grothoff
b25c9398b7
starting work on purse-create endpoint 2022-03-28 17:50:23 +02:00
Christian Grothoff
a227ee6d1b
-first cut at contract encryption and decryption 2022-03-28 13:57:43 +02:00
Christian Grothoff
ee4077ef80
starting with purse creation client API 2022-03-28 13:19:40 +02:00
30985c0975
-rename variable 2022-03-28 12:34:14 +02:00
ccf2d69dfb
-fix leak in test_age_restriction.c 2022-03-28 12:33:41 +02:00
488d217381
-fix leaks in test_crypto.c 2022-03-28 11:17:49 +02:00
a2386abadb
[age restriction] progress 19/19 (final) - Use Edx25519 for crypto
We switch from EcDSA to Edx25519 for the underlying signature scheme.

Edx25519 is implemented in gnunet, starting with (gnunet-)commit
ce38d1f6c9bd7857a1c3bc2094a0ee9752b86c32.
2022-03-28 11:04:00 +02:00
Christian Grothoff
d61a19c275
-fix leak, uninitialized ps 2022-03-27 16:11:35 +02:00
Christian Grothoff
1f1d675f3d
-remove tiny field, no longer needed 2022-03-27 14:34:44 +02:00
Christian Grothoff
b9a9af3a59
new aggregator mega transaction logic 2022-03-27 13:48:25 +02:00
Christian Grothoff
d0a69da895
towards removing tiny bit 2022-03-27 10:32:28 +02:00
Christian Grothoff
646c9ad061
fix leak 2022-03-27 05:02:21 +02:00
Christian Grothoff
098d572471
change sharding strategy for refund table 2022-03-26 10:47:10 +01:00
Christian Grothoff
783e2ae424
add partitions to new p2p tables 2022-03-26 09:00:19 +01:00
Christian Grothoff
238761c87d
-regen DBs 2022-03-25 14:07:31 +01:00
Christian Grothoff
b856d56d95
rework deposits sharding, towards making aggregator faster (not necessarily done) 2022-03-24 17:33:29 +01:00
Christian Grothoff
c782dfe2aa
first draft of service API for p2p payments 2022-03-24 13:06:04 +01:00
Christian Grothoff
6ffc2c68a3
better query 2022-03-24 09:05:55 +01:00
b0cf653b83
implement more taler-crypto-worker ops 2022-03-24 01:37:48 +01:00
e336c02d14
implement more taler-crypto-worker ops 2022-03-24 01:10:00 +01:00
Christian Grothoff
f091808425
more skeleton logic for P2P operations on DB 2022-03-23 12:25:45 +01:00
Christian Grothoff
41399bc224
revise P2P signatures and signing schema to address recently discovered design concern resulting in the split of the purse key into purse-contract and purse-merge keys 2022-03-23 06:54:43 +01:00
Christian Grothoff
9b7716f9f2
fix #7151 2022-03-23 05:19:09 +01:00
Christian Grothoff
6505f69869
add one more p2p signature 2022-03-22 12:12:00 +01:00
Christian Grothoff
6868b78692
fix typo 2022-03-22 12:06:12 +01:00
Christian Grothoff
cce049a0b5
add missing table drops 2022-03-22 11:51:56 +01:00
Christian Grothoff
734b68d45e
-fix drop SQL issue: drop functions properly 2022-03-22 05:33:08 +01:00
Christian Grothoff
e200e86032
implement helper functions for p2p signatures, clean up existing signature logic 2022-03-22 02:33:51 +01:00
Christian Grothoff
bdc797a583
FIXMEs for Oec 2022-03-21 08:35:19 +01:00
Christian Grothoff
c7e2d206ba
add logic to check timestamp, revise history balance calculation logic in client 2022-03-21 03:59:31 +01:00
Christian Grothoff
1f86b02ffa
first rough-cut implementation of /reserves//history endpoint 2022-03-21 03:04:47 +01:00
Christian Grothoff
f5f15e6531
first rough-cut implementation of POST /reserves//status 2022-03-21 02:39:36 +01:00
Christian Grothoff
b560527ee3
ideas for mboss 2022-03-20 16:52:38 +01:00
Christian Grothoff
65808106c7
add test for reserve GET long polling 2022-03-20 15:42:16 +01:00
Christian Grothoff
532fabf20a
add variant of GET /reserves/ testing command with support for long polling (to diagnose reserve long polling issue reported by FD) 2022-03-20 14:50:13 +01:00
Christian Grothoff
28203913e2
add p2p tables from dd13 2022-03-20 14:03:07 +01:00
Christian Grothoff
e7fa97cc87
-rename file for consistency 2022-03-20 13:22:32 +01: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
1bb5a77c8d
add new reserve status/history signatures 2022-03-20 02:39:28 +01:00
Christian Grothoff
c83892ba29
-style fixes 2022-03-20 02:39:12 +01:00
Christian Grothoff
69927847cc
-style fixes 2022-03-20 02:38:48 +01:00
Christian Grothoff
5406d564fb
-style fixes 2022-03-19 16:16:28 +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
685837ad28
simplify auditor_api_handle.c, do not modify global context with respect to 'Expect' header 2022-03-19 15:25:43 +01:00
Christian Grothoff
f5e5f4b843
more work on recoup_by_reserve: add new materialized index to avoid hitting all partitions for the query 2022-03-19 14:05:45 +01:00
Christian Grothoff
f22125ce0f
add missing index, move indices closer to table generation 2022-03-19 12:58:37 +01:00
Christian Grothoff
52a8b8f888
-code cleanup 2022-03-19 08:34:58 +01:00
Christian Grothoff
280f94c3a6
improve style of some SQL queries (no semantic change) 2022-03-19 08:27:01 +01:00
Christian Grothoff
f0a95037ef
-fix memory leak 2022-03-19 08:26:40 +01:00
Christian Grothoff
badfde8962
add deposits_by_coin table to speed-up certain queries (in theory) 2022-03-18 15:47:25 +01:00
Christian Grothoff
142a369e43
add selection by shard, ignore KYC in revocation test aggregation 2022-03-18 08:54:08 +01:00
Christian Grothoff
23af6c3c41
change table structures again to shard better by coin_pub and not use known_coin_id so much 2022-03-18 01:57:39 +01:00
Christian Grothoff
a59d39f699
reinit auditor bd: column dropped 2022-03-17 15:09:14 +01:00
Christian Grothoff
eac8b8c0da
-re-enable test-revocation.sh, works again 2022-03-17 15:06:58 +01:00
Christian Grothoff
bab36a2ac8
-remove dead field, return h_commitment_age to auditor 2022-03-17 14:45:12 +01:00
Christian Grothoff
12809b28ec
-misc fixes 2022-03-17 14:16:34 +01:00
Marco Boss
63879d9d20
more explicit cipher usage counters 2022-03-17 14:09:12 +01:00
Christian Grothoff
fe94405554
regenerate revokedb 2022-03-15 13:09:32 +01:00
Marco Boss
7529939a0f
add metrics for number of crypto operations 2022-03-14 20:06:07 +01:00
Christian Grothoff
687f0cab82
add arguments for new fees 2022-03-14 16:03:01 +01:00
Christian Grothoff
a8d80d519d
attempt to make GRID5K_MARCO_OPT superfluous 2022-03-14 07:34:21 +01:00
Marco Boss
7a74cde9c7
add option to exclude reserve history in grid5k experiments 2022-03-10 10:26:44 +01:00
Christian Grothoff
9a3d993d07
-also work with h_payto trait 2022-03-10 01:48:46 +01:00
cd5ee2338c
-ensure label has no zero bytes 2022-03-08 11:47:51 +01:00
Christian Grothoff
ab3868f83b
-add global-fee subcommand to taler-exchange-offline 2022-03-05 19:03:40 +01:00
Christian Grothoff
54106e63dc
add client API for setting global fees 2022-03-05 18:18:25 +01:00
Christian Grothoff
a080f11890
add more logic for new global fees 2022-03-05 17:14:32 +01:00
Christian Grothoff
57470e4c08
-more work on global_fees 2022-03-05 16:16:38 +01:00
Christian Grothoff
5fa977cc05
work on global fee structure 2022-03-05 15:13:07 +01:00
Christian Grothoff
841e56bafd
also sync global fees table (new) 2022-03-05 14:38:03 +01:00
Christian Grothoff
7ff58c3d8f
refactor /wire to include logic to return the wad fee (for W2W payments) 2022-03-05 14:36:55 +01:00
8a906bf96c
sync tables "extensions" and "extension_details" with auditor 2022-03-05 13:39:01 +01:00
Christian Grothoff
43f8ab6b48
add signing/verifying functions for global fees 2022-03-05 12:04:13 +01:00
Christian Grothoff
4835ddf60b
introduce sets for wire fees and global fees 2022-03-05 11:56:58 +01:00
Christian Grothoff
3a1f418603
improve URI path checking, make it more strict and simplify logic 2022-03-04 22:29:29 +01:00
d0b27833b2
[age restriction] added unit test for get_age_group 2022-03-04 17:00:28 +01:00
Marco Boss
f5e1cf5e6d
rewrite query for recoup_by_reserve 2022-03-04 13:22:28 +01:00
Christian Grothoff
f9a2808ed0
-fix kyc test 2022-03-04 00:30:43 +01:00
Christian Grothoff
1643b745af
use 32 byte hash for hpayto, use that for joins on queries to better align queries with partitions 2022-03-03 23:52:08 +01:00
Christian Grothoff
f951cdef8c
include shard when marking deposits tiny/done to make better use of partitions/shards 2022-03-03 19:39:25 +01:00
4c53d42e44
[age restriction] progress 18/n - attestation tested
- Unit-tests for commit, derive, attest and verify added, with multiple
  combinations of minimum age and commited age.
- Fixed crypto implementation (eddsa -> ecdsa)
- Using now standard functionality from GNUNET:
  GNUNET_CRYPTO_ecdsa_{private,public}_key_derive

All tests pass (unit tests in util/ and 'make check' in testing).
2022-03-03 19:35:24 +01:00
Christian Grothoff
476ae53808
simply defer all, only way to do well with partitions 2022-03-03 17:48:00 +01:00
Thien-Thi Nguyen
80fc8231ad
Don't hardcode directory in taler-auditor-sync(1) invocation 2022-03-02 17:32:52 -05:00
Marco Boss
57e3864c09
Include partitioning in dbinit 2022-03-02 19:03:54 +01:00
Marco Boss
79d123d1b4
fix num partitions 2022-03-02 19:01:27 +01:00
Marco Boss
7f30609ff0
use plain uint32_t 2022-03-02 17:22:43 +01:00
Marco Boss
548613c617
fix 2022-03-02 13:30:44 +01:00
Marco Boss
41a9a73eb8
fix 2022-03-02 13:21:45 +01:00
10d7d93ad8
-tests now with age restriction 2022-03-02 11:59:21 +01:00
Marco Boss
cab654237f
clearer doc 2022-03-02 11:28:28 +01:00
7624db4efd
-refactor TALER_AgeMask.mask -> TALER_AgeMask.bits
also: fix off-by-one in TALER_age_restriction_commit
2022-03-02 10:59:42 +01:00
Marco Boss
2abe9bf6d7
include partitioning logic in dbinit 2022-03-02 10:50:51 +01:00
4978b1e966
-amend missing parts to commit b20ddf0c8
- functions TALER_age_commitment_attest and
      TALER_age_commitment_verify
      implemented.
    - age restriction implementation moved into util/age_restriction.c
2022-03-02 07:58:55 +01:00
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
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
730d8c893c
-more doxygen fixes 2022-02-12 12:35:03 +01:00
Christian Grothoff
d81b3f13d1
-remove legacy uncrustify workaround 2022-02-12 12:21:27 +01:00
Christian Grothoff
a0d9d59b73
-refactor to address FIXME 2022-02-12 12:20:12 +01:00
Christian Grothoff
88033aa15e
-removed confused TODOs 2022-02-12 12:15:02 +01:00
Christian Grothoff
d581729443
-removed confused TODOs 2022-02-12 12:14:24 +01:00
Christian Grothoff
db8cdc8c4c
-remove addessed documentation FIXMEs 2022-02-12 12:10:33 +01:00
Christian Grothoff
ea4be7ba6f
-swap argument/rval for nicer code 2022-02-12 11:42:25 +01:00
Christian Grothoff
8a3e88fbf1
-add missing comment 2022-02-12 11:27:57 +01:00
Christian Grothoff
c2549e8b1e
-address FIXMEs 2022-02-12 11:24:32 +01:00
Christian Grothoff
bc14c215b3
-doxygen fixes 2022-02-12 11:12:33 +01:00
Christian Grothoff
819b67426c
-doxygen fixes 2022-02-12 10:33:23 +01:00
Christian Grothoff
2cdbf58006
-remove redundant comments 2022-02-12 10:05:45 +01:00
Christian Grothoff
c93150b8cd
-work on more FIXMEs 2022-02-12 01:00:31 +01:00
Christian Grothoff
94a5359494
-address misc. fixmes 2022-02-12 00:52:19 +01:00
Christian Grothoff
3b1e742dde
-simplify: nonce no longer hashed 2022-02-11 18:00:20 +01:00
Christian Grothoff
9f77398fe2
-fix use of uninit memory in test 2022-02-11 17:44:18 +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
4472cbaf9d
-simplify structures 2022-02-11 11:55:59 +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
ed5ef2b5f7
also pass ewvs during recoup-refresh 2022-02-09 22:05:10 +01:00
Christian Grothoff
025922950d
pass exchange values to /recoup 2022-02-09 22:02:29 +01:00
Christian Grothoff
e6598cfa1a
-get refresh to work 2022-02-09 21:25:57 +01:00
Christian Grothoff
758f13b557
-fix error handling 2022-02-09 19:28:34 +01:00
Christian Grothoff
008ba5cf89
implement CS refresh-reveal signing, simplify TEH keys logic 2022-02-09 19:24:29 +01:00
Christian Grothoff
8e4eaabc96
-fix refresh commitment check for CS 2022-02-09 19:17:50 +01:00
Christian Grothoff
4ee82c1ed3
-fix init of nonces in reveal request 2022-02-09 18:42:16 +01:00
Christian Grothoff
730f9e8865
-more refresh CS fixes 2022-02-09 17:30:02 +01:00
Christian Grothoff
1777db292e
-fix withdraw logic 2022-02-09 16:43:36 +01:00
Christian Grothoff
d05c561e4f
-fix fTBFS 2022-02-09 15:33:20 +01:00
Christian Grothoff
12290af845
-clean up crypto 2022-02-09 10:49:10 +01:00
Christian Grothoff
d559610da7
-poison 2022-02-09 10:38:02 +01:00
Christian Grothoff
77eaa685b9
-indent 2022-02-09 10:11:40 +01:00
Christian Grothoff
88b84d01cb
-simpilify 2022-02-09 10:09:01 +01:00
Christian Grothoff
b461fc6fc4
-simpilify 2022-02-09 10:03:10 +01:00
Christian Grothoff
e82d18325a
-dce 2022-02-09 10:02:10 +01:00
Christian Grothoff
bc15478c3b
-fix leak 2022-02-09 09:25:32 +01:00
Christian Grothoff
c3e1aa36ee
-fix leak 2022-02-09 09:19:56 +01:00
Christian Grothoff
dfc5039d9a
-fix leak 2022-02-09 09:18:35 +01:00
Christian Grothoff
bd930549fb
initialize reserved field 2022-02-09 09:13:40 +01:00
Christian Grothoff
cb723a82fd
-initialize cipher type 2022-02-08 23:25:16 +01:00
Christian Grothoff
6cbf7218d8
patch from Lucien 2022-02-08 22:58:12 +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
133cf76f0d
use 'NULL' 2022-02-08 00:15:15 +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
a8b683fe3f
only one helper must be OK 2022-02-07 21:55:07 +01:00
Christian Grothoff
b79457cec6
-style fixes 2022-02-07 21:45:40 +01:00
Christian Grothoff
a5b8244948
-wake clients if we have 0 dks 2022-02-07 15:40:21 +01:00
Christian Grothoff
271711ae64
run denom helper even with zero denoms, as we may be using the other cipher type only 2022-02-07 15:02:34 +01:00
Christian Grothoff
ca7fa98016
-fix config file names 2022-02-07 14:53:32 +01:00
Christian Grothoff
e35e89f14d
-fix FTBFS 2022-02-07 13:43:29 +01:00
Christian Grothoff
b84fb618c3
fix refreshes_reveal FTBFS 2022-02-07 13:41:55 +01:00
Christian Grothoff
169d684342
-towards CS in refresh (incomplete, FTBFS) 2022-02-07 13:23:20 +01:00
Christian Grothoff
b2e6fcae1a
fix DB API for generic blinded planchet storage 2022-02-07 13:14:25 +01:00
Christian Grothoff
b9ea075d61
get DB test to build 2022-02-07 12:42:27 +01:00
Christian Grothoff
c7c0beedd5
-rename fest 2022-02-07 12:35:00 +01:00
Christian Grothoff
fb9ba5b1d2
-rename fest 2022-02-07 12:33:35 +01:00
Christian Grothoff
0d03f55282
-clean up of crypto.c 2022-02-07 11:33:58 +01:00
Christian Grothoff
d850ed9ca1
-fix test_crypto 2022-02-07 11:23:53 +01:00
Christian Grothoff
f7a1f41eee
-get testing to build 2022-02-07 11:01:54 +01:00
Christian Grothoff
3ed39955b6
-fix test_crypto ftbfs 2022-02-07 10:58:23 +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
62d8368b1b
-fix more FTBFS issues 2022-02-06 19:53:23 +01:00
Christian Grothoff
66abbcac3f
-fix more FTBFS issues 2022-02-06 19:44:05 +01:00
Christian Grothoff
e735475623
-work on refresh_common FTBFS 2022-02-06 19:00:01 +01:00
Christian Grothoff
f173296c3c
-fix refresh FTBFS 2022-02-06 18:39:28 +01:00
Christian Grothoff
57bbdb0997
-fix melt FTBFS 2022-02-06 18:35:08 +01:00
Gian Demarmels
34a7f59060
fixed src util and other stuff 2022-02-05 23:42:17 +01:00
Gian Demarmels
9fc3b7a278
Merge branch 'master' of ssh://git.taler.net/exchange 2022-02-05 23:12:31 +01:00