pq-code-package / mlkem-c-aarch64

ML-KEM implementation optimized for aarch64
https://pq-code-package.github.io/mlkem-c-aarch64/dev/bench
Apache License 2.0
10 stars 6 forks source link

`tests` script does not work outside of nix environment #240

Open hanno-becker opened 3 hours ago

hanno-becker commented 3 hours ago

When I try to run tests func locally (in a python environment with click installed), I get:

(venv) > mlkem-c-aarch64 % tests func
INFO  > Functional Test
INFO  > make CROSS_PREFIX= mlkem AUTO=1 OPT=1
make: Circular test/build/lib/libfips202.a <- test/build/lib/libfips202.a dependency dropped.
make: Circular test/build/lib/librng.a <- test/build/lib/libfips202.a dependency dropped.
make: Circular test/build/lib/librng.a <- test/build/lib/librng.a dependency dropped.
make: Circular test/build/randombytes/randombytes.c.o <- test/build/lib/libfips202.a dependency dropped.
make: Circular test/build/randombytes/randombytes.c.o <- test/build/lib/librng.a dependency dropped.
ld: warning: search path 'test/build/lib' not found
ld: library 'fips202' not found

which hints at some issue with the Makefile.

The same problem arises with tests kat and tests nistkat.

hanno-becker commented 2 hours ago

After https://github.com/pq-code-package/mlkem-c-aarch64/pull/241, the following problems emerge:

mlkem-c-aarch64 % tests kat
INFO  > Kat Test
INFO  > make CROSS_PREFIX= kat OPT=1 AUTO=1
INFO  > ./test/build/mlkem512/bin/gen_KAT512
ERROR > ML-KEM-512 failed, expecting , but getting 323d0e9aefe34819f10cdce1f0d9e5c8a55193cebe984fb1718e779ebfbc0da8
INFO  > ./test/build/mlkem768/bin/gen_KAT768
ERROR > ML-KEM-768 failed, expecting , but getting 99b497dcddfe418f44d30c7376fda09ae7cca2e9141143032d842508b4a1f438
INFO  > ./test/build/mlkem1024/bin/gen_KAT1024
ERROR > ML-KEM-1024 failed, expecting , but getting 104058bab1fef70aa10606831faabef7053d44b1adac6b34d35e505c3085db78

and

> ./test/build/mlkem512/bin/test_kyber512
ERROR > ML-KEM-512 failed, expecting CRYPTO_SECRETKEYBYTES:
CRYPTO_PUBLICKEYBYTES:
CRYPTO_CIPHERTEXTBYTES:
, but getting CRYPTO_SECRETKEYBYTES:  1632
CRYPTO_PUBLICKEYBYTES:  800
CRYPTO_CIPHERTEXTBYTES: 768

INFO  > ./test/build/mlkem768/bin/test_kyber768
ERROR > ML-KEM-768 failed, expecting CRYPTO_SECRETKEYBYTES:
CRYPTO_PUBLICKEYBYTES:
CRYPTO_CIPHERTEXTBYTES:
, but getting CRYPTO_SECRETKEYBYTES:  2400
CRYPTO_PUBLICKEYBYTES:  1184
CRYPTO_CIPHERTEXTBYTES: 1088

INFO  > ./test/build/mlkem1024/bin/test_kyber1024
ERROR > ML-KEM-1024 failed, expecting CRYPTO_SECRETKEYBYTES:
CRYPTO_PUBLICKEYBYTES:
CRYPTO_CIPHERTEXTBYTES:
, but getting CRYPTO_SECRETKEYBYTES:  3168
CRYPTO_PUBLICKEYBYTES:  1568
CRYPTO_CIPHERTEXTBYTES: 1568

and

% tests nistkat
INFO  > Nistkat Test
INFO  > make CROSS_PREFIX= nistkat AUTO=1 OPT=1
INFO  > ./test/build/mlkem512/bin/gen_NISTKAT512
ERROR > ML-KEM-512 failed, expecting , but getting a30184edee53b3b009356e1e31d7f9e93ce82550e3c622d7192e387b0cc84f2e
INFO  > ./test/build/mlkem768/bin/gen_NISTKAT768
ERROR > ML-KEM-768 failed, expecting , but getting 729367b590637f4a93c68d5e4a4d2e2b4454842a52c9eec503e3a0d24cb66471
INFO  > ./test/build/mlkem1024/bin/gen_NISTKAT1024
ERROR > ML-KEM-1024 failed, expecting , but getting 3fba7327d0320cb6134badf2a1bcb963a5b3c0026c7dece8f00d6a6155e47b33