31f74059e0
[new /keys response] create and parse denomination implemented
...
- /keys response now contains signed denomintations
- hashes of denominations now XOR'ed per group into a single hash-code
- final hash-code is now XOR of all group hash codes
- final hash-code is signed
- lib/exchange_api_handle support for new "denominations" implemented
- parses array of denomation groups
- creates running xor of hashes
- verifies signature at the end
- previous diff/merge logic for keys remains intact.
2022-06-26 16:59:27 +02:00
Christian Grothoff
bad572a010
-add missing checkpointing logic
2022-06-19 14:04:41 +02:00
Christian Grothoff
f2e2c5c9d8
-fix refund check regression
2022-06-07 22:24:49 +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
6c81796d6f
-work on error proof response checking for p2p payments
2022-06-05 01:34:37 +02:00
Christian Grothoff
8e0b998217
-unify API
2022-06-05 00:43:11 +02:00
Christian Grothoff
21a1c715ee
-refactor internal API to use new EncrptedContract struct where applicable
2022-06-05 00:36:19 +02:00
Christian Grothoff
efa0ca4ec1
-move econtract into sub-object with its own parser
2022-06-05 00:25:56 +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
d04769b729
handle case where purse expiration refunded the coin's deposited amount
2022-06-04 14:04:27 +02:00
Christian Grothoff
04c32eafb9
-work on P2P payment details
2022-06-02 21:55:21 +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
d40da21e90
add batch signing support to taler-exchange-secmod-rsa
2022-05-29 22:25:04 +02:00
Christian Grothoff
054f2ab51c
-implement batch withdraw client-side logic
2022-05-23 21:12:31 +02:00
Christian Grothoff
2e80f51e25
handle purse deposit client-side
2022-05-23 16:11:21 +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
fcaf508647
-add missing break, clean up fee logic
2022-05-23 00:34:04 +02:00
Christian Grothoff
3ee8879ada
-refactor coin history checker
2022-05-23 00:19:57 +02:00
Christian Grothoff
3599ac0ac2
-complete extended reserve history signature check logic to libtalerexchange
2022-05-22 23:51:14 +02:00
Christian Grothoff
67535ebf65
-towards client-side support for merge and history requests in reserve history
2022-05-22 20:04:38 +02:00
Christian Grothoff
40daa209fb
-more work on reverse history
2022-05-22 18:21:15 +02:00
Christian Grothoff
344c53c51d
enforce valid payto:// URI in exchange /wire response
2022-05-18 18:05:32 +02:00
Christian Grothoff
d8f1f7b761
integrate purse expiration into test, bugfixes
2022-05-17 11:21:20 +02:00
Christian Grothoff
d803d86bf9
-work purse_deposit conflict handling
2022-05-16 14:01:04 +02:00
Christian Grothoff
fac01f140f
-add purse-merge 409 handling client-side
2022-05-16 11:17:27 +02:00
Christian Grothoff
439c872af4
-implement purse_deposit error handling
2022-05-16 10:53:42 +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
5f6d5bc3fc
-online
2022-05-07 23:43:39 +02:00
Christian Grothoff
415c922c92
-address FIXMEs for purses GET requests
2022-05-07 23:41:33 +02:00
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
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
17a00ef22d
age restriction: make seed a HashCode due to endianess and security level concerns
2022-04-26 23:34:14 +02:00
Christian Grothoff
336f2d8991
-misc. minor fixes
2022-04-26 17:46:36 +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
Christian Grothoff
345c141bad
-work on p2p payments
2022-04-23 20:50:27 +02:00
Christian Grothoff
b054c969cb
-add more accounting fields to reserve table
2022-04-23 19:01:28 +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
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
eea35ffb01
-skeleton logic for deposits into purse
2022-04-21 22:44:51 +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
Christian Grothoff
4af1772f12
-work on create purse with merge
2022-04-20 23:07:44 +02:00
Christian Grothoff
2299b8b193
-draft for purse merge command
2022-04-12 16:35:05 +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
c8c1005297
-add draft handler for purse merge client request
2022-04-11 15:34:45 +02:00
Christian Grothoff
72dd9514aa
-draft implementation of /purses//merge endpoint
2022-04-11 13:52:06 +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
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
Sebastian
e5b65aa443
fix: wtid request param size
2022-03-29 17:53:50 -03:00
Christian Grothoff
074ea7502e
centralize exchange online signature logic
2022-03-29 15:21:49 +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
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
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
c83892ba29
-style fixes
2022-03-20 02:39:12 +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
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
12809b28ec
-misc fixes
2022-03-17 14:16:34 +01:00
Christian Grothoff
54106e63dc
add client API for setting global fees
2022-03-05 18:18:25 +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
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
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
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
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
Christian Grothoff
544ba42f44
-big renaming of structs for consistent naming with P suffix
2022-02-21 00:23:23 +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
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
bd77bcb52d
-towards fixing the protocol
2022-02-14 23:02:25 +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
db8cdc8c4c
-remove addessed documentation FIXMEs
2022-02-12 12:10:33 +01:00
Christian Grothoff
8a3e88fbf1
-add missing comment
2022-02-12 11:27:57 +01:00
Christian Grothoff
bc14c215b3
-doxygen fixes
2022-02-12 11:12:33 +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
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
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
cb723a82fd
-initialize cipher type
2022-02-08 23:25:16 +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
e35e89f14d
-fix FTBFS
2022-02-07 13:43:29 +01:00
Christian Grothoff
fb9ba5b1d2
-rename fest
2022-02-07 12:33:35 +01:00
Christian Grothoff
2164c36f0f
got testing_api_cmd_refresh to compile
2022-02-07 10:09:12 +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
Christian Grothoff
718ad3996f
-FTBFS
2022-02-05 20:40:39 +01:00
Gian Demarmels
e8740316a7
fixes to crypto.c changes
2022-02-05 20:22:55 +01:00
Christian Grothoff
41d132757b
-implement new client-side csr logic
2022-02-05 17:06:42 +01:00
Gian Demarmels
f46dc9ea5e
Merge branch 'master' of ssh://git.taler.net/exchange
2022-02-05 00:33:16 +01:00
Gian Demarmels
c42376cf40
crypto implementation
2022-02-05 00:32:53 +01:00
Christian Grothoff
aea7fc36c3
-style fix
2022-02-05 00:13:51 +01:00
Christian Grothoff
d81a6c7cf2
-work on reveal
2022-02-05 00:12:58 +01:00
Christian Grothoff
b30765c7d0
make API actually workable, sketch out melt
2022-02-04 23:58:41 +01:00
Christian Grothoff
cfc6c3fcd0
make API actually workable:
2022-02-04 23:09:19 +01:00
Christian Grothoff
d833966d52
-API work
2022-02-04 22:02:48 +01:00