libwebsockets/minimal-examples-lowlevel/crypto/minimal-crypto-cose-sign/CMakeLists.txt
2023-12-08 13:23:04 +00:00

220 lines
6.5 KiB
CMake

project(lws-crypto-cose-sign C)
cmake_minimum_required(VERSION 3.5)
find_package(libwebsockets CONFIG REQUIRED)
list(APPEND CMAKE_MODULE_PATH ${LWS_CMAKE_DIR})
include(CheckCSourceCompiles)
include(LwsCheckRequirements)
set(SAMP lws-crypto-cose-sign)
set(SRCS main.c)
set(requirements 1)
require_lws_config(LWS_WITH_COSE 1 requirements)
if (requirements)
add_executable(${SAMP} ${SRCS})
# EC signing
add_test(NAME crypto-cose-sign-1
COMMAND lws-crypto-cose-sign -s -k set1.cks --kid 11
--alg ES256 --cose-sign
--stdin payload.txt
--stdout ctest-sig-es256.sig)
add_test(NAME crypto-cose-sign-2
COMMAND lws-crypto-cose-sign -s -k set1.cks --kid sec384
--alg ES384 --cose-sign
--stdin payload.txt
--stdout ctest-sig-es384.sig)
add_test(NAME crypto-cose-sign-3
COMMAND lws-crypto-cose-sign -s -k set1.cks --kid sec512
--alg ES512 --cose-sign
--stdin payload.txt
--stdout ctest-sig-es512.sig)
# EC validation
add_test(NAME crypto-cose-sign-4
COMMAND lws-crypto-cose-sign -k set1.cks
--stdout r1.txt
--stdin ctest-sig-es256.sig)
set_tests_properties(crypto-cose-sign-4 PROPERTIES
DEPENDS crypto-cose-sign-1)
add_test(NAME crypto-cose-sign-5
COMMAND lws-crypto-cose-sign -k set1.cks
--stdout r2.txt
--stdin ctest-sig-es384.sig)
set_tests_properties(crypto-cose-sign-5 PROPERTIES
DEPENDS crypto-cose-sign-2)
add_test(NAME crypto-cose-sign-6
COMMAND lws-crypto-cose-sign -k set1.cks --cose-sign
--stdout r3.txt
--stdin ctest-sig-es512.sig)
set_tests_properties(crypto-cose-sign-6 PROPERTIES
DEPENDS crypto-cose-sign-3)
# RSA 4096 signing
add_test(NAME crypto-cose-sign-7
COMMAND lws-crypto-cose-sign -s -k rsa-4096.ck
--alg RS512 --cose-sign
--stdin payload.txt
--stdout ctest-sig-rs512.sig)
# RSA 4096 validation
add_test(NAME crypto-cose-sign-8
COMMAND lws-crypto-cose-sign -k rsa-4096.ck --cose-sign
--stdout r8.txt
--stdin ctest-sig-rs512.sig)
set_tests_properties(crypto-cose-sign-8 PROPERTIES
DEPENDS crypto-cose-sign-7)
# HMAC signing, cose-mac
# add_test(NAME crypto-cose-sign-9
# COMMAND lws-crypto-cose-sign -s -k set1.cks --kid our-secret
# --alg HS256 --cose-mac
# --stdin payload.txt
# --stdout ctest-sig-hmac256.sig)
# add_test(NAME crypto-cose-sign-10
# COMMAND lws-crypto-cose-sign -s -k set1.cks --kid sec-48
# --alg HS384 --cose-mac
# --stdin payload.txt
# --stdout ctest-sig-hmac384.sig)
# add_test(NAME crypto-cose-sign-11
# COMMAND lws-crypto-cose-sign -s -k set1.cks --kid sec-64
# --alg HS512 --cose-mac
# --stdin payload.txt
# --stdout ctest-sig-hmac512.sig)
# add_test(NAME crypto-cose-sign-12
# COMMAND lws-crypto-cose-sign -s -k set1.cks --kid our-secret
# --alg HS256_64 --cose-mac
# --stdin payload.txt
# --stdout ctest-sig-hmac256_64.sig)
# HMAC validation, cose-mac
# add_test(NAME crypto-cose-sign-13
# COMMAND lws-crypto-cose-sign -k set1.cks
# --stdout r1.txt
# --stdin ctest-sig-hmac256.sig)
# set_tests_properties(crypto-cose-sign-13
# PROPERTIES DEPENDS crypto-cose-sign-9)
#
# add_test(NAME crypto-cose-sign-14
# COMMAND lws-crypto-cose-sign -k set1.cks
# --stdout r2.txt
# --stdin ctest-sig-hmac384.sig)
# set_tests_properties(crypto-cose-sign-14
# PROPERTIES DEPENDS crypto-cose-sign-10)
#
# add_test(NAME crypto-cose-sign-15
# COMMAND lws-crypto-cose-sign -k set1.cks
# --stdout r3.txt
# --stdin ctest-sig-hmac512.sig)
# set_tests_properties(crypto-cose-sign-15
# PROPERTIES DEPENDS crypto-cose-sign-11)
#
# add_test(NAME crypto-cose-sign-16
# COMMAND lws-crypto-cose-sign -k set1.cks
# --stdout r4.txt
# --stdin ctest-sig-hmac256_64.sig)
# set_tests_properties(crypto-cose-sign-16
# PROPERTIES DEPENDS crypto-cose-sign-12)
# HMAC signing, cose-mac0
add_test(NAME crypto-cose-sign-17
COMMAND lws-crypto-cose-sign -s -k set1.cks --kid our-secret
--alg HS256 --cose-mac0
--stdin payload.txt
--stdout ctest-sig-hmac0256.sig)
add_test(NAME crypto-cose-sign-18
COMMAND lws-crypto-cose-sign -s -k set1.cks --kid sec-48
--alg HS384 --cose-mac0
--stdin payload.txt
--stdout ctest-sig-hmac0384.sig)
add_test(NAME crypto-cose-sign-19
COMMAND lws-crypto-cose-sign -s -k set1.cks --kid sec-64
--alg HS512 --cose-mac0
--stdin payload.txt
--stdout ctest-sig-hmac0512.sig)
add_test(NAME crypto-cose-sign-20
COMMAND lws-crypto-cose-sign -s -k set1.cks --kid our-secret
--alg HS256_64 --cose-mac0
--stdin payload.txt
--stdout ctest-sig-hmac0256_64.sig)
# HMAC validation, cose-mac0
add_test(NAME crypto-cose-sign-21
COMMAND lws-crypto-cose-sign -k set1.cks
--stdout r1.txt
--stdin ctest-sig-hmac0256.sig)
set_tests_properties(crypto-cose-sign-21
PROPERTIES DEPENDS crypto-cose-sign-17)
add_test(NAME crypto-cose-sign-22
COMMAND lws-crypto-cose-sign -k set1.cks
--stdout r2.txt
--stdin ctest-sig-hmac0384.sig)
set_tests_properties(crypto-cose-sign-22
PROPERTIES DEPENDS crypto-cose-sign-18)
add_test(NAME crypto-cose-sign-23
COMMAND lws-crypto-cose-sign -k set1.cks
--stdout r3.txt
--stdin ctest-sig-hmac0512.sig)
set_tests_properties(crypto-cose-sign-23
PROPERTIES DEPENDS crypto-cose-sign-19)
add_test(NAME crypto-cose-sign-24
COMMAND lws-crypto-cose-sign -k set1.cks
--stdout r4.txt
--stdin ctest-sig-hmac0256_64.sig)
set_tests_properties(crypto-cose-sign-24
PROPERTIES DEPENDS crypto-cose-sign-20)
set_tests_properties(crypto-cose-sign-1
crypto-cose-sign-2
crypto-cose-sign-3
crypto-cose-sign-4
crypto-cose-sign-5
crypto-cose-sign-6
crypto-cose-sign-7
crypto-cose-sign-8
# crypto-cose-sign-9
# crypto-cose-sign-10
# crypto-cose-sign-11
# crypto-cose-sign-12
# crypto-cose-sign-13
# crypto-cose-sign-14
# crypto-cose-sign-15
# crypto-cose-sign-16
crypto-cose-sign-17
crypto-cose-sign-18
crypto-cose-sign-19
crypto-cose-sign-20
crypto-cose-sign-21
crypto-cose-sign-22
crypto-cose-sign-23
crypto-cose-sign-24
PROPERTIES
WORKING_DIRECTORY
${CMAKE_SOURCE_DIR}/minimal-examples-lowlevel/crypto/minimal-crypto-cose-sign
TIMEOUT 5)
if (websockets_shared)
target_link_libraries(${SAMP} websockets_shared ${LIBWEBSOCKETS_DEP_LIBS})
add_dependencies(${SAMP} websockets_shared)
else()
target_link_libraries(${SAMP} websockets ${LIBWEBSOCKETS_DEP_LIBS})
endif()
endif()