Skip to content

Commit 6a44299

Browse files
authored
Merge pull request #566 from pq-code-package/extend-test
Extend the `test_mldsa.c` cover all top-level API
2 parents f6d6c37 + 586671d commit 6a44299

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

test/test_mldsa.c

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,52 @@ static int test_sign_unaligned(void)
105105
return test_sign_core(pk + 1, sk + 1, sm + 1, m + 1, m2 + 1, ctx + 1);
106106
}
107107

108+
static int test_sign_extmu(void)
109+
{
110+
uint8_t pk[CRYPTO_PUBLICKEYBYTES];
111+
uint8_t sk[CRYPTO_SECRETKEYBYTES];
112+
uint8_t sig[CRYPTO_BYTES];
113+
uint8_t mu[MLDSA_CRHBYTES];
114+
size_t siglen;
115+
116+
CHECK(crypto_sign_keypair(pk, sk) == 0);
117+
randombytes(mu, MLDSA_CRHBYTES);
118+
MLD_CT_TESTING_SECRET(mu, sizeof(mu));
119+
120+
CHECK(crypto_sign_signature_extmu(sig, &siglen, mu, sk) == 0);
121+
CHECK(crypto_sign_verify_extmu(sig, siglen, mu, pk) == 0);
122+
123+
return 0;
124+
}
125+
126+
127+
static int test_sign_pre_hash(void)
128+
{
129+
uint8_t pk[CRYPTO_PUBLICKEYBYTES];
130+
uint8_t sk[CRYPTO_SECRETKEYBYTES];
131+
uint8_t sig[CRYPTO_BYTES];
132+
uint8_t m[MLEN];
133+
uint8_t ctx[CTXLEN];
134+
uint8_t rnd[MLDSA_RNDBYTES];
135+
size_t siglen;
136+
137+
138+
CHECK(crypto_sign_keypair(pk, sk) == 0);
139+
randombytes(ctx, CTXLEN);
140+
MLD_CT_TESTING_SECRET(ctx, sizeof(ctx));
141+
randombytes(m, MLEN);
142+
MLD_CT_TESTING_SECRET(m, sizeof(m));
143+
randombytes(rnd, MLDSA_RNDBYTES);
144+
MLD_CT_TESTING_SECRET(rnd, sizeof(rnd));
145+
146+
CHECK(crypto_sign_signature_pre_hash_shake256(sig, &siglen, m, MLEN, ctx,
147+
CTXLEN, rnd, sk) == 0);
148+
CHECK(crypto_sign_verify_pre_hash_shake256(sig, siglen, m, MLEN, ctx, CTXLEN,
149+
pk) == 0);
150+
151+
return 0;
152+
}
153+
108154
static int test_wrong_pk(void)
109155
{
110156
uint8_t pk[CRYPTO_PUBLICKEYBYTES];
@@ -275,6 +321,8 @@ int main(void)
275321
r |= test_wrong_pk();
276322
r |= test_wrong_sig();
277323
r |= test_wrong_ctx();
324+
r |= test_sign_extmu();
325+
r |= test_sign_pre_hash();
278326
if (r)
279327
{
280328
return 1;

0 commit comments

Comments
 (0)