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.
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.
We switch from EcDSA to Edx25519 for the underlying signature scheme.
Edx25519 is implemented in gnunet, starting with (gnunet-)commit
ce38d1f6c9bd7857a1c3bc2094a0ee9752b86c32.
- 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).
- functions TALER_age_commitment_attest and
TALER_age_commitment_verify
implemented.
- age restriction implementation moved into util/age_restriction.c
- functions TALER_age_commitment_attest and TALER_age_commitment_verify
implemented.
- age restriction implementation moved into util/age_restriction.c
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.
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.
Added age restriction support for
- melt/refresh/reveal
- recoup
However, tests are not yet implemented for those flows.
Also: minor fixes and refactoring.