donau

Donation authority for GNU Taler (experimental)
Log | Files | Refs | Submodules | README | LICENSE

commit 36132ce6582a8c74b6ebaa5aacc93c69dad511b2
parent 3c09d8538787e64339a8268b7a8c05e3667c77a4
Author: Matyja Lukas Adam <lukas.matyja@students.bfh.ch>
Date:   Wed,  1 May 2024 10:43:03 +0200

[testing] try unblind

Diffstat:
Msrc/testing/testing_api_cmd_issue_receipts.c | 67+++++++++++++++++++++++++++++++++++++++++++++++++++----------------
1 file changed, 51 insertions(+), 16 deletions(-)

diff --git a/src/testing/testing_api_cmd_issue_receipts.c b/src/testing/testing_api_cmd_issue_receipts.c @@ -88,11 +88,25 @@ struct StatusState */ struct DONAU_HashDonorTaxId *h_donor_tax_id; - /** - * Array of generated nonces for the udis. - */ - struct DONAU_UniqueDonorIdentifierNonce *udi_nonces; + /** + * Array of donation receipts; + */ + struct DONAU_DonationReceipt *receipts; + + /** + * Blinding secrets + */ + union GNUNET_CRYPTO_BlindingSecretP *blinded_secrets; + + /** + * Blinding values. Cs-nonces, cipher. + */ + struct DONAU_BatchIssueValues *alg_values; + /** + * Array of hashed udis. + */ + struct DONAU_UniqueDonorIdentifierHashP *h_udis; }; @@ -125,8 +139,17 @@ issue_receipts_status_cb (void *cls, TALER_TESTING_interpreter_fail (ss->is); return; } - // struct DONAU_BlindedDonationUnitSignature *blinded_sigs = biresp->details.ok.blinded_sigs; - +// struct DONAU_BlindedDonationUnitSignature *blinded_sigs = biresp->details.ok.blinded_sigs; +// for (size_t i = 0; i < ss->num_bkp; i++) { +// GNUNET_assert ( GNUNET_OK == +// DONAU_donation_unit_sig_unblind( +// &ss->receipts[i].donation_unit_sig, +// &blinded_sigs[i], +// &ss->blinded_secrets[i], +// &ss->h_udis[i], +// &ss->alg_values[i], +// &ss->keys->donation_unit_keys[0].key)); +// } TALER_TESTING_interpreter_next (ss->is); } @@ -188,17 +211,29 @@ status_run (void *cls, ss->keys = keys; } + //TODO: Free ss->bkps = GNUNET_new_array (ss->num_bkp, struct DONAU_BlindedUniqueDonorIdentifierKeyPair); - union GNUNET_CRYPTO_BlindingSecretP blinded_secrets[ss->num_bkp]; + ss->blinded_secrets = + GNUNET_malloc (sizeof(union GNUNET_CRYPTO_BlindingSecretP) + * ss->num_bkp); + ss->receipts = + GNUNET_malloc (sizeof(struct DONAU_DonationReceipt) + * ss->num_bkp); + ss->alg_values = + GNUNET_malloc (sizeof(struct DONAU_BatchIssueValues) + * ss->num_bkp); + ss->h_udis = + GNUNET_malloc (sizeof(struct DONAU_UniqueDonorIdentifierHashP) + * ss->num_bkp); for (size_t cnt = 0; cnt < ss->num_bkp; cnt++) { - struct DONAU_UniqueDonorIdentifierNonce udi_nonce; + struct DONAU_UniqueDonorIdentifierNonce *udi_nonce = &ss->receipts[cnt].nonce; struct DONAU_BudiMasterSecretP ps; - const struct DONAU_BatchIssueValues *alg_values; + const struct DONAU_BatchIssueValues *alg_values = &ss->alg_values[cnt]; struct DONAU_BlindedUniqueDonorIdentifier *blinded_udi = &ss->bkps[cnt].blinded_udi; - struct DONAU_UniqueDonorIdentifierHashP udi_hash; + struct DONAU_UniqueDonorIdentifierHashP *udi_hash = ss->h_udis; alg_values = DONAU_donation_unit_ewv_rsa_singleton (); GNUNET_CRYPTO_random_block (GNUNET_CRYPTO_QUALITY_STRONG, @@ -206,18 +241,18 @@ status_run (void *cls, sizeof (ps)); DONAU_budi_secret_create (&ps, alg_values, - &blinded_secrets[cnt]); + &ss->blinded_secrets[cnt]); GNUNET_CRYPTO_random_block (GNUNET_CRYPTO_QUALITY_NONCE, - &udi_nonce, - sizeof (udi_nonce)); + udi_nonce, + sizeof (*udi_nonce)); GNUNET_assert (GNUNET_OK == DONAU_donation_unit_blind (&ss->keys->donation_unit_keys[0].key, - &blinded_secrets[cnt], + &ss->blinded_secrets[cnt], NULL, /* no cs-nonce needed for rsa */ - &udi_nonce, + udi_nonce, ss->h_donor_tax_id, alg_values, - &udi_hash, + udi_hash, blinded_udi)); DONAU_donation_unit_pub_hash (&ss->keys->donation_unit_keys[0].key,