From 97afcca08ce7943b6d1f60c008ef731ca9677480 Mon Sep 17 00:00:00 2001 From: Richard Barnes Date: Mon, 27 Nov 2023 13:53:21 -0500 Subject: [PATCH 01/12] Noop change to cause CI to run --- src/common.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/common.cpp b/src/common.cpp index c0185aa5..0a0eb59e 100644 --- a/src/common.cpp +++ b/src/common.cpp @@ -3,6 +3,8 @@ namespace MLS_NAMESPACE { +// XXX BOGUS COMMENT + uint64_t seconds_since_epoch() { From 3848a25a0eb4481b36dc2efa45fb68bbad2e79b5 Mon Sep 17 00:00:00 2001 From: Richard Barnes Date: Thu, 7 Dec 2023 15:30:28 -0500 Subject: [PATCH 02/12] Revert some library deletions --- lib/mls_vectors/test/CMakeLists.txt | 2 +- test/CMakeLists.txt | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/mls_vectors/test/CMakeLists.txt b/lib/mls_vectors/test/CMakeLists.txt index 6256ddbf..360f03aa 100644 --- a/lib/mls_vectors/test/CMakeLists.txt +++ b/lib/mls_vectors/test/CMakeLists.txt @@ -8,7 +8,7 @@ file(GLOB TEST_SOURCES CONFIGURE_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp) add_executable(${TEST_APP_NAME} ${TEST_SOURCES}) add_dependencies(${TEST_APP_NAME} ${CURRENT_LIB_NAME} bytes tls_syntax) -target_link_libraries(${TEST_APP_NAME} ${CURRENT_LIB_NAME} doctest::doctest) +target_link_libraries(${TEST_APP_NAME} ${CURRENT_LIB_NAME} bytes tls_syntax doctest::doctest) # Enable CTest include(doctest) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 5a9b5d18..0bdb081e 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -9,7 +9,9 @@ file(GLOB TEST_SOURCES CONFIGURE_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp) add_executable(${TEST_APP_NAME} ${TEST_SOURCES}) add_dependencies(${TEST_APP_NAME} ${LIB_NAME} bytes tls_syntax mls_vectors) target_include_directories(${TEST_APP_NAME} PRIVATE ${PROJECT_SOURCE_DIR}/src) -target_link_libraries(${TEST_APP_NAME} mls_vectors doctest::doctest) +target_link_libraries(${TEST_APP_NAME} ${LIB_NAME} + bytes tls_syntax mls_vectors mls_vectors + doctest::doctest OpenSSL::Crypto) # Enable CTest include(doctest) From d62d3efa2cbffdf00d58f37b7a802794f0559080 Mon Sep 17 00:00:00 2001 From: Richard Barnes Date: Thu, 7 Dec 2023 15:42:15 -0500 Subject: [PATCH 03/12] Link tls_syntax to bytes_test --- lib/bytes/test/CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/bytes/test/CMakeLists.txt b/lib/bytes/test/CMakeLists.txt index c9a78092..894450fe 100644 --- a/lib/bytes/test/CMakeLists.txt +++ b/lib/bytes/test/CMakeLists.txt @@ -8,7 +8,8 @@ file(GLOB TEST_SOURCES CONFIGURE_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp) add_executable(${TEST_APP_NAME} ${TEST_SOURCES}) add_dependencies(${TEST_APP_NAME} ${CURRENT_LIB_NAME}) -target_link_libraries(${TEST_APP_NAME} ${CURRENT_LIB_NAME} doctest::doctest) +target_link_libraries(${TEST_APP_NAME} ${CURRENT_LIB_NAME} + tls_syntax doctest::doctest) # Enable CTest include(doctest) From 8325953a9d637547ee63c5acb999dbf3320a3c91 Mon Sep 17 00:00:00 2001 From: Richard Barnes Date: Wed, 13 Dec 2023 12:30:12 -0500 Subject: [PATCH 04/12] Only build the smallest libraries --- CMakeLists.txt | 173 ++++++++++++++++++++++----------------------- lib/CMakeLists.txt | 4 +- 2 files changed, 88 insertions(+), 89 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8875b9fb..9dba75c0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -137,91 +137,90 @@ add_subdirectory(lib) # Third-Party libraries in tree add_subdirectory(third_party) - -### -### Library Config -### - -set(LIB_NAME "${PROJECT_NAME}") - -file(GLOB_RECURSE LIB_HEADERS CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/include/*.h") -file(GLOB_RECURSE LIB_SOURCES CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp") - -add_library(${LIB_NAME} ${LIB_HEADERS} ${LIB_SOURCES}) -add_dependencies(${LIB_NAME} bytes tls_syntax hpke) -target_link_libraries(${LIB_NAME} bytes tls_syntax hpke) -target_include_directories(${LIB_NAME} - PUBLIC - $ - $ - PRIVATE - ${OPENSSL_INCLUDE_DIR} -) - -install(TARGETS ${LIB_NAME} EXPORT mlspp-targets) - -### -### Tests -### -if(TESTING) - add_subdirectory(test) -endif() - -### -### Exports -### -set(CMAKE_EXPORT_PACKAGE_REGISTRY ON) -export( - EXPORT - mlspp-targets - NAMESPACE - ${MLS_EXPORT_NAMESPACE}:: - FILE - ${MLS_EXPORT_NAMESPACE}Targets.cmake) -export(PACKAGE ${MLS_EXPORT_NAMESPACE}) - -configure_package_config_file(cmake/config.cmake.in - ${CMAKE_CURRENT_BINARY_DIR}/${MLS_EXPORT_NAMESPACE}Config.cmake - INSTALL_DESTINATION ${CMAKE_INSTALL_DATADIR}/${MLS_EXPORT_NAMESPACE} - NO_SET_AND_CHECK_MACRO) - -write_basic_package_version_file( - ${CMAKE_CURRENT_BINARY_DIR}/${MLS_EXPORT_NAMESPACE}ConfigVersion.cmake - VERSION ${PROJECT_VERSION} - COMPATIBILITY SameMajorVersion) - -### -### Install -### - -install( - EXPORT - mlspp-targets - NAMESPACE - ${MLS_EXPORT_NAMESPACE}:: - FILE - ${MLS_EXPORT_NAMESPACE}Targets.cmake - DESTINATION - ${CMAKE_INSTALL_DATADIR}/${MLS_EXPORT_NAMESPACE}) - -install( - DIRECTORY - include/ - DESTINATION - ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}) - -install( - FILES - ${CMAKE_CURRENT_BINARY_DIR}/${MLS_EXPORT_NAMESPACE}Config.cmake - ${CMAKE_CURRENT_BINARY_DIR}/${MLS_EXPORT_NAMESPACE}ConfigVersion.cmake - DESTINATION - ${CMAKE_INSTALL_DATADIR}/${MLS_EXPORT_NAMESPACE}) - -install( - FILES - ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE - DESTINATION - ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME} - RENAME - copyright) +# ### +# ### Library Config +# ### +# +# set(LIB_NAME "${PROJECT_NAME}") +# +# file(GLOB_RECURSE LIB_HEADERS CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/include/*.h") +# file(GLOB_RECURSE LIB_SOURCES CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp") +# +# add_library(${LIB_NAME} ${LIB_HEADERS} ${LIB_SOURCES}) +# add_dependencies(${LIB_NAME} bytes tls_syntax hpke) +# target_link_libraries(${LIB_NAME} bytes tls_syntax hpke) +# target_include_directories(${LIB_NAME} +# PUBLIC +# $ +# $ +# PRIVATE +# ${OPENSSL_INCLUDE_DIR} +# ) +# +# install(TARGETS ${LIB_NAME} EXPORT mlspp-targets) +# +# ### +# ### Tests +# ### +# if(TESTING) +# add_subdirectory(test) +# endif() +# +# ### +# ### Exports +# ### +# set(CMAKE_EXPORT_PACKAGE_REGISTRY ON) +# export( +# EXPORT +# mlspp-targets +# NAMESPACE +# ${MLS_EXPORT_NAMESPACE}:: +# FILE +# ${MLS_EXPORT_NAMESPACE}Targets.cmake) +# export(PACKAGE ${MLS_EXPORT_NAMESPACE}) +# +# configure_package_config_file(cmake/config.cmake.in +# ${CMAKE_CURRENT_BINARY_DIR}/${MLS_EXPORT_NAMESPACE}Config.cmake +# INSTALL_DESTINATION ${CMAKE_INSTALL_DATADIR}/${MLS_EXPORT_NAMESPACE} +# NO_SET_AND_CHECK_MACRO) +# +# write_basic_package_version_file( +# ${CMAKE_CURRENT_BINARY_DIR}/${MLS_EXPORT_NAMESPACE}ConfigVersion.cmake +# VERSION ${PROJECT_VERSION} +# COMPATIBILITY SameMajorVersion) +# +# ### +# ### Install +# ### +# +# install( +# EXPORT +# mlspp-targets +# NAMESPACE +# ${MLS_EXPORT_NAMESPACE}:: +# FILE +# ${MLS_EXPORT_NAMESPACE}Targets.cmake +# DESTINATION +# ${CMAKE_INSTALL_DATADIR}/${MLS_EXPORT_NAMESPACE}) +# +# install( +# DIRECTORY +# include/ +# DESTINATION +# ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}) +# +# install( +# FILES +# ${CMAKE_CURRENT_BINARY_DIR}/${MLS_EXPORT_NAMESPACE}Config.cmake +# ${CMAKE_CURRENT_BINARY_DIR}/${MLS_EXPORT_NAMESPACE}ConfigVersion.cmake +# DESTINATION +# ${CMAKE_INSTALL_DATADIR}/${MLS_EXPORT_NAMESPACE}) +# +# install( +# FILES +# ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE +# DESTINATION +# ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME} +# RENAME +# copyright) diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index 31f9546e..aabf4fa8 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -1,4 +1,4 @@ add_subdirectory(bytes) -add_subdirectory(hpke) +# add_subdirectory(hpke) add_subdirectory(tls_syntax) -add_subdirectory(mls_vectors) +# add_subdirectory(mls_vectors) From 0bb1b40f143d7f96078b26d7efd9af08ac300c8a Mon Sep 17 00:00:00 2001 From: Richard Barnes Date: Wed, 13 Dec 2023 13:42:14 -0500 Subject: [PATCH 05/12] Try updating vcpkg --- vcpkg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vcpkg b/vcpkg index 7a6f366c..ff686737 160000 --- a/vcpkg +++ b/vcpkg @@ -1 +1 @@ -Subproject commit 7a6f366cefd27210f6a8309aed10c31104436509 +Subproject commit ff6867374598312866fecfc64736a334591ceace From 27bfbf5ba03567a1e46835778b759a8bc70a4a9a Mon Sep 17 00:00:00 2001 From: Richard Barnes Date: Wed, 13 Dec 2023 15:55:06 -0500 Subject: [PATCH 06/12] Further simplify build --- lib/CMakeLists.txt | 2 +- lib/tls_syntax/test/CMakeLists.txt | 6 ++++-- lib/tls_syntax/test/tls_syntax.cpp | 16 +++++++++++++++- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index aabf4fa8..fc6dd0cf 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -1,4 +1,4 @@ -add_subdirectory(bytes) +# add_subdirectory(bytes) # add_subdirectory(hpke) add_subdirectory(tls_syntax) # add_subdirectory(mls_vectors) diff --git a/lib/tls_syntax/test/CMakeLists.txt b/lib/tls_syntax/test/CMakeLists.txt index c8b47632..a7255750 100644 --- a/lib/tls_syntax/test/CMakeLists.txt +++ b/lib/tls_syntax/test/CMakeLists.txt @@ -7,8 +7,10 @@ find_package(doctest REQUIRED) file(GLOB TEST_SOURCES CONFIGURE_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp) add_executable(${TEST_APP_NAME} ${TEST_SOURCES}) -add_dependencies(${TEST_APP_NAME} ${CURRENT_LIB_NAME} bytes) -target_link_libraries(${TEST_APP_NAME} ${CURRENT_LIB_NAME} bytes doctest::doctest) +add_dependencies(${TEST_APP_NAME} ${CURRENT_LIB_NAME}) +target_link_libraries(${TEST_APP_NAME} ${CURRENT_LIB_NAME} doctest::doctest) +# add_dependencies(${TEST_APP_NAME} ${CURRENT_LIB_NAME} bytes) +# target_link_libraries(${TEST_APP_NAME} ${CURRENT_LIB_NAME} bytes doctest::doctest) # Enable CTest include(doctest) diff --git a/lib/tls_syntax/test/tls_syntax.cpp b/lib/tls_syntax/test/tls_syntax.cpp index 3a6e68d6..6dfb1e9c 100644 --- a/lib/tls_syntax/test/tls_syntax.cpp +++ b/lib/tls_syntax/test/tls_syntax.cpp @@ -1,9 +1,11 @@ -#include +// #include #include #include #include +#if 0 using namespace MLS_NAMESPACE::bytes_ns; +#endif // 0 // An enum to test enum encoding, and as a type for variants enum struct IntType : uint16_t @@ -42,16 +44,19 @@ struct ExampleStruct MLS_NAMESPACE::tls::varint) }; +#if 0 static bool operator==(const ExampleStruct& lhs, const ExampleStruct& rhs) { return (lhs.a == rhs.a) && (lhs.b == rhs.b) && (lhs.c == rhs.c); } +#endif // Known-answer tests class TLSSyntaxTest { protected: +#if 0 const bool val_bool = true; const bytes enc_bool = from_hex("01"); @@ -94,6 +99,7 @@ class TLSSyntaxTest const IntType val_enum = IntType::uint8; const bytes enc_enum = from_hex("aaaa"); +#endif // 0 }; template @@ -108,6 +114,7 @@ ostream_test(T val, const std::vector& enc) TEST_CASE_FIXTURE(TLSSyntaxTest, "TLS ostream") { +#if 0 bytes answer{ 1, 2, 3, 4 }; MLS_NAMESPACE::tls::ostream w; w.write_raw(answer); @@ -124,6 +131,7 @@ TEST_CASE_FIXTURE(TLSSyntaxTest, "TLS ostream") ostream_test(val_optional, enc_optional); ostream_test(val_optional_null, enc_optional_null); ostream_test(val_enum, enc_enum); +#endif // 0 } template @@ -138,6 +146,7 @@ istream_test(T val, T& data, const std::vector& enc) TEST_CASE_FIXTURE(TLSSyntaxTest, "TLS istream") { +#if 0 bool data_bool = false; istream_test(val_bool, data_bool, enc_bool); @@ -170,10 +179,12 @@ TEST_CASE_FIXTURE(TLSSyntaxTest, "TLS istream") IntType data_enum = IntType::uint16; istream_test(val_enum, data_enum, enc_enum); +#endif // 0 } TEST_CASE_FIXTURE(TLSSyntaxTest, "TLS abbreviations") { +#if 0 ExampleStruct val_in = val_struct; MLS_NAMESPACE::tls::ostream w; @@ -188,10 +199,12 @@ TEST_CASE_FIXTURE(TLSSyntaxTest, "TLS abbreviations") auto val_out2 = MLS_NAMESPACE::tls::get(marshaled); REQUIRE(val_in == val_out2); +#endif // 0 } TEST_CASE("TLS varint failure cases") { +#if 0 // Encoding a value that is to large MLS_NAMESPACE::tls::ostream w; // NOLINTNEXTLINE(llvm-else-after-return, readability-else-after-return) @@ -209,6 +222,7 @@ TEST_CASE("TLS varint failure cases") // NOLINTNEXTLINE(llvm-else-after-return, readability-else-after-return) REQUIRE_THROWS(MLS_NAMESPACE::tls::varint::decode(r, val)); } +#endif // 0 } // TODO(rlb@ipv.sx) Test failure cases From 8ddae265b1847cddf7bd515bac02932333e5804f Mon Sep 17 00:00:00 2001 From: Richard Barnes Date: Wed, 13 Dec 2023 16:05:18 -0500 Subject: [PATCH 07/12] Remove third-party lib --- lib/tls_syntax/CMakeLists.txt | 4 ++-- lib/tls_syntax/include/tls/compat.h | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/tls_syntax/CMakeLists.txt b/lib/tls_syntax/CMakeLists.txt index 4d98912e..cb911d58 100644 --- a/lib/tls_syntax/CMakeLists.txt +++ b/lib/tls_syntax/CMakeLists.txt @@ -8,8 +8,8 @@ file(GLOB_RECURSE LIB_HEADERS CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/inc file(GLOB_RECURSE LIB_SOURCES CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp") add_library(${CURRENT_LIB_NAME} ${LIB_HEADERS} ${LIB_SOURCES}) -add_dependencies(${CURRENT_LIB_NAME} third_party) -target_link_libraries(${CURRENT_LIB_NAME} PUBLIC third_party) +# add_dependencies(${CURRENT_LIB_NAME} third_party) +# target_link_libraries(${CURRENT_LIB_NAME} PUBLIC third_party) target_include_directories(${CURRENT_LIB_NAME} PUBLIC $ diff --git a/lib/tls_syntax/include/tls/compat.h b/lib/tls_syntax/include/tls/compat.h index 6c78683a..8cf2b3a4 100644 --- a/lib/tls_syntax/include/tls/compat.h +++ b/lib/tls_syntax/include/tls/compat.h @@ -3,11 +3,11 @@ #include #include -#ifdef VARIANT_COMPAT -#include -#else +//#ifdef VARIANT_COMPAT +//#include +//#else #include -#endif // VARIANT_COMPAT +//#endif // VARIANT_COMPAT #include namespace MLS_NAMESPACE::tls { From 855b313ba2c3d4d47a3ea8be4453250a2990f5ef Mon Sep 17 00:00:00 2001 From: Richard Barnes Date: Wed, 13 Dec 2023 16:11:35 -0500 Subject: [PATCH 08/12] Turn off sanitizers --- .github/workflows/main_ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main_ci.yml b/.github/workflows/main_ci.yml index a31fe7c6..b7f131a9 100644 --- a/.github/workflows/main_ci.yml +++ b/.github/workflows/main_ci.yml @@ -57,7 +57,7 @@ jobs: run: | # XXX(RLB): If we do not have SANITIZERS=ON here, the Windows CI builds # hang in the middle of unit testing. - cmake -B "${{ env.BUILD_DIR }}" -DVCPKG_MANIFEST_DIR="${{ env.CRYPTO_DIR }}" -DTESTING=ON -DSANITIZERS=ON + cmake -B "${{ env.BUILD_DIR }}" -DVCPKG_MANIFEST_DIR="${{ env.CRYPTO_DIR }}" -DTESTING=ON cmake --build "${{ env.BUILD_DIR }}" - name: Unit Test (non-Windows) From be4310cf7fe6236faa9a63f41f2393cf955fca98 Mon Sep 17 00:00:00 2001 From: Richard Barnes Date: Wed, 13 Dec 2023 16:26:13 -0500 Subject: [PATCH 09/12] Begin reverting changes --- lib/bytes/test/CMakeLists.txt | 3 +-- lib/tls_syntax/CMakeLists.txt | 4 ++-- lib/tls_syntax/include/tls/compat.h | 8 ++++---- lib/tls_syntax/test/CMakeLists.txt | 6 ++---- lib/tls_syntax/test/tls_syntax.cpp | 16 +--------------- 5 files changed, 10 insertions(+), 27 deletions(-) diff --git a/lib/bytes/test/CMakeLists.txt b/lib/bytes/test/CMakeLists.txt index 894450fe..c9a78092 100644 --- a/lib/bytes/test/CMakeLists.txt +++ b/lib/bytes/test/CMakeLists.txt @@ -8,8 +8,7 @@ file(GLOB TEST_SOURCES CONFIGURE_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp) add_executable(${TEST_APP_NAME} ${TEST_SOURCES}) add_dependencies(${TEST_APP_NAME} ${CURRENT_LIB_NAME}) -target_link_libraries(${TEST_APP_NAME} ${CURRENT_LIB_NAME} - tls_syntax doctest::doctest) +target_link_libraries(${TEST_APP_NAME} ${CURRENT_LIB_NAME} doctest::doctest) # Enable CTest include(doctest) diff --git a/lib/tls_syntax/CMakeLists.txt b/lib/tls_syntax/CMakeLists.txt index cb911d58..4d98912e 100644 --- a/lib/tls_syntax/CMakeLists.txt +++ b/lib/tls_syntax/CMakeLists.txt @@ -8,8 +8,8 @@ file(GLOB_RECURSE LIB_HEADERS CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/inc file(GLOB_RECURSE LIB_SOURCES CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp") add_library(${CURRENT_LIB_NAME} ${LIB_HEADERS} ${LIB_SOURCES}) -# add_dependencies(${CURRENT_LIB_NAME} third_party) -# target_link_libraries(${CURRENT_LIB_NAME} PUBLIC third_party) +add_dependencies(${CURRENT_LIB_NAME} third_party) +target_link_libraries(${CURRENT_LIB_NAME} PUBLIC third_party) target_include_directories(${CURRENT_LIB_NAME} PUBLIC $ diff --git a/lib/tls_syntax/include/tls/compat.h b/lib/tls_syntax/include/tls/compat.h index 8cf2b3a4..6c78683a 100644 --- a/lib/tls_syntax/include/tls/compat.h +++ b/lib/tls_syntax/include/tls/compat.h @@ -3,11 +3,11 @@ #include #include -//#ifdef VARIANT_COMPAT -//#include -//#else +#ifdef VARIANT_COMPAT +#include +#else #include -//#endif // VARIANT_COMPAT +#endif // VARIANT_COMPAT #include namespace MLS_NAMESPACE::tls { diff --git a/lib/tls_syntax/test/CMakeLists.txt b/lib/tls_syntax/test/CMakeLists.txt index a7255750..c8b47632 100644 --- a/lib/tls_syntax/test/CMakeLists.txt +++ b/lib/tls_syntax/test/CMakeLists.txt @@ -7,10 +7,8 @@ find_package(doctest REQUIRED) file(GLOB TEST_SOURCES CONFIGURE_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp) add_executable(${TEST_APP_NAME} ${TEST_SOURCES}) -add_dependencies(${TEST_APP_NAME} ${CURRENT_LIB_NAME}) -target_link_libraries(${TEST_APP_NAME} ${CURRENT_LIB_NAME} doctest::doctest) -# add_dependencies(${TEST_APP_NAME} ${CURRENT_LIB_NAME} bytes) -# target_link_libraries(${TEST_APP_NAME} ${CURRENT_LIB_NAME} bytes doctest::doctest) +add_dependencies(${TEST_APP_NAME} ${CURRENT_LIB_NAME} bytes) +target_link_libraries(${TEST_APP_NAME} ${CURRENT_LIB_NAME} bytes doctest::doctest) # Enable CTest include(doctest) diff --git a/lib/tls_syntax/test/tls_syntax.cpp b/lib/tls_syntax/test/tls_syntax.cpp index 6dfb1e9c..3a6e68d6 100644 --- a/lib/tls_syntax/test/tls_syntax.cpp +++ b/lib/tls_syntax/test/tls_syntax.cpp @@ -1,11 +1,9 @@ -// #include +#include #include #include #include -#if 0 using namespace MLS_NAMESPACE::bytes_ns; -#endif // 0 // An enum to test enum encoding, and as a type for variants enum struct IntType : uint16_t @@ -44,19 +42,16 @@ struct ExampleStruct MLS_NAMESPACE::tls::varint) }; -#if 0 static bool operator==(const ExampleStruct& lhs, const ExampleStruct& rhs) { return (lhs.a == rhs.a) && (lhs.b == rhs.b) && (lhs.c == rhs.c); } -#endif // Known-answer tests class TLSSyntaxTest { protected: -#if 0 const bool val_bool = true; const bytes enc_bool = from_hex("01"); @@ -99,7 +94,6 @@ class TLSSyntaxTest const IntType val_enum = IntType::uint8; const bytes enc_enum = from_hex("aaaa"); -#endif // 0 }; template @@ -114,7 +108,6 @@ ostream_test(T val, const std::vector& enc) TEST_CASE_FIXTURE(TLSSyntaxTest, "TLS ostream") { -#if 0 bytes answer{ 1, 2, 3, 4 }; MLS_NAMESPACE::tls::ostream w; w.write_raw(answer); @@ -131,7 +124,6 @@ TEST_CASE_FIXTURE(TLSSyntaxTest, "TLS ostream") ostream_test(val_optional, enc_optional); ostream_test(val_optional_null, enc_optional_null); ostream_test(val_enum, enc_enum); -#endif // 0 } template @@ -146,7 +138,6 @@ istream_test(T val, T& data, const std::vector& enc) TEST_CASE_FIXTURE(TLSSyntaxTest, "TLS istream") { -#if 0 bool data_bool = false; istream_test(val_bool, data_bool, enc_bool); @@ -179,12 +170,10 @@ TEST_CASE_FIXTURE(TLSSyntaxTest, "TLS istream") IntType data_enum = IntType::uint16; istream_test(val_enum, data_enum, enc_enum); -#endif // 0 } TEST_CASE_FIXTURE(TLSSyntaxTest, "TLS abbreviations") { -#if 0 ExampleStruct val_in = val_struct; MLS_NAMESPACE::tls::ostream w; @@ -199,12 +188,10 @@ TEST_CASE_FIXTURE(TLSSyntaxTest, "TLS abbreviations") auto val_out2 = MLS_NAMESPACE::tls::get(marshaled); REQUIRE(val_in == val_out2); -#endif // 0 } TEST_CASE("TLS varint failure cases") { -#if 0 // Encoding a value that is to large MLS_NAMESPACE::tls::ostream w; // NOLINTNEXTLINE(llvm-else-after-return, readability-else-after-return) @@ -222,7 +209,6 @@ TEST_CASE("TLS varint failure cases") // NOLINTNEXTLINE(llvm-else-after-return, readability-else-after-return) REQUIRE_THROWS(MLS_NAMESPACE::tls::varint::decode(r, val)); } -#endif // 0 } // TODO(rlb@ipv.sx) Test failure cases From 0e6d7082bfcc0b0d9495c4aab004eb1d109c2c13 Mon Sep 17 00:00:00 2001 From: Richard Barnes Date: Wed, 13 Dec 2023 16:27:25 -0500 Subject: [PATCH 10/12] Fix build errors --- lib/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index fc6dd0cf..aabf4fa8 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -1,4 +1,4 @@ -# add_subdirectory(bytes) +add_subdirectory(bytes) # add_subdirectory(hpke) add_subdirectory(tls_syntax) # add_subdirectory(mls_vectors) From f3c8c6a2624816fb8d73876d95f7b8ac2f32a3d0 Mon Sep 17 00:00:00 2001 From: Richard Barnes Date: Wed, 13 Dec 2023 16:34:36 -0500 Subject: [PATCH 11/12] Revert remaining build / code changes --- CMakeLists.txt | 173 ++++++++++++++-------------- lib/CMakeLists.txt | 4 +- lib/mls_vectors/test/CMakeLists.txt | 2 +- src/common.cpp | 2 - test/CMakeLists.txt | 4 +- 5 files changed, 91 insertions(+), 94 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9dba75c0..8875b9fb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -137,90 +137,91 @@ add_subdirectory(lib) # Third-Party libraries in tree add_subdirectory(third_party) -# ### -# ### Library Config -# ### -# -# set(LIB_NAME "${PROJECT_NAME}") -# -# file(GLOB_RECURSE LIB_HEADERS CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/include/*.h") -# file(GLOB_RECURSE LIB_SOURCES CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp") -# -# add_library(${LIB_NAME} ${LIB_HEADERS} ${LIB_SOURCES}) -# add_dependencies(${LIB_NAME} bytes tls_syntax hpke) -# target_link_libraries(${LIB_NAME} bytes tls_syntax hpke) -# target_include_directories(${LIB_NAME} -# PUBLIC -# $ -# $ -# PRIVATE -# ${OPENSSL_INCLUDE_DIR} -# ) -# -# install(TARGETS ${LIB_NAME} EXPORT mlspp-targets) -# -# ### -# ### Tests -# ### -# if(TESTING) -# add_subdirectory(test) -# endif() -# -# ### -# ### Exports -# ### -# set(CMAKE_EXPORT_PACKAGE_REGISTRY ON) -# export( -# EXPORT -# mlspp-targets -# NAMESPACE -# ${MLS_EXPORT_NAMESPACE}:: -# FILE -# ${MLS_EXPORT_NAMESPACE}Targets.cmake) -# export(PACKAGE ${MLS_EXPORT_NAMESPACE}) -# -# configure_package_config_file(cmake/config.cmake.in -# ${CMAKE_CURRENT_BINARY_DIR}/${MLS_EXPORT_NAMESPACE}Config.cmake -# INSTALL_DESTINATION ${CMAKE_INSTALL_DATADIR}/${MLS_EXPORT_NAMESPACE} -# NO_SET_AND_CHECK_MACRO) -# -# write_basic_package_version_file( -# ${CMAKE_CURRENT_BINARY_DIR}/${MLS_EXPORT_NAMESPACE}ConfigVersion.cmake -# VERSION ${PROJECT_VERSION} -# COMPATIBILITY SameMajorVersion) -# -# ### -# ### Install -# ### -# -# install( -# EXPORT -# mlspp-targets -# NAMESPACE -# ${MLS_EXPORT_NAMESPACE}:: -# FILE -# ${MLS_EXPORT_NAMESPACE}Targets.cmake -# DESTINATION -# ${CMAKE_INSTALL_DATADIR}/${MLS_EXPORT_NAMESPACE}) -# -# install( -# DIRECTORY -# include/ -# DESTINATION -# ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}) -# -# install( -# FILES -# ${CMAKE_CURRENT_BINARY_DIR}/${MLS_EXPORT_NAMESPACE}Config.cmake -# ${CMAKE_CURRENT_BINARY_DIR}/${MLS_EXPORT_NAMESPACE}ConfigVersion.cmake -# DESTINATION -# ${CMAKE_INSTALL_DATADIR}/${MLS_EXPORT_NAMESPACE}) -# -# install( -# FILES -# ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE -# DESTINATION -# ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME} -# RENAME -# copyright) + +### +### Library Config +### + +set(LIB_NAME "${PROJECT_NAME}") + +file(GLOB_RECURSE LIB_HEADERS CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/include/*.h") +file(GLOB_RECURSE LIB_SOURCES CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp") + +add_library(${LIB_NAME} ${LIB_HEADERS} ${LIB_SOURCES}) +add_dependencies(${LIB_NAME} bytes tls_syntax hpke) +target_link_libraries(${LIB_NAME} bytes tls_syntax hpke) +target_include_directories(${LIB_NAME} + PUBLIC + $ + $ + PRIVATE + ${OPENSSL_INCLUDE_DIR} +) + +install(TARGETS ${LIB_NAME} EXPORT mlspp-targets) + +### +### Tests +### +if(TESTING) + add_subdirectory(test) +endif() + +### +### Exports +### +set(CMAKE_EXPORT_PACKAGE_REGISTRY ON) +export( + EXPORT + mlspp-targets + NAMESPACE + ${MLS_EXPORT_NAMESPACE}:: + FILE + ${MLS_EXPORT_NAMESPACE}Targets.cmake) +export(PACKAGE ${MLS_EXPORT_NAMESPACE}) + +configure_package_config_file(cmake/config.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/${MLS_EXPORT_NAMESPACE}Config.cmake + INSTALL_DESTINATION ${CMAKE_INSTALL_DATADIR}/${MLS_EXPORT_NAMESPACE} + NO_SET_AND_CHECK_MACRO) + +write_basic_package_version_file( + ${CMAKE_CURRENT_BINARY_DIR}/${MLS_EXPORT_NAMESPACE}ConfigVersion.cmake + VERSION ${PROJECT_VERSION} + COMPATIBILITY SameMajorVersion) + +### +### Install +### + +install( + EXPORT + mlspp-targets + NAMESPACE + ${MLS_EXPORT_NAMESPACE}:: + FILE + ${MLS_EXPORT_NAMESPACE}Targets.cmake + DESTINATION + ${CMAKE_INSTALL_DATADIR}/${MLS_EXPORT_NAMESPACE}) + +install( + DIRECTORY + include/ + DESTINATION + ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}) + +install( + FILES + ${CMAKE_CURRENT_BINARY_DIR}/${MLS_EXPORT_NAMESPACE}Config.cmake + ${CMAKE_CURRENT_BINARY_DIR}/${MLS_EXPORT_NAMESPACE}ConfigVersion.cmake + DESTINATION + ${CMAKE_INSTALL_DATADIR}/${MLS_EXPORT_NAMESPACE}) + +install( + FILES + ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE + DESTINATION + ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME} + RENAME + copyright) diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index aabf4fa8..31f9546e 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -1,4 +1,4 @@ add_subdirectory(bytes) -# add_subdirectory(hpke) +add_subdirectory(hpke) add_subdirectory(tls_syntax) -# add_subdirectory(mls_vectors) +add_subdirectory(mls_vectors) diff --git a/lib/mls_vectors/test/CMakeLists.txt b/lib/mls_vectors/test/CMakeLists.txt index 360f03aa..6256ddbf 100644 --- a/lib/mls_vectors/test/CMakeLists.txt +++ b/lib/mls_vectors/test/CMakeLists.txt @@ -8,7 +8,7 @@ file(GLOB TEST_SOURCES CONFIGURE_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp) add_executable(${TEST_APP_NAME} ${TEST_SOURCES}) add_dependencies(${TEST_APP_NAME} ${CURRENT_LIB_NAME} bytes tls_syntax) -target_link_libraries(${TEST_APP_NAME} ${CURRENT_LIB_NAME} bytes tls_syntax doctest::doctest) +target_link_libraries(${TEST_APP_NAME} ${CURRENT_LIB_NAME} doctest::doctest) # Enable CTest include(doctest) diff --git a/src/common.cpp b/src/common.cpp index 0a0eb59e..c0185aa5 100644 --- a/src/common.cpp +++ b/src/common.cpp @@ -3,8 +3,6 @@ namespace MLS_NAMESPACE { -// XXX BOGUS COMMENT - uint64_t seconds_since_epoch() { diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 0bdb081e..5a9b5d18 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -9,9 +9,7 @@ file(GLOB TEST_SOURCES CONFIGURE_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp) add_executable(${TEST_APP_NAME} ${TEST_SOURCES}) add_dependencies(${TEST_APP_NAME} ${LIB_NAME} bytes tls_syntax mls_vectors) target_include_directories(${TEST_APP_NAME} PRIVATE ${PROJECT_SOURCE_DIR}/src) -target_link_libraries(${TEST_APP_NAME} ${LIB_NAME} - bytes tls_syntax mls_vectors mls_vectors - doctest::doctest OpenSSL::Crypto) +target_link_libraries(${TEST_APP_NAME} mls_vectors doctest::doctest) # Enable CTest include(doctest) From 13df79c2418745a57ac1ab03ecdb18c87a0fdac8 Mon Sep 17 00:00:00 2001 From: Richard Barnes Date: Wed, 13 Dec 2023 16:38:16 -0500 Subject: [PATCH 12/12] Revert remaining changes --- .github/workflows/main_ci.yml | 2 -- vcpkg | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/main_ci.yml b/.github/workflows/main_ci.yml index b7f131a9..f773faaa 100644 --- a/.github/workflows/main_ci.yml +++ b/.github/workflows/main_ci.yml @@ -55,8 +55,6 @@ jobs: - name: Build run: | - # XXX(RLB): If we do not have SANITIZERS=ON here, the Windows CI builds - # hang in the middle of unit testing. cmake -B "${{ env.BUILD_DIR }}" -DVCPKG_MANIFEST_DIR="${{ env.CRYPTO_DIR }}" -DTESTING=ON cmake --build "${{ env.BUILD_DIR }}" diff --git a/vcpkg b/vcpkg index ff686737..7a6f366c 160000 --- a/vcpkg +++ b/vcpkg @@ -1 +1 @@ -Subproject commit ff6867374598312866fecfc64736a334591ceace +Subproject commit 7a6f366cefd27210f6a8309aed10c31104436509