Skip to content

Commit

Permalink
Add Cmake file to build ref directory
Browse files Browse the repository at this point in the history
  • Loading branch information
yodalee committed Nov 17, 2024
1 parent 48bca31 commit 8fa1ef6
Show file tree
Hide file tree
Showing 2 changed files with 105 additions and 1 deletion.
6 changes: 5 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,8 @@ option(ENABLE_TESTS "Enable Unit Tests" ON)

# Set the output directories for binaries and libraries
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)

find_package(OpenSSL REQUIRED)

add_subdirectory(ref)
100 changes: 100 additions & 0 deletions ref/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@


set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wextra")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wpedantic")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wmissing-prototypes")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wredundant-decls")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wshadow")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wpointer-arith")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fomit-frame-pointer")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -z noexecstack")
set(NISTFLAGS "${NISTFLAGS}" -Wno-unused-result -O3 -fomit-frame-pointer)

set(securitylevel 2 3 4)

# build randombytes
add_library(randombytes SHARED randombytes.c)

# build nist rng
add_library(rng SHARED nistkat/rng.c)
target_link_libraries(rng OpenSSL::Crypto)

set(SRCS
kem.c
indcpa.c
polyvec.c
poly.c
ntt.c
cbd.c
reduce.c
verify.c
)

# build fips202 shared library
foreach(level IN LISTS securitylevel)
MATH(EXPR NBITS "256 * ${level}" OUTPUT_FORMAT DECIMAL)
set(name pqccrystals_fips202_${NBITS}_ref)

add_library(${name} SHARED fips202.c symmetric-shake.c)

target_compile_definitions(${name} PUBLIC KYBER_K=${level})
endforeach()

# build algorithm shared library
foreach(level IN LISTS securitylevel)
MATH(EXPR NBITS "256 * ${level}" OUTPUT_FORMAT DECIMAL)
set(name pqccrystals_kyber${NBITS}_ref)

add_library(${name} SHARED ${SRCS})
target_compile_definitions(${name} PUBLIC KYBER_K=${level})
endforeach()

# build test_kyber
foreach(level IN LISTS securitylevel)
MATH(EXPR NBITS "256 * ${level}" OUTPUT_FORMAT DECIMAL)

add_executable(test_kyber${NBITS} test/test_kyber.c)
target_link_libraries(test_kyber${NBITS}
pqccrystals_fips202_${NBITS}_ref
pqccrystals_kyber${NBITS}_ref
randombytes)
endforeach()

# build test_vector
foreach(level IN LISTS securitylevel)
MATH(EXPR NBITS "256 * ${level}" OUTPUT_FORMAT DECIMAL)

add_executable(test_vectors${NBITS} test/test_vectors.c)
target_link_libraries(test_vectors${NBITS}
pqccrystals_fips202_${NBITS}_ref
pqccrystals_kyber${NBITS}_ref)
endforeach()

# build test_speed
foreach(level IN LISTS securitylevel)
MATH(EXPR NBITS "256 * ${level}" OUTPUT_FORMAT DECIMAL)

add_executable(test_speed${NBITS}
test/cpucycles.c
test/speed_print.c
test/test_speed.c
)
target_link_libraries(test_speed${NBITS}
pqccrystals_fips202_${NBITS}_ref
pqccrystals_kyber${NBITS}_ref
randombytes)
endforeach()

# build nistkat
foreach(level IN LISTS securitylevel)
MATH(EXPR NBITS "256 * ${level}" OUTPUT_FORMAT DECIMAL)

add_compile_options(${NISTFLAGS})
add_executable(PQCgenKAT_kem${NBITS} nistkat/PQCgenKAT_kem.c)
target_link_libraries(PQCgenKAT_kem${NBITS}
pqccrystals_fips202_${NBITS}_ref
pqccrystals_kyber${NBITS}_ref
rng)
endforeach()

0 comments on commit 8fa1ef6

Please sign in to comment.