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:
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,