From bed758a905502f6e79c80cb5eca81a13ce5bb2ba Mon Sep 17 00:00:00 2001 From: Kris Kwiatkowski Date: Mon, 11 Jul 2022 18:19:21 +0100 Subject: [PATCH] [dilithium] more tests --- test/ut.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/test/ut.cpp b/test/ut.cpp index 9bc13175..c111c5a8 100644 --- a/test/ut.cpp +++ b/test/ut.cpp @@ -4,6 +4,10 @@ #include #include #include +extern "C" { + #include "sign/dilithium/dilithium2/clean/reduce.h" + #include "sign/dilithium/dilithium2/clean/params.h" +} TEST(KEM,OneOff) { @@ -73,3 +77,19 @@ TEST(KEMSIG,PrintSizes) { std::cout << out.str() << std::endl; } } + +TEST(Dilithium, MontREDC) { + ASSERT_EQ(PQCLEAN_DILITHIUM2_CLEAN_montgomery_reduce(0), 0); + ASSERT_EQ(PQCLEAN_DILITHIUM2_CLEAN_montgomery_reduce(Q), 0); + ASSERT_EQ(PQCLEAN_DILITHIUM2_CLEAN_montgomery_reduce(Q*100), 0); + ASSERT_EQ(PQCLEAN_DILITHIUM2_CLEAN_montgomery_reduce(1), -114592); + ASSERT_EQ(PQCLEAN_DILITHIUM2_CLEAN_montgomery_reduce(-1), 114592); + ASSERT_EQ(PQCLEAN_DILITHIUM2_CLEAN_montgomery_reduce(((uint64_t)Q<<31)-1), 114592); + ASSERT_EQ(PQCLEAN_DILITHIUM2_CLEAN_montgomery_reduce(-((int64_t)Q<<31)),0); + ASSERT_EQ(PQCLEAN_DILITHIUM2_CLEAN_montgomery_reduce(-((1ULL<<31)*(int64_t)Q)+1), -114592); + ASSERT_EQ(PQCLEAN_DILITHIUM2_CLEAN_montgomery_reduce(-(((int64_t)Q)<<31)+1), -114592); + ASSERT_EQ(PQCLEAN_DILITHIUM2_CLEAN_montgomery_reduce((uint64_t)1<<15), -523840); + ASSERT_EQ(PQCLEAN_DILITHIUM2_CLEAN_montgomery_reduce((uint64_t)1<<31), 4190209); + ASSERT_EQ(PQCLEAN_DILITHIUM2_CLEAN_montgomery_reduce(3347556), 2070606); + ASSERT_EQ(PQCLEAN_DILITHIUM2_CLEAN_montgomery_reduce(-2581810), 910169); +}