updated build system
Some checks failed
BlockStorage/repertory/pipeline/head There was a failure building this commit

This commit is contained in:
Scott E. Graves 2024-08-02 17:18:09 -05:00
parent e7b576bc45
commit dd492ff52d
5 changed files with 45 additions and 6 deletions

View File

@ -35,6 +35,7 @@ inline constexpr const std::uint32_t encryption_header_size{
crypto_aead_xchacha20poly1305_IETF_ABYTES, crypto_aead_xchacha20poly1305_IETF_ABYTES,
}; };
#if defined(PROJECT_ENABLE_BOOST)
[[nodiscard]] auto decrypt_data( [[nodiscard]] auto decrypt_data(
std::string_view data, std::string_view password, std::string_view data, std::string_view password,
std::optional<hash_256_func_t> hasher = std::nullopt) -> data_buffer; std::optional<hash_256_func_t> hasher = std::nullopt) -> data_buffer;
@ -43,9 +44,6 @@ inline constexpr const std::uint32_t encryption_header_size{
std::string_view data, std::string_view password, std::string_view data, std::string_view password,
std::optional<hash_256_func_t> hasher = std::nullopt) -> data_buffer; std::optional<hash_256_func_t> hasher = std::nullopt) -> data_buffer;
[[nodiscard]] auto generate_key(std::string_view encryption_token) -> key_type;
#if defined(PROJECT_ENABLE_BOOST)
template <typename result> template <typename result>
[[nodiscard]] inline auto [[nodiscard]] inline auto
decrypt_data(const key_type &key, const unsigned char *buffer, decrypt_data(const key_type &key, const unsigned char *buffer,
@ -154,6 +152,8 @@ encrypt_data(const std::array<unsigned char,
buf.size(), res); buf.size(), res);
} }
#endif // defined(PROJECT_ENABLE_BOOST) #endif // defined(PROJECT_ENABLE_BOOST)
[[nodiscard]] auto generate_key(std::string_view encryption_token) -> key_type;
} // namespace repertory::utils::encryption } // namespace repertory::utils::encryption
#endif // defined(PROJECT_ENABLE_LIBSODIUM) #endif // defined(PROJECT_ENABLE_LIBSODIUM)

View File

