Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
76 changes: 38 additions & 38 deletions test/acvp/acvp_mldsa.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,18 @@

#include "mldsa_native.h"

/* Additional SUPERCOP-style macros for functions not in the standard set */
#define crypto_sign_keypair_internal MLD_API_NAMESPACE(keypair_internal)
#define crypto_sign_signature_internal MLD_API_NAMESPACE(signature_internal)
#define crypto_sign_verify_internal MLD_API_NAMESPACE(verify_internal)
#define crypto_sign_verify_extmu MLD_API_NAMESPACE(verify_extmu)
#define crypto_sign_signature_pre_hash_internal \
#define mld_sign_keypair_internal MLD_API_NAMESPACE(keypair_internal)
#define mld_sign_signature_internal MLD_API_NAMESPACE(signature_internal)
#define mld_sign_verify MLD_API_NAMESPACE(verify)
#define mld_sign_verify_extmu MLD_API_NAMESPACE(verify_extmu)
#define mld_sign_verify_internal MLD_API_NAMESPACE(verify_internal)
#define mld_sign_signature_pre_hash_internal \
MLD_API_NAMESPACE(signature_pre_hash_internal)
#define crypto_sign_verify_pre_hash_internal \
#define mld_sign_verify_pre_hash_internal \
MLD_API_NAMESPACE(verify_pre_hash_internal)
#define crypto_sign_signature_pre_hash_shake256 \
#define mld_sign_signature_pre_hash_shake256 \
MLD_API_NAMESPACE(signature_pre_hash_shake256)
#define crypto_sign_verify_pre_hash_shake256 \
#define mld_sign_verify_pre_hash_shake256 \
MLD_API_NAMESPACE(verify_pre_hash_shake256)

#define USAGE "acvp_mldsa{lvl} [keyGen|sigGen|sigVer] {test specific arguments}"
Expand Down Expand Up @@ -286,7 +286,7 @@ static void acvp_mldsa_keyGen_AFT(const unsigned char seed[MLDSA_RNDBYTES])
unsigned char pk[CRYPTO_PUBLICKEYBYTES];
unsigned char sk[CRYPTO_SECRETKEYBYTES];

CHECK(crypto_sign_keypair_internal(pk, sk, seed) == 0);
CHECK(mld_sign_keypair_internal(pk, sk, seed) == 0);

print_hex("pk", pk, sizeof(pk));
print_hex("sk", sk, sizeof(sk));
Expand All @@ -310,8 +310,8 @@ static void acvp_mldsa_sigGen_AFT(const unsigned char *message, size_t mlen,
pre[1] = (uint8_t)ctxlen;
memcpy(pre + 2, context, ctxlen);

CHECK(crypto_sign_signature_internal(sig, &siglen, message, mlen, pre,
ctxlen + 2, rnd, sk, 0) == 0);
CHECK(mld_sign_signature_internal(sig, &siglen, message, mlen, pre,
ctxlen + 2, rnd, sk, 0) == 0);
print_hex("signature", sig, sizeof(sig));
}

