Hook ML-KEM related tests

This patch adds ML-KEM related tests.
This commit is contained in:
Kenjiro Nakayama
2024-12-15 18:18:32 +09:00
parent a27f602bd8
commit a6cc8cca47
15 changed files with 283 additions and 0 deletions

3
.gitignore vendored
View File

@@ -115,6 +115,9 @@ tests/freenull*
tests/gost2814789t*
tests/key_schedule*
tests/lhash_test*
tests/mlkem*.c
tests/mlkem*.h
tests/mlkem*.txt
tests/mont*
tests/policy*
tests/rfc3779*

View File

@@ -8,7 +8,9 @@ include_directories(
../crypto/bn
../crypto/curve25519
../crypto/evp
../crypto/mlkem
../crypto/modes
../crypto/sha
../crypto/x509
../ssl
../apps/openssl
@@ -534,6 +536,72 @@ add_executable(md_test md_test.c)
target_link_libraries(md_test ${OPENSSL_TEST_LIBS})
add_platform_test(md_test md_test)
# mlkem1024_decap_tests
add_executable(mlkem1024_decap_tests mlkem1024_decap_tests.c mlkem_tests_util.c)
target_link_libraries(mlkem1024_decap_tests ${OPENSSL_TEST_LIBS})
prepare_emscripten_test_target(mlkem1024_decap_tests)
add_platform_test(mlkem1024_decap_tests mlkem1024_decap_tests ${CMAKE_CURRENT_SOURCE_DIR}/mlkem1024_decap_tests.txt)
# mlkem1024_encap_tests
add_executable(mlkem1024_encap_tests mlkem1024_encap_tests.c mlkem_tests_util.c)
target_link_libraries(mlkem1024_encap_tests ${OPENSSL_TEST_LIBS})
prepare_emscripten_test_target(mlkem1024_encap_tests)
add_platform_test(mlkem1024_encap_tests mlkem1024_encap_tests ${CMAKE_CURRENT_SOURCE_DIR}/mlkem1024_encap_tests.txt)
# mlkem1024_keygen_tests
add_executable(mlkem1024_keygen_tests mlkem1024_keygen_tests.c mlkem_tests_util.c)
target_link_libraries(mlkem1024_keygen_tests ${OPENSSL_TEST_LIBS})
prepare_emscripten_test_target(mlkem1024_keygen_tests)
add_platform_test(mlkem1024_keygen_tests mlkem1024_keygen_tests ${CMAKE_CURRENT_SOURCE_DIR}/mlkem1024_keygen_tests.txt)
# mlkem1024_nist_decap_tests
add_executable(mlkem1024_nist_decap_tests mlkem1024_nist_decap_tests.c mlkem_tests_util.c)
target_link_libraries(mlkem1024_nist_decap_tests ${OPENSSL_TEST_LIBS})
prepare_emscripten_test_target(mlkem1024_nist_decap_tests)
add_platform_test(mlkem1024_nist_decap_tests mlkem1024_nist_decap_tests ${CMAKE_CURRENT_SOURCE_DIR}/mlkem1024_nist_decap_tests.txt)
# mlkem1024_nist_keygen_tests
add_executable(mlkem1024_nist_keygen_tests mlkem1024_nist_keygen_tests.c mlkem_tests_util.c)
target_link_libraries(mlkem1024_nist_keygen_tests ${OPENSSL_TEST_LIBS})
prepare_emscripten_test_target(mlkem1024_nist_keygen_tests)
add_platform_test(mlkem1024_nist_keygen_tests mlkem1024_nist_keygen_tests ${CMAKE_CURRENT_SOURCE_DIR}/mlkem1024_nist_keygen_tests.txt)
# mlkem768_decap_tests
add_executable(mlkem768_decap_tests mlkem768_decap_tests.c mlkem_tests_util.c)
target_link_libraries(mlkem768_decap_tests ${OPENSSL_TEST_LIBS})
prepare_emscripten_test_target(mlkem768_decap_tests)
add_platform_test(mlkem768_decap_tests mlkem768_decap_tests ${CMAKE_CURRENT_SOURCE_DIR}/mlkem768_decap_tests.txt)
# mlkem768_encap_tests
add_executable(mlkem768_encap_tests mlkem768_encap_tests.c mlkem_tests_util.c)
target_link_libraries(mlkem768_encap_tests ${OPENSSL_TEST_LIBS})
prepare_emscripten_test_target(mlkem768_encap_tests)
add_platform_test(mlkem768_encap_tests mlkem768_encap_tests ${CMAKE_CURRENT_SOURCE_DIR}/mlkem768_encap_tests.txt)
# mlkem768_iteration_test
add_executable(mlkem768_iteration_test mlkem768_iteration_test.c mlkem_tests_util.c)
target_link_libraries(mlkem768_iteration_test ${OPENSSL_TEST_LIBS})
prepare_emscripten_test_target(mlkem768_iteration_test)
add_platform_test(mlkem768_iteration_test mlkem768_iteration_test)
# mlkem768_keygen_tests
add_executable(mlkem768_keygen_tests mlkem768_keygen_tests.c mlkem_tests_util.c)
target_link_libraries(mlkem768_keygen_tests ${OPENSSL_TEST_LIBS})
prepare_emscripten_test_target(mlkem768_keygen_tests)
add_platform_test(mlkem768_keygen_tests mlkem768_keygen_tests ${CMAKE_CURRENT_SOURCE_DIR}/mlkem768_keygen_tests.txt)
# mlkem768_nist_decap_tests
add_executable(mlkem768_nist_decap_tests mlkem768_nist_decap_tests.c mlkem_tests_util.c)
target_link_libraries(mlkem768_nist_decap_tests ${OPENSSL_TEST_LIBS})
prepare_emscripten_test_target(mlkem768_nist_decap_tests)
add_platform_test(mlkem768_nist_decap_tests mlkem768_nist_decap_tests ${CMAKE_CURRENT_SOURCE_DIR}/mlkem768_nist_decap_tests.txt)
# mlkem768_nist_keygen_tests
add_executable(mlkem768_nist_keygen_tests mlkem768_nist_keygen_tests.c mlkem_tests_util.c)
target_link_libraries(mlkem768_nist_keygen_tests ${OPENSSL_TEST_LIBS})
prepare_emscripten_test_target(mlkem768_nist_keygen_tests)
add_platform_test(mlkem768_nist_keygen_tests mlkem768_nist_keygen_tests ${CMAKE_CURRENT_SOURCE_DIR}/mlkem768_nist_keygen_tests.txt)
# objectstest
add_executable(objectstest objectstest.c)
target_link_libraries(objectstest ${OPENSSL_TEST_LIBS})

View File

@@ -12,7 +12,9 @@ AM_CPPFLAGS += -I $(top_srcdir)/crypto/bio
AM_CPPFLAGS += -I $(top_srcdir)/crypto/bn
AM_CPPFLAGS += -I $(top_srcdir)/crypto/curve25519
AM_CPPFLAGS += -I $(top_srcdir)/crypto/evp
AM_CPPFLAGS += -I $(top_srcdir)/crypto/mlkem
AM_CPPFLAGS += -I $(top_srcdir)/crypto/modes
AM_CPPFLAGS += -I $(top_srcdir)/crypto/sha
AM_CPPFLAGS += -I $(top_srcdir)/crypto/x509
AM_CPPFLAGS += -I $(top_srcdir)/ssl
AM_CPPFLAGS += -I $(top_srcdir)/apps/openssl
@@ -542,6 +544,83 @@ TESTS += md_test
check_PROGRAMS += md_test
md_test_SOURCES = md_test.c
noinst_HEADERS += mlkem_tests_util.h
# mlkem1024_decap_tests
TESTS += mlkem1024_decap_tests.sh
check_PROGRAMS += mlkem1024_decap_tests
mlkem1024_decap_tests_SOURCES = mlkem1024_decap_tests.c mlkem_tests_util.c
EXTRA_DIST += mlkem1024_decap_tests.sh
EXTRA_DIST += mlkem1024_decap_tests.txt
# mlkem1024_encap_tests
TESTS += mlkem1024_encap_tests.sh
check_PROGRAMS += mlkem1024_encap_tests
mlkem1024_encap_tests_SOURCES = mlkem1024_encap_tests.c mlkem_tests_util.c
EXTRA_DIST += mlkem1024_encap_tests.sh
EXTRA_DIST += mlkem1024_encap_tests.txt
# mlkem1024_keygen_tests
TESTS += mlkem1024_keygen_tests.sh
check_PROGRAMS += mlkem1024_keygen_tests
mlkem1024_keygen_tests_SOURCES = mlkem1024_keygen_tests.c mlkem_tests_util.c
EXTRA_DIST += mlkem1024_keygen_tests.sh
EXTRA_DIST += mlkem1024_keygen_tests.txt
# mlkem1024_nist_decap_tests
TESTS += mlkem1024_nist_decap_tests.sh
check_PROGRAMS += mlkem1024_nist_decap_tests
mlkem1024_nist_decap_tests_SOURCES = mlkem1024_nist_decap_tests.c mlkem_tests_util.c
EXTRA_DIST += mlkem1024_nist_decap_tests.sh
EXTRA_DIST += mlkem1024_nist_decap_tests.txt
# mlkem1024_nist_keygen_tests
TESTS += mlkem1024_nist_keygen_tests.sh
check_PROGRAMS += mlkem1024_nist_keygen_tests
mlkem1024_nist_keygen_tests_SOURCES = mlkem1024_nist_keygen_tests.c mlkem_tests_util.c
EXTRA_DIST += mlkem1024_nist_keygen_tests.sh
EXTRA_DIST += mlkem1024_nist_keygen_tests.txt
# mlkem768_decap_tests
TESTS += mlkem768_decap_tests.sh
check_PROGRAMS += mlkem768_decap_tests
mlkem768_decap_tests_SOURCES = mlkem768_decap_tests.c mlkem_tests_util.c
EXTRA_DIST += mlkem768_decap_tests.sh
EXTRA_DIST += mlkem768_decap_tests.txt
# mlkem768_encap_tests
TESTS += mlkem768_encap_tests.sh
check_PROGRAMS += mlkem768_encap_tests
mlkem768_encap_tests_SOURCES = mlkem768_encap_tests.c mlkem_tests_util.c
EXTRA_DIST += mlkem768_encap_tests.sh
EXTRA_DIST += mlkem768_encap_tests.txt
# mlkem768_iteration_test
TESTS += mlkem768_iteration_test
check_PROGRAMS += mlkem768_iteration_test
mlkem768_iteration_test_SOURCES = mlkem768_iteration_test.c mlkem_tests_util.c
# mlkem768_keygen_tests
TESTS += mlkem768_keygen_tests.sh
check_PROGRAMS += mlkem768_keygen_tests
mlkem768_keygen_tests_SOURCES = mlkem768_keygen_tests.c mlkem_tests_util.c
EXTRA_DIST += mlkem768_keygen_tests.sh
EXTRA_DIST += mlkem768_keygen_tests.txt
# mlkem768_nist_decap_tests
TESTS += mlkem768_nist_decap_tests.sh
check_PROGRAMS += mlkem768_nist_decap_tests
mlkem768_nist_decap_tests_SOURCES = mlkem768_nist_decap_tests.c mlkem_tests_util.c
EXTRA_DIST += mlkem768_nist_decap_tests.sh
EXTRA_DIST += mlkem768_nist_decap_tests.txt
# mlkem768_nist_keygen_tests
TESTS += mlkem768_nist_keygen_tests.sh
check_PROGRAMS += mlkem768_nist_keygen_tests
mlkem768_nist_keygen_tests_SOURCES = mlkem768_nist_keygen_tests.c mlkem_tests_util.c
EXTRA_DIST += mlkem768_nist_keygen_tests.sh
EXTRA_DIST += mlkem768_nist_keygen_tests.txt
# objectstest
TESTS += objectstest
check_PROGRAMS += objectstest

12
tests/mlkem1024_decap_tests.sh Executable file
View File

@@ -0,0 +1,12 @@
#!/bin/sh
set -e
TEST=./mlkem1024_decap_tests
if [ -e ./mlkem1024_decap_tests.exe ]; then
TEST=./mlkem1024_decap_tests.exe
fi
if [ -z $srcdir ]; then
srcdir=.
fi
$TEST $srcdir/mlkem1024_decap_tests.txt

12
tests/mlkem1024_encap_tests.sh Executable file
View File

@@ -0,0 +1,12 @@
#!/bin/sh
set -e
TEST=./mlkem1024_encap_tests
if [ -e ./mlkem1024_encap_tests.exe ]; then
TEST=./mlkem1024_encap_tests.exe
fi
if [ -z $srcdir ]; then
srcdir=.
fi
$TEST $srcdir/mlkem1024_encap_tests.txt

View File

@@ -0,0 +1,12 @@
#!/bin/sh
set -e
TEST=./mlkem1024_decap_tests
if [ -e ./mlkem1024_decap_tests.exe ]; then
TEST=./mlkem1024_decap_tests.exe
fi
if [ -z $srcdir ]; then
srcdir=.
fi
$TEST $srcdir/mlkem1024_decap_tests.txt

12
tests/mlkem1024_keygen_tests.sh Executable file
View File

@@ -0,0 +1,12 @@
#!/bin/sh
set -e
TEST=./mlkem1024_keygen_tests
if [ -e ./mlkem1024_keygen_tests.exe ]; then
TEST=./mlkem1024_keygen_tests.exe
fi
if [ -z $srcdir ]; then
srcdir=.
fi
$TEST $srcdir/mlkem1024_keygen_tests.txt

View File

@@ -0,0 +1,12 @@
#!/bin/sh
set -e
TEST=./mlkem1024_nist_decap_tests
if [ -e ./mlkem1024_nist_decap_tests.exe ]; then
TEST=./mlkem1024_nist_decap_tests.exe
fi
if [ -z $srcdir ]; then
srcdir=.
fi
$TEST $srcdir/mlkem1024_nist_decap_tests.txt

View File

@@ -0,0 +1,12 @@
#!/bin/sh
set -e
TEST=./mlkem1024_nist_keygen_tests
if [ -e ./mlkem1024_nist_keygen_tests.exe ]; then
TEST=./mlkem1024_nist_keygen_tests.exe
fi
if [ -z $srcdir ]; then
srcdir=.
fi
$TEST $srcdir/mlkem1024_nist_keygen_tests.txt

12
tests/mlkem768_decap_tests.sh Executable file
View File

@@ -0,0 +1,12 @@
#!/bin/sh
set -e
TEST=./mlkem768_decap_tests
if [ -e ./mlkem768_decap_tests.exe ]; then
TEST=./mlkem768_decap_tests.exe
fi
if [ -z $srcdir ]; then
srcdir=.
fi
$TEST $srcdir/mlkem768_decap_tests.txt

12
tests/mlkem768_encap_tests.sh Executable file
View File

@@ -0,0 +1,12 @@
#!/bin/sh
set -e
TEST=./mlkem768_encap_tests
if [ -e ./mlkem768_encap_tests.exe ]; then
TEST=./mlkem768_encap_tests.exe
fi
if [ -z $srcdir ]; then
srcdir=.
fi
$TEST $srcdir/mlkem768_encap_tests.txt

12
tests/mlkem768_keygen_tests.sh Executable file
View File

@@ -0,0 +1,12 @@
#!/bin/sh
set -e
TEST=./mlkem768_keygen_tests
if [ -e ./mlkem768_keygen_tests.exe ]; then
TEST=./mlkem768_keygen_tests.exe
fi
if [ -z $srcdir ]; then
srcdir=.
fi
$TEST $srcdir/mlkem768_keygen_tests.txt

View File

@@ -0,0 +1,12 @@
#!/bin/sh
set -e
TEST=./mlkem768_nist_decap_tests
if [ -e ./mlkem768_nist_decap_tests.exe ]; then
TEST=./mlkem768_nist_decap_tests.exe
fi
if [ -z $srcdir ]; then
srcdir=.
fi
$TEST $srcdir/mlkem768_nist_decap_tests.txt

View File

@@ -0,0 +1,12 @@
#!/bin/sh
set -e
TEST=./mlkem768_keygen_tests
if [ -e ./mlkem768_keygen_tests.exe ]; then
TEST=./mlkem768_keygen_tests.exe
fi
if [ -z $srcdir ]; then
srcdir=.
fi
$TEST $srcdir/mlkem768_keygen_tests.txt

View File

@@ -355,6 +355,7 @@ $CP $libcrypto_regress/aead/*.txt tests
$CP $libcrypto_regress/ct/ctlog.conf tests
$CP $libcrypto_regress/ct/*.crt tests
$CP $libcrypto_regress/x509/policy/*.pem tests
$CP $libcrypto_regress/mlkem/*.txt tests
# generate libcrypto freenull.c
awk -f $libcrypto_regress/free/freenull.awk \