@ -241,6 +241,7 @@ template <typename string_t>
&paths) -> string_t { &paths) -> string_t {
format_path(path, get_directory_seperator<typename string_t::value_type>(), format_path(path, get_directory_seperator<typename string_t::value_type>(),
get_not_directory_seperator<typename string_t::value_type>()); get_not_directory_seperator<typename string_t::value_type>());
return absolute(std::accumulate( return absolute(std::accumulate(
paths.begin(), paths.end(), path, [](auto next_path, auto &&path_part) { paths.begin(), paths.end(), path, [](auto next_path, auto &&path_part) {
if (next_path.empty()) { if (next_path.empty()) {

View File

@ -323,7 +323,7 @@ template <typename string_t>
inline auto replace(string_t &src, typename string_t::value_type character, inline auto replace(string_t &src, typename string_t::value_type character,
typename string_t::value_type with, typename string_t::value_type with,
std::size_t start_pos) -> string_t & { std::size_t start_pos) -> string_t & {
if (not src.empty() && (start_pos < src.size())) { if (start_pos < src.size()) {
std::replace(std::next(src.begin(), start_pos), src.end(), character, with); std::replace(std::next(src.begin(), start_pos), src.end(), character, with);
} }
@ -335,12 +335,13 @@ inline auto replace(string_t &src,
std::basic_string_view<typename string_t::value_type> find, std::basic_string_view<typename string_t::value_type> find,
std::basic_string_view<typename string_t::value_type> with, std::basic_string_view<typename string_t::value_type> with,
std::size_t start_pos) -> string_t & { std::size_t start_pos) -> string_t & {
if (not src.empty() && (start_pos < src.size())) { if (start_pos < src.size()) {
while ((start_pos = src.find(find, start_pos)) != string_t::npos) { while ((start_pos = src.find(find, start_pos)) != string_t::npos) {
src.replace(start_pos, find.size(), with); src.replace(start_pos, find.size(), with);
start_pos += with.size(); start_pos += with.size();
} }
} }
return src; return src;
} }

View File

@ -22,7 +22,6 @@
#include "utils/encryption.hpp" #include "utils/encryption.hpp"
#if defined(PROJECT_ENABLE_LIBSODIUM) #if defined(PROJECT_ENABLE_LIBSODIUM)
namespace { namespace {
using nonce_t = using nonce_t =
std::array<unsigned char, crypto_aead_xchacha20poly1305_ietf_NPUBBYTES>; std::array<unsigned char, crypto_aead_xchacha20poly1305_ietf_NPUBBYTES>;
@ -45,6 +44,7 @@ static constexpr const auto nonce_size{sizeof(nonce_t)};
} // namespace } // namespace
namespace repertory::utils::encryption { namespace repertory::utils::encryption {
#if defined(PROJECT_ENABLE_BOOST)
auto decrypt_data(std::string_view data, std::string_view password, auto decrypt_data(std::string_view data, std::string_view password,
std::optional<hash_256_func_t> hasher) -> data_buffer { std::optional<hash_256_func_t> hasher) -> data_buffer {
auto key = auto key =
@ -71,6 +71,7 @@ auto encrypt_data(std::string_view data, std::string_view password,
return buf; return buf;
} }
#endif // defined(PROJECT_ENABLE_BOOST)
auto generate_key(std::string_view encryption_token) -> key_type { auto generate_key(std::string_view encryption_token) -> key_type {
crypto_hash_sha256_state state{}; crypto_hash_sha256_state state{};

View File

@ -22,6 +22,7 @@
#include "gtest/gtest.h" #include "gtest/gtest.h"
#include "utils/path.hpp" #include "utils/path.hpp"
#include "utils/string.hpp"
namespace repertory { namespace repertory {
TEST(utils_path, constants) { TEST(utils_path, constants) {
@ -39,16 +40,41 @@ TEST(utils_path, directory_seperator) {
#if defined(_WIN32) #if defined(_WIN32)
EXPECT_EQ(utils::path::backslash, utils::path::directory_seperator); EXPECT_EQ(utils::path::backslash, utils::path::directory_seperator);
EXPECT_EQ(utils::path::backslash_w, utils::path::directory_seperator_w); EXPECT_EQ(utils::path::backslash_w, utils::path::directory_seperator_w);
EXPECT_EQ(utils::path::slash, utils::path::not_directory_seperator); EXPECT_EQ(utils::path::slash, utils::path::not_directory_seperator);
EXPECT_EQ(utils::path::slash_w, utils::path::not_directory_seperator_w); EXPECT_EQ(utils::path::slash_w, utils::path::not_directory_seperator_w);
#else // !defined(_WIN32) #else // !defined(_WIN32)
EXPECT_EQ(utils::path::slash, utils::path::directory_seperator); EXPECT_EQ(utils::path::slash, utils::path::directory_seperator);
EXPECT_EQ(utils::path::slash_w, utils::path::directory_seperator_w); EXPECT_EQ(utils::path::slash_w, utils::path::directory_seperator_w);
EXPECT_EQ(utils::path::backslash, utils::path::not_directory_seperator); EXPECT_EQ(utils::path::backslash, utils::path::not_directory_seperator);
EXPECT_EQ(utils::path::backslash_w, utils::path::not_directory_seperator_w); EXPECT_EQ(utils::path::backslash_w, utils::path::not_directory_seperator_w);
#endif // defined(_WIN32) #endif // defined(_WIN32)
} }
TEST(utils_path, get_directory_seperator) {
#if defined(_WIN32)
EXPECT_EQ(utils::path::backslash,
utils::path::get_directory_seperator<char>());
EXPECT_EQ(utils::path::backslash_w,
utils::path::get_directory_seperator<wchar_t>());
EXPECT_EQ(utils::path::slash,
utils::path::get_not_directory_seperator<char>());
EXPECT_EQ(utils::path::slash_w,
utils::path::get_not_directory_seperator<wchar_t>());
#else // !defined(_WIN32)
EXPECT_EQ(utils::path::slash, utils::path::get_directory_seperator<char>());
EXPECT_EQ(utils::path::slash_w,
utils::path::get_directory_seperator<wchar_t>());
EXPECT_EQ(utils::path::backslash,
utils::path::get_not_directory_seperator<char>());
EXPECT_EQ(utils::path::backslash_w,
utils::path::get_not_directory_seperator<wchar_t>());
#endif // defined(_WIN32)
}
TEST(utils_path, get_backslash) { TEST(utils_path, get_backslash) {
EXPECT_EQ(utils::path::backslash, utils::path::get_backslash<char>()); EXPECT_EQ(utils::path::backslash, utils::path::get_backslash<char>());
EXPECT_EQ(utils::path::backslash_w, utils::path::get_backslash<wchar_t>()); EXPECT_EQ(utils::path::backslash_w, utils::path::get_backslash<wchar_t>());
@ -59,6 +85,16 @@ TEST(utils_path, get_dot) {
EXPECT_EQ(utils::path::dot_w, utils::path::get_dot<wchar_t>()); EXPECT_EQ(utils::path::dot_w, utils::path::get_dot<wchar_t>());
} }
TEST(utils_path, get_dot_slash) {
EXPECT_EQ(utils::path::dot_slash, utils::path::get_dot_slash<char>());
EXPECT_EQ(utils::path::dot_slash_w, utils::path::get_dot_slash<wchar_t>());
}
TEST(utils_path, get_slash) {
EXPECT_EQ(utils::path::slash, utils::path::get_slash<char>());
EXPECT_EQ(utils::path::slash_w, utils::path::get_slash<wchar_t>());
}
TEST(utils_path, combine) { TEST(utils_path, combine) {
auto s = utils::path::combine(R"(\test\path)", {}); auto s = utils::path::combine(R"(\test\path)", {});