Commit Graph

227 Commits

Author SHA1 Message Date
Christian Grothoff
c1b43de5b4
add offline signature to drain profits (#4960) 2022-07-29 09:21:38 +02:00
Christian Grothoff
8220974328
-fix typos 2022-07-06 22:53:21 +02:00
Christian Grothoff
ded7f9ca18
-fix issue with missing signature over denomination and age restriction hash in purse deposit 2022-06-28 20:25:45 +02:00
9d75b0745a
-fix typo 2022-06-28 12:29:42 +02:00
d2537de68c
added documenation to the age-restriction related structures 2022-06-27 11:56:18 +02:00
Christian Grothoff
372a103a80
-more doxygen 2022-06-26 17:09:33 +02:00
Christian Grothoff
7b62174d00
-fix typos 2022-06-26 17:09:30 +02:00
Christian Grothoff
2508d4bb5c
-add missing comments 2022-06-26 17:08:17 +02:00
Christian Grothoff
fd9fc9f0cd
-fix misc doxygen warnings, code clean up 2022-06-26 17:08:17 +02:00
Christian Grothoff
a17781ba8d
-more work on p2p payments and tests thereof 2022-06-04 22:00:02 +02:00
Christian Grothoff
7f902c0fc9
-sketch API for RSA parallel signing 2022-05-30 13:34:39 +02:00
Christian Grothoff
a509a91f92
-more reserve history fixes 2022-05-23 15:29:35 +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
2d84d7f6dd
add function for purse status signing 2022-05-07 23:27:56 +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
17a00ef22d
age restriction: make seed a HashCode due to endianess and security level concerns 2022-04-26 23:34:14 +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
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
Christian Grothoff
4af1772f12
-work on create purse with merge 2022-04-20 23:07:44 +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
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
6f027fc130
add additinal signature 2022-04-02 17:25:18 +02:00
Christian Grothoff
caf66486e7
work on purse creation logic 2022-04-01 16:39:07 +02:00
Christian Grothoff
747ae5ef09
privatize more signature structs, simplify code 2022-03-31 12:37:39 +02: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
ee4077ef80
starting with purse creation client API 2022-03-28 13:19:40 +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
c782dfe2aa
first draft of service API for p2p payments 2022-03-24 13:06:04 +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
6505f69869
add one more p2p signature 2022-03-22 12:12:00 +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
1bb5a77c8d
add new reserve status/history signatures 2022-03-20 02:39:28 +01:00
Christian Grothoff
5fa977cc05
work on global fee structure 2022-03-05 15:13:07 +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
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
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
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
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
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