Commit Graph

120 Commits

Author SHA1 Message Date
Christian Grothoff
75dbf20ced
-annotate bugs 2022-07-05 11:46:02 +02: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
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
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
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
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
8e4eaabc96
-fix refresh commitment check for CS 2022-02-09 19:17:50 +01:00
Christian Grothoff
730f9e8865
-more refresh CS fixes 2022-02-09 17:30:02 +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
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
7eb989b2df
-get melt and refresh-reveal to pass again 2022-02-08 00:12:56 +01:00
Christian Grothoff
b84fb618c3
fix refreshes_reveal FTBFS 2022-02-07 13:41:55 +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
031e365814
fix FTBFS of main logic 2022-02-07 10:55:07 +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
Gian Demarmels
b280b1db04
fix src/util 2022-02-05 23:12:21 +01:00
Gian Demarmels
c42376cf40
crypto implementation 2022-02-05 00:32:53 +01:00
Christian Grothoff
03fd154a69
messing with CS/RSA fixes 2022-02-04 19:30:15 +01:00
Gian Demarmels
086cf05794
refactor TALER_coin_ev_hash 2022-02-04 15:37:34 +01:00
Gian Demarmels
2213012866
include denom_pub into coin_ev_hash 2022-02-04 15:37:34 +01:00
Gian Demarmels
be50c084f8
fixed nonce check, renamed WithdrawNonce 2022-02-04 15:37:33 +01:00
Gian Demarmels
ae5f082c75
repair nonce check 2022-02-04 15:37:33 +01:00
Lucien Heuzeveldt
8d85c8b5b6
implement feedback 2022-02-04 15:37:30 +01:00
Christian Grothoff
ea97729ba8
-scope needed 2022-02-04 15:36:51 +01:00
Gian Demarmels
5b7e8f9ac5
refactoring 2022-02-04 15:36:11 +01:00
Gian Demarmels
9c2aefaa51
removed varargs 2022-02-04 15:36:08 +01:00
Lucien Heuzeveldt
36f551ff33
set planchet detail cipher, add cipher checks 2022-02-04 15:33:14 +01:00
Lucien Heuzeveldt
75eff1524a
clean up cs implementation 2022-02-04 15:33:10 +01:00
Lucien Heuzeveldt
cf4fd36cc4
remove varargs in cs crypto implementation 2022-02-04 15:33:09 +01:00
Gian Demarmels
ca247f6f58
fixed CS signatures and cleanup/refactoring 2022-02-04 15:33:09 +01:00
Gian Demarmels
db9b84970d
add sign and verify implementation 2022-02-04 15:31:50 +01:00
Gian Demarmels
5d2157a8f6
sign_blinded implementation 2022-02-04 15:31:49 +01:00
Gian Demarmels
f1ec1e70a0
implemented planchet_prepare for CS 2022-02-04 15:31:49 +01:00
Gian Demarmels
a02ab8f81b
added CS get R functionality and planchet setup 2022-02-04 15:31:48 +01:00
Gian Demarmels
385eb51e93
CS planchet create and withdraw create 2022-02-04 15:31:48 +01:00
Gian Demarmels
f3fb7c29e6
added CS data structures, implemented CS keypair 2022-02-04 15:31:45 +01:00