Expand All @@ -322,8 +322,8 @@ static void acvp_mldsa_sigGenInternal_AFT(
{
unsigned char sig[CRYPTO_BYTES];
size_t siglen;
CHECK(crypto_sign_signature_internal(sig, &siglen, message, mlen, NULL, 0,
rnd, sk, externalMu) == 0);
CHECK(mld_sign_signature_internal(sig, &siglen, message, mlen, NULL, 0, rnd,
sk, externalMu) == 0);
print_hex("signature", sig, sizeof(sig));
}

Expand All @@ -346,8 +346,8 @@ static void acvp_mldsa_sigGenDeterministic_AFT(
pre[1] = (uint8_t)ctxlen;
memcpy(pre + 2, context, ctxlen);

CHECK(crypto_sign_signature_internal(sig, &siglen, message, mlen, pre,
ctxlen + 2, rnd, sk, 0) == 0);
CHECK(mld_sign_signature_internal(sig, &siglen, message, mlen, pre,
ctxlen + 2, rnd, sk, 0) == 0);
print_hex("signature", sig, sizeof(sig));
}

Expand All @@ -359,8 +359,8 @@ static void acvp_mldsa_sigGenInternalDeterministic_AFT(
size_t siglen;
unsigned char rnd[MLDSA_SEEDBYTES] = {0}; /* Zero rnd for deterministic */

CHECK(crypto_sign_signature_internal(sig, &siglen, message, mlen, NULL, 0,
rnd, sk, externalMu) == 0);
CHECK(mld_sign_signature_internal(sig, &siglen, message, mlen, NULL, 0, rnd,
sk, externalMu) == 0);
print_hex("signature", sig, sizeof(sig));
}
#endif /* !MLD_CONFIG_NO_SIGN_API */
Expand All @@ -372,8 +372,8 @@ static int acvp_mldsa_sigVer_AFT(const unsigned char *message, size_t mlen,
const unsigned char signature[CRYPTO_BYTES],
const unsigned char pk[CRYPTO_PUBLICKEYBYTES])
{
return crypto_sign_verify(signature, CRYPTO_BYTES, message, mlen, context,
ctxlen, pk);
return mld_sign_verify(signature, CRYPTO_BYTES, message, mlen, context,
ctxlen, pk);
}


Expand All @@ -384,12 +384,12 @@ static int acvp_mldsa_sigVerInternal_AFT(
{
if (externalMu)
{
return crypto_sign_verify_extmu(signature, CRYPTO_BYTES, message, pk);
return mld_sign_verify_extmu(signature, CRYPTO_BYTES, message, pk);
}
else
{
return crypto_sign_verify_internal(signature, CRYPTO_BYTES, message, mlen,
NULL, 0, pk, 0);
return mld_sign_verify_internal(signature, CRYPTO_BYTES, message, mlen,
NULL, 0, pk, 0);
}
}
#endif /* !MLD_CONFIG_NO_VERIFY_API */
Expand Down Expand Up @@ -460,9 +460,9 @@ static int acvp_mldsa_sigGenPreHash_AFT(
unsigned char signature[CRYPTO_BYTES];
size_t siglen;

if (crypto_sign_signature_pre_hash_internal(signature, &siglen, ph, phlen,
context, ctxlen, rng, sk,
str_to_hash_alg(hashAlg)) != 0)
if (mld_sign_signature_pre_hash_internal(signature, &siglen, ph, phlen,
context, ctxlen, rng, sk,
str_to_hash_alg(hashAlg)) != 0)
{
return 1;
}
Expand All @@ -479,9 +479,9 @@ static int acvp_mldsa_sigVerPreHash_AFT(
size_t ctxlen, const unsigned char signature[CRYPTO_BYTES],
const unsigned char pk[CRYPTO_PUBLICKEYBYTES], const char *hashAlg)
{
return crypto_sign_verify_pre_hash_internal(signature, CRYPTO_BYTES, ph,
phlen, context, ctxlen, pk,
str_to_hash_alg(hashAlg));
return mld_sign_verify_pre_hash_internal(signature, CRYPTO_BYTES, ph, phlen,
context, ctxlen, pk,
str_to_hash_alg(hashAlg));
}
#endif /* !MLD_CONFIG_NO_VERIFY_API */

Expand All @@ -494,8 +494,8 @@ static int acvp_mldsa_sigGenPreHashShake256_AFT(
unsigned char signature[CRYPTO_BYTES];
size_t siglen;

if (crypto_sign_signature_pre_hash_shake256(signature, &siglen, message, mlen,
context, ctxlen, rnd, sk) != 0)
if (mld_sign_signature_pre_hash_shake256(signature, &siglen, message, mlen,
context, ctxlen, rnd, sk) != 0)
{
return 1;
}
Expand All @@ -512,8 +512,8 @@ static int acvp_mldsa_sigVerPreHashShake256_AFT(
size_t ctxlen, const unsigned char signature[CRYPTO_BYTES],
const unsigned char pk[CRYPTO_PUBLICKEYBYTES])
{
return crypto_sign_verify_pre_hash_shake256(signature, CRYPTO_BYTES, message,
mlen, context, ctxlen, pk);
return mld_sign_verify_pre_hash_shake256(signature, CRYPTO_BYTES, message,
mlen, context, ctxlen, pk);
}
#endif /* !MLD_CONFIG_NO_VERIFY_API */

Expand All @@ -528,9 +528,9 @@ static int acvp_mldsa_sigGenPreHashDeterministic_AFT(
size_t siglen;
unsigned char rnd[MLDSA_RNDBYTES] = {0}; /* Zero rnd for deterministic */

if (crypto_sign_signature_pre_hash_internal(signature, &siglen, ph, phlen,
context, ctxlen, rnd, sk,
str_to_hash_alg(hashAlg)) != 0)
if (mld_sign_signature_pre_hash_internal(signature, &siglen, ph, phlen,
context, ctxlen, rnd, sk,
str_to_hash_alg(hashAlg)) != 0)
{
return 1;
}
Expand All @@ -547,8 +547,8 @@ static int acvp_mldsa_sigGenPreHashShake256Deterministic_AFT(
size_t siglen;
unsigned char rnd[MLDSA_RNDBYTES] = {0}; /* Zero rnd for deterministic */

if (crypto_sign_signature_pre_hash_shake256(signature, &siglen, message, mlen,
context, ctxlen, rnd, sk) != 0)
if (mld_sign_signature_pre_hash_shake256(signature, &siglen, message, mlen,
context, ctxlen, rnd, sk) != 0)
{
return 1;
}
Expand Down
25 changes: 13 additions & 12 deletions test/bench/bench_mldsa.c
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,12 @@

#include "hal.h"
#include "mldsa_native.h"
#include "src/randombytes.h"

/* Additional SUPERCOP-style macros for functions not in the standard set */
#define crypto_sign_keypair_internal MLD_API_NAMESPACE(keypair_internal)
#define crypto_sign_signature_internal MLD_API_NAMESPACE(signature_internal)
#define mld_sign_keypair_internal MLD_API_NAMESPACE(keypair_internal)
#define mld_sign_signature_internal MLD_API_NAMESPACE(signature_internal)
#define mld_sign_verify MLD_API_NAMESPACE(verify)

#include "src/randombytes.h"

#ifndef MLD_BENCHMARK_NWARMUP
#define MLD_BENCHMARK_NWARMUP 3
Expand Down Expand Up @@ -122,13 +123,13 @@ static int bench(void)
/* Key-pair generation */
for (j = 0; j < MLD_BENCHMARK_NWARMUP; j++)
{
ret |= crypto_sign_keypair_internal(pk, sk, kg_rand);
ret |= mld_sign_keypair_internal(pk, sk, kg_rand);
}

t0 = get_cyclecounter();
for (j = 0; j < MLD_BENCHMARK_NITERATIONS; j++)
{
ret |= crypto_sign_keypair_internal(pk, sk, kg_rand);
ret |= mld_sign_keypair_internal(pk, sk, kg_rand);
}
t1 = get_cyclecounter();
cycles_kg[i] = t1 - t0;
Expand All @@ -152,14 +153,14 @@ static int bench(void)

for (j = 0; j < MLD_BENCHMARK_NWARMUP; j++)
{
ret |= crypto_sign_signature_internal(sig, &siglen, m, MLEN, pre,
CTXLEN + 2, sig_rand, sk, 0);
ret |= mld_sign_signature_internal(sig, &siglen, m, MLEN, pre,
CTXLEN + 2, sig_rand, sk, 0);
}
t0 = get_cyclecounter();
for (j = 0; j < MLD_BENCHMARK_NITERATIONS; j++)
{
ret |= crypto_sign_signature_internal(sig, &siglen, m, MLEN, pre,
CTXLEN + 2, sig_rand, sk, 0);
ret |= mld_sign_signature_internal(sig, &siglen, m, MLEN, pre,
CTXLEN + 2, sig_rand, sk, 0);
}
t1 = get_cyclecounter();
cycles_sign[i] = t1 - t0;
Expand All @@ -176,12 +177,12 @@ static int bench(void)
/* Verification */
for (j = 0; j < MLD_BENCHMARK_NWARMUP; j++)
{
ret |= crypto_sign_verify(sig, siglen, m, MLEN, ctx, CTXLEN, pk);
ret |= mld_sign_verify(sig, siglen, m, MLEN, ctx, CTXLEN, pk);
}
t0 = get_cyclecounter();
for (j = 0; j < MLD_BENCHMARK_NITERATIONS; j++)
{
ret |= crypto_sign_verify(sig, siglen, m, MLEN, ctx, CTXLEN, pk);
ret |= mld_sign_verify(sig, siglen, m, MLEN, ctx, CTXLEN, pk);
}
t1 = get_cyclecounter();
cycles_verify[i] = t1 - t0;
Expand Down
15 changes: 8 additions & 7 deletions test/src/gen_KAT.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,9 @@ int main(void)
MLD_CONFIG_NO_VERIFY_API */

/* Additional SUPERCOP-style macros for functions not in the standard set */
#define crypto_sign_keypair_internal MLD_API_NAMESPACE(keypair_internal)
#define crypto_sign_signature_internal MLD_API_NAMESPACE(signature_internal)
#define mld_sign_keypair_internal MLD_API_NAMESPACE(keypair_internal)
#define mld_sign_signature_internal MLD_API_NAMESPACE(signature_internal)
#define mld_sign_verify MLD_API_NAMESPACE(verify)

#if defined(MLD_SYS_WINDOWS)
#include <fcntl.h>
Expand Down Expand Up @@ -86,7 +87,7 @@ int main(void)

/*
* We cannot rely on randombytes in the KAT test as randombytes() is used
* inside of crypto_sign_signature() which is called as a part of
* inside of mld_sign_signature() which is called as a part of
* key generation in case PCT (pairwise-consistency test) is enabled.
* To allow KAT tests to still pass successfully, we derandomize the
* KAT test to only use deterministic randomness derived using SHAKE.
Expand All @@ -99,17 +100,17 @@ int main(void)
mld_shake256(coins, sizeof(coins), coins, sizeof(coins));
m = coins + MLDSA_SEEDBYTES + MLDSA_RNDBYTES;

CHECK(crypto_sign_keypair_internal(pk, sk, coins) == 0);
CHECK(mld_sign_keypair_internal(pk, sk, coins) == 0);

print_hex(pk, CRYPTO_PUBLICKEYBYTES);
print_hex(sk, CRYPTO_SECRETKEYBYTES);

CHECK(crypto_sign_signature_internal(s, &slen, m, i, pre, sizeof(pre),
coins + MLDSA_SEEDBYTES, sk, 0) == 0);
CHECK(mld_sign_signature_internal(s, &slen, m, i, pre, sizeof(pre),
coins + MLDSA_SEEDBYTES, sk, 0) == 0);

print_hex(s, slen);

rc = crypto_sign_verify(s, slen, m, i, NULL, CTXLEN, pk);
rc = mld_sign_verify(s, slen, m, i, NULL, CTXLEN, pk);

if (rc)
{
Expand Down
2 changes: 1 addition & 1 deletion test/src/test_alloc.c
Original file line number Diff line number Diff line change
Expand Up @@ -457,7 +457,7 @@ static int test_verify_pre_hash_shake256_alloc_failure(test_ctx_t *ctx)

static int test_open_alloc_failure(test_ctx_t *ctx)
{
/* crypto_sign_open needs a signed message (sig || msg).
/* mld_open needs a signed message (sig || msg).
* Construct it from test vectors. */
uint8_t sm[CRYPTO_BYTES + TEST_VECTOR_MSG_LEN];
uint8_t msg_out[CRYPTO_BYTES + TEST_VECTOR_MSG_LEN];
Expand Down
Loading
Loading