Christian Grothoff
3b34acdb72
-update to latest GNUNET_PQ_make_prepare() API
2022-10-12 14:48:56 +02:00
Christian Grothoff
3036c21283
fix cmd reserve close FTBFS
2022-10-12 11:32:58 +02:00
Christian Grothoff
5e2e71ec11
-testing...
2022-10-12 11:09:20 +02:00
Christian Grothoff
9cba7d4c3e
-implement first draft of testing_api_cmd_reserve_attest.c
2022-10-01 16:30:22 +02:00
Christian Grothoff
538ab8753c
-implement first draft of testing_api_cmd_reserve_get_attestable.c
2022-10-01 16:25:06 +02:00
Christian Grothoff
3f901571d5
implemented reserve_open testing CMD
2022-09-28 12:17:50 +02:00
Christian Grothoff
58e7e98657
-first sketch for reserve_open testing CMD
2022-09-28 12:12:53 +02:00
Christian Grothoff
d645ea5c8e
skeleton for reserve control testing commands
2022-09-28 08:54:14 +02:00
Christian Grothoff
9ed99558e2
-fix clang compiler warnings
2022-08-22 22:45:41 +02:00
Christian Grothoff
a5b9fce183
-remove obsolete options from config
2022-08-21 12:22:31 +02:00
Christian Grothoff
a046899b2c
-major KYC update, fixes misc. issues
2022-08-20 21:29:36 +02:00
Christian Grothoff
2c4bd1e1d0
add user type to kyc-check
2022-08-19 09:31:51 +02:00
Christian Grothoff
1a3793cb1c
-regenerate DBs
2022-08-14 19:10:19 +02:00
Christian Grothoff
74ba46db39
-work on new KYC logic: tests pass again
2022-08-14 18:04:09 +02:00
Christian Grothoff
913eacf506
-doxygen fixes
2022-08-13 15:06:53 +02:00
Christian Grothoff
1aad81632e
-draft test for p2p kyc
2022-08-13 14:39:01 +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
c602e11a36
-merge eufin branch (manually)
2022-08-06 13:25:54 +02:00
Christian Grothoff
6d6ecd9271
-new ECs
2022-07-11 12:47:44 +02:00
Christian Grothoff
43662fbb6a
-add safety checks against cmd type confusion
2022-07-05 13:19:09 +02:00
Christian Grothoff
def8116dd3
-link to bug
2022-07-05 13:09:20 +02:00
Christian Grothoff
75dbf20ced
-annotate bugs
2022-07-05 11:46:02 +02:00
Christian Grothoff
cebf4f11b9
-add test for batch deposits
2022-07-01 15:42:48 +02:00
Christian Grothoff
182c618579
-implement batch deposit testing cmd
2022-07-01 12:05:41 +02:00
Christian Grothoff
7fe8d89d75
-update deposit API in preparation for batch deposits
2022-06-29 19:30:12 +02:00
87025cfd17
age restriction support in exchange_api_purse_create_with_deposit added
2022-06-27 14:11:46 +02:00
Christian Grothoff
2443ee672d
-more typos
2022-06-26 17:09:33 +02:00
Christian Grothoff
7b62174d00
-fix typos
2022-06-26 17:09:30 +02:00
Christian Grothoff
fd9fc9f0cd
-fix misc doxygen warnings, code clean up
2022-06-26 17:08:17 +02:00
Christian Grothoff
3d66034093
-fix build issues
2022-06-20 15:17:35 +02:00
Christian Grothoff
eaea32b319
tag
2022-06-09 13:57:03 +02:00
Christian Grothoff
446761b602
-more minor bugfixes
2022-06-07 16:57:12 +02:00
Christian Grothoff
b9a30d29cb
-fix minor bugs
2022-06-07 15:02:16 +02:00
Christian Grothoff
bdbd2a464d
no purse fee if purse is successfully merged
2022-06-05 21:00:49 +02:00
Christian Grothoff
b9963f7525
complete P2P/W2W conflict handling, deduplicate code across handlers
2022-06-05 14:07:23 +02:00
Christian Grothoff
a17781ba8d
-more work on p2p payments and tests thereof
2022-06-04 22:00:02 +02:00
Christian Grothoff
93943bdb5b
add KYC errors for p2p payments
2022-06-04 15:19:57 +02:00
Christian Grothoff
d55b093de8
-fix reserve history, include in tests
2022-05-30 19:31:49 +02:00
Christian Grothoff
ab4aa4dcfd
-add batch withdraw to test suite
2022-05-30 17:51:39 +02:00
Christian Grothoff
7b25787a4b
-generate 404 on non-existing accounts for fakebank, use payto://-URIs with receiver-name in tests
2022-05-30 16:31:24 +02:00
Christian Grothoff
1d84c284ad
-incomplete batch_withdraw test command
2022-05-23 22:09:05 +02:00
Christian Grothoff
054f2ab51c
-implement batch withdraw client-side logic
2022-05-23 21:12:31 +02:00
Christian Grothoff
656b521a83
-passes, enable by default
2022-05-23 16:19:40 +02:00
Christian Grothoff
76b8a2a8de
include purse deposits in coin history
2022-05-23 16:02:55 +02:00
Christian Grothoff
a509a91f92
-more reserve history fixes
2022-05-23 15:29:35 +02:00
Christian Grothoff
cdd2930a99
-misc fixes to reserve history
2022-05-23 14:57:00 +02:00
Christian Grothoff
2035294adb
-more traits for reserve history checking
2022-05-23 12:17:41 +02:00
Christian Grothoff
f1a58b0fd8
-towards reserve history testing
2022-05-23 11:15:05 +02:00
Christian Grothoff
b3844e4923
-deduplicate and expand reserve history validation logic in testing library
2022-05-23 10:36:39 +02:00
Christian Grothoff
21bcc5fa0b
-fix wirewatch assertion
2022-05-22 13:48:56 +02:00
Christian Grothoff
3233195d2d
-fix NPE
2022-05-22 13:11:09 +02:00
Christian Grothoff
ccc7743fdd
-note what is untested
2022-05-17 11:52:36 +02:00
Christian Grothoff
3b5d9daca9
-expand test to include coin refund
2022-05-17 11:46:41 +02:00
Christian Grothoff
d8f1f7b761
integrate purse expiration into test, bugfixes
2022-05-17 11:21:20 +02:00
Thien-Thi Nguyen
f089bbe536
split conf file reference to -cs and -rsa
...
This is a followup to 2022-02-04, "split .conf files into rsa and cs".
2022-05-17 02:20:05 -04:00
Christian Grothoff
d803d86bf9
-work purse_deposit conflict handling
2022-05-16 14:01:04 +02:00
Christian Grothoff
99a844e52e
check reserve balance after p2p merges
2022-05-09 13:25:10 +02:00
Christian Grothoff
d3a6388199
pass purse_fee to determine how purse creation is paid for
2022-05-08 11:37:37 +02:00
Christian Grothoff
6b8e732bf8
-pub
2022-05-07 23:45:17 +02:00
Christian Grothoff
fed8353c67
-expand p2p tests with purse long poller
2022-04-30 14:03:57 +02:00
Christian Grothoff
8e4969eb66
-implement purses_get CMD
2022-04-30 12:02:43 +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
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
505989a507
-mark FIXMEs
2022-04-25 13:30:03 +02:00
Christian Grothoff
aedd2014ec
-misc p2p fixes
2022-04-24 15:29:58 +02:00
Christian Grothoff
b7a4fd401e
add subcommand to sign global fees in tests
2022-04-23 20:02:28 +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
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
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
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
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
cacb019501
testing command to GET contracts
2022-04-11 23:27:23 +02:00
Christian Grothoff
89431a41b7
-complete va coin parser of purse_create_deposit CMD
2022-04-06 13:54:08 +02:00
Christian Grothoff
22cfc59d90
-towards testing purse creation
2022-04-06 12:50:07 +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
747ae5ef09
privatize more signature structs, simplify code
2022-03-31 12:37:39 +02:00
Christian Grothoff
098d572471
change sharding strategy for refund table
2022-03-26 10:47:10 +01:00
Christian Grothoff
9b7716f9f2
fix #7151
2022-03-23 05:19:09 +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
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
5406d564fb
-style fixes
2022-03-19 16:16:28 +01:00
Christian Grothoff
c4690a44bc
-minor code cleanup
2022-03-19 15:54:05 +01:00
Christian Grothoff
12809b28ec
-misc fixes
2022-03-17 14:16:34 +01:00
Christian Grothoff
9a3d993d07
-also work with h_payto trait
2022-03-10 01:48:46 +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
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
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
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
Christian Grothoff
23bc09fe3c
get test-auditor and #7181 to pass
2022-02-28 20:37:19 +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
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
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
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
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
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
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