Commit Graph

83 Commits

Author SHA1 Message Date
Christian Grothoff
dee45bf022
return new global fees from /keys 2022-03-20 09:44:42 +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
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
819b67426c
-doxygen fixes 2022-02-12 10:33:23 +01:00
Christian Grothoff
025922950d
pass exchange values to /recoup 2022-02-09 22:02:29 +01:00
Christian Grothoff
169d684342
-towards CS in refresh (incomplete, FTBFS) 2022-02-07 13:23:20 +01:00
Lucien Heuzeveldt
8d85c8b5b6
implement feedback 2022-02-04 15:37:30 +01:00
Lucien Heuzeveldt
82405b0ce5
implement CS key handling and csr endpoint 2022-02-04 15:34:19 +01:00
Lucien Heuzeveldt
3225566c93
implement exchange_api_csr 2022-02-04 15:33:07 +01:00
e6e0cabf08
test and hopefully fix JSON canonicalization 2022-01-27 20:25:40 +01:00
8684a9bfea
[age_restriction] progress 13/n
- major refactoring of extensions
  - extensions live now in a separate library, libtalerextensions
  - refactored all components using age_restriction accordingly
  - plumbing for plugin support for extensions roughly layed down
2022-01-23 01:36:21 +01:00
cc7d7707ab
[age restriction] progress 10/n
More work towards support for extensions:
- Prepared statements and DB-plugin-functions for setting and retrieving
  configurations from the database added.
- primitive "registry" of extensions for age restrictions and peer2peer
  (stub)
- TALER_Extensions now with FP for parsing, setting and converting a
  configuration.
- /management/extensions handler now verifies signature of the (opaque)
  json object for all extensions.
- /management/extensions handler calls the FP in the corrensponding
  TALER_Extension for parsing and setting the configuration of a
  particular extension

More work towards age restriction:
- TALER_Extensions interfaces for config-parser, -setter and converter
  implemented for age restriction
- DB event handler now retrieves config from database, parses it and
  sets it (the age mask) in the global extension.
- load_age_mask now loads age mask from the global extension (and not
  from the config file)
- add age_restricted_denoms to /keys response
2022-01-08 14:40:20 +01:00
Christian Grothoff
5cd2bc5de3
-cleanup 2021-12-28 15:36:26 +01:00
ef4238874f
[age restriction] progress 9/n
More worke towards support for extensions and age restriction:

- taler-exchange-httpd_management_extensions.c almost completed
  - handling of request implemented
  - stub "set_extensions" for database transaction added

- utility functions added
  - TALER_exchange_offline_extension_agemask_{sign,verify}
  - TALER_agemask_parse_json
2021-12-27 23:24:48 +01:00
Christian Grothoff
1a1fafbd43
introducing GNUNET_TIME_Timestamp, recoup now with amounts 2021-12-14 16:04:40 +01:00
Christian Grothoff
bdaaa0f6cb
-fix misc. compiler warnings 2021-11-19 10:57:27 +01:00
Christian Grothoff
3eae999efc
distinguish between blind and non-blind denomination signatures 2021-10-31 17:56:56 +01:00
Christian Grothoff
b449c7353e
work on testing ftbfs 2021-10-27 18:37:42 +02:00
Christian Grothoff
77142acbe8
fix lib/ FTBFS 2021-10-27 13:42:54 +02:00
Christian Grothoff
b148a5a81a
rename fest 2021-10-27 13:23:14 +02:00
Christian Grothoff
3af7bc0a29
-more FTBFS fixes 2021-10-27 09:23:12 +02:00
Christian Grothoff
9adb9cfe61
simplify deposit, do not return kyc status, not needed 2021-10-20 18:56:59 +02:00
Christian Grothoff
61450fad8d
-add i18n object syntax check 2021-08-02 22:16:01 +02:00
Christian Grothoff
c4ae15c1db
-strengthen payto validation logic 2021-08-02 19:38:23 +02:00
Christian Grothoff
d45774ccec
introduce TALER_JSON_pack_ec 2021-08-01 15:36:38 +02:00
Christian Grothoff
fde9dc80f6
-more json_pack cleaning 2021-07-31 21:40:48 +02:00
Christian Grothoff
1d54400a02
-more eliminations of json_pack 2021-07-31 20:27:16 +02:00
Christian Grothoff
91bb5623de
JSON: implement taler-specific json pack functions 2021-07-26 17:26:09 +02:00
Christian Grothoff
42decef957
fix #6939 in exchange 2021-07-24 09:00:35 +02:00
Christian Grothoff
95f0fdf369
distinguish between input failure and internal failures when hashing contracts 2021-07-21 20:21:08 +02:00
Christian Grothoff
d37e4eabc4
-use nicer enum 2021-07-20 15:38:56 +02:00
Christian Grothoff
6680f9b4ef
implement logic to replace 'true' forgettable salts with random salts, fix object deletion when forgetting 2021-06-16 23:12:21 +02:00
Christian Grothoff
5f268913dd
return NO if forgetting did not work because it was already forgotten earlier 2021-05-11 19:17:09 +02:00
Christian Grothoff
004a7c9d54
implement convenience function to extract i18n values from JSON (for #6749) 2021-04-05 18:40:23 +02:00
Christian Grothoff
46dde9368f
implement i18n lookup logic for #6458 2020-08-19 18:19:00 +02:00
Christian Grothoff
a48592d0a4
-doxygen 2020-07-21 10:05:05 +02:00
Jonathan Buchanan
fecfa27727
add parser for json path 2020-07-21 03:14:41 -04:00
Christian Grothoff
e1ad498bff
first draft for #6365, test pending 2020-07-16 01:51:45 +02:00
Christian Grothoff
90e756ddea
rename TALER_JSON_hash to TALER_JSON_contract_hash 2020-07-16 00:42:42 +02:00
Christian Grothoff
575c10027b
also offer API for receiving rounded relative time via JSON 2020-07-05 22:00:01 +02:00
Christian Grothoff
54e63f01df
fix #6408: make sure all timestamps are always rounded when they arrive over JSON, or 400 the requester; similarly don't tolerate anything else as client 2020-07-05 21:54:11 +02:00
Christian Grothoff
bf8c5982a2
make exchange API more uniform in how information is returned 2020-04-05 22:05:38 +02:00
Christian Grothoff
7fee395bb6
harden URI validation logic 2020-03-16 16:13:21 +01:00
Christian Grothoff
ffcadbff8c
code cleanup (comments, scoping, naming, indentation) 2020-03-07 00:28:07 +01:00
Christian Grothoff
1eb292fe1f
check well-formedness of URI when signing, check return value of function for error 2020-03-01 13:31:46 +01:00
Christian Grothoff
c48e4a8a06
comment on JSON canonicalization 2020-01-19 21:18:03 +01:00
Christian Grothoff
d22a52cc7a
fix copyright headers as per CA 2020-01-19 19:21:58 +01:00
Florian Dold
fc8bdb9b97
consistently use payto URI instead of URL 2020-01-19 17:03:19 +01:00
Christian Grothoff
9317d6d69d
doxygen work 2020-01-18 13:23:17 +01:00