-tests now with age restriction

This commit is contained in:
Özgür Kesim 2022-03-02 11:59:21 +01:00
parent 7624db4efd
commit 10d7d93ad8
Signed by: oec
GPG Key ID: 3D76A56D79EDD9D7

View File

@ -101,6 +101,11 @@ test_high_level (void)
}
static struct TALER_AgeMask age_mask = {
.bits = 1 | 1 << 8 | 1 << 10 | 1 << 12
| 1 << 14 | 1 << 16 | 1 << 18 | 1 << 21
};
/**
* Test the basic planchet functionality of creating a fresh planchet
* and extracting the respective signature.
@ -108,7 +113,7 @@ test_high_level (void)
* @return 0 on success
*/
static int
test_planchets_rsa (void)
test_planchets_rsa (uint8_t age)
{
struct TALER_PlanchetMasterSecretP ps;
struct TALER_CoinSpendPrivateKeyP coin_priv;
@ -120,6 +125,26 @@ test_planchets_rsa (void)
struct TALER_BlindedDenominationSignature blind_sig;
struct TALER_FreshCoin coin;
struct TALER_CoinPubHashP c_hash;
struct TALER_AgeCommitmentHash *ach = NULL;
if (0 < age)
{
struct TALER_AgeCommitmentHash ah = {0};
struct TALER_AgeCommitmentProof *acp;
uint64_t salt = GNUNET_CRYPTO_random_u64 (GNUNET_CRYPTO_QUALITY_WEAK,
UINT64_MAX);
acp = GNUNET_new (struct TALER_AgeCommitmentProof);
GNUNET_assert (GNUNET_OK ==
TALER_age_restriction_commit (&age_mask,
age,
salt,
acp));
TALER_age_commitment_hash (&acp->commitment,
&ah);
ach = &ah;
}
GNUNET_CRYPTO_random_block (GNUNET_CRYPTO_QUALITY_STRONG,
&ps,
@ -152,7 +177,7 @@ test_planchets_rsa (void)
&alg_values,
&bks,
&coin_priv,
NULL, /* no age commitment */
ach,
&c_hash,
&pd));
GNUNET_assert (GNUNET_OK ==
@ -166,7 +191,7 @@ test_planchets_rsa (void)
&blind_sig,
&bks,
&coin_priv,
NULL, /* no age commitment */
ach,
&c_hash,
&alg_values,
&coin));
@ -178,8 +203,6 @@ test_planchets_rsa (void)
}
/** FIXME-oec: Add test for planchets with age commitment hash */
/**
* @brief Function for CS signatures to derive public R_0 and R_1
*
@ -220,7 +243,7 @@ derive_r_public (
* @return 0 on success
*/
static int
test_planchets_cs (void)
test_planchets_cs (uint8_t age)
{
struct TALER_PlanchetMasterSecretP ps;
struct TALER_CoinSpendPrivateKeyP coin_priv;
@ -232,6 +255,26 @@ test_planchets_cs (void)
struct TALER_BlindedDenominationSignature blind_sig;
struct TALER_FreshCoin coin;
struct TALER_ExchangeWithdrawValues alg_values;
struct TALER_AgeCommitmentHash *ach = NULL;
if (0 < age)
{
struct TALER_AgeCommitmentHash ah = {0};
struct TALER_AgeCommitmentProof *acp;
uint64_t salt = GNUNET_CRYPTO_random_u64 (GNUNET_CRYPTO_QUALITY_WEAK,
UINT64_MAX);
acp = GNUNET_new (struct TALER_AgeCommitmentProof);
GNUNET_assert (GNUNET_OK ==
TALER_age_restriction_commit (&age_mask,
age,
salt,
acp));
TALER_age_commitment_hash (&acp->commitment,
&ah);
ach = &ah;
}
GNUNET_CRYPTO_random_block (GNUNET_CRYPTO_QUALITY_STRONG,
&ps,
@ -260,7 +303,7 @@ test_planchets_cs (void)
&alg_values,
&bks,
&coin_priv,
NULL,
ach,
&c_hash,
&pd));
GNUNET_assert (GNUNET_OK ==
@ -274,7 +317,7 @@ test_planchets_cs (void)
&blind_sig,
&bks,
&coin_priv,
NULL,
ach,
&c_hash,
&alg_values,
&coin));
@ -294,11 +337,11 @@ test_planchets_cs (void)
* @return 0 on success
*/
static int
test_planchets (void)
test_planchets (uint8_t age)
{
if (0 != test_planchets_rsa ())
if (0 != test_planchets_rsa (age))
return -1;
return test_planchets_cs ();
return test_planchets_cs (age);
}
@ -399,12 +442,10 @@ main (int argc,
(void) argv;
if (0 != test_high_level ())
return 1;
if (0 != test_planchets ())
if (0 != test_planchets (0))
return 2;
#if FIXME_OEC
if (0 != test_planchets_with_age_commitment ())
if (0 != test_planchets (13))
return 3;
#endif
if (0 != test_exchange_sigs ())
return 4;
if (0 != test_merchant_sigs ())