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

This commit is contained in:
2024-08-05 19:38:13 -05:00
parent 760a1e4322
commit dca0752189
13 changed files with 910 additions and 337 deletions

View File

@ -19,7 +19,7 @@
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
#if defined(PROJECT_ENABLE_LIBSODIUM) && defined(PROJECT_ENABLE_BOOST)
#if defined(PROJECT_ENABLE_LIBSODIUM)
#include "gtest/gtest.h"
@ -27,8 +27,117 @@
#include "utils/encryption.hpp"
namespace repertory {
static const std::string token{"moose"};
static const std::wstring token_w{L"moose"};
TEST(utils_encryption, generate_key) {
auto key1 =
utils::encryption::generate_key<utils::encryption::hash_256_t>(token);
EXPECT_STREQ(
"182072537ada59e4d6b18034a80302ebae935f66adbdf0f271d3d36309c2d481",
utils::collection::to_hex_string(key1).c_str());
auto key2 =
utils::encryption::generate_key<utils::encryption::hash_256_t>("moose");
auto key3 =
utils::encryption::generate_key<utils::encryption::hash_256_t>("moose");
EXPECT_EQ(key2, key3);
auto key4 =
utils::encryption::generate_key<utils::encryption::hash_256_t>("moose2");
EXPECT_NE(key2, key4);
auto key1_w =
utils::encryption::generate_key<utils::encryption::hash_256_t>(token_w);
EXPECT_NE(key1, key1_w);
EXPECT_STREQ(
L"590ac70125bec4501172937f6a2cbdeb22a87b5e40d5595eccd06b2b20548d8f",
utils::collection::to_hex_wstring(key1_w).c_str());
auto key2_w =
utils::encryption::generate_key<utils::encryption::hash_256_t>(L"moose");
auto key3_w =
utils::encryption::generate_key<utils::encryption::hash_256_t>(L"moose");
EXPECT_EQ(key2_w, key3_w);
EXPECT_NE(key2_w, key2);
EXPECT_NE(key3_w, key3);
auto key4_w =
utils::encryption::generate_key<utils::encryption::hash_256_t>(L"moose2");
EXPECT_NE(key2_w, key4_w);
EXPECT_NE(key4_w, key4);
}
TEST(utils_encryption, generate_key_default_hasher_is_sha256) {
auto key1 =
utils::encryption::generate_key<utils::encryption::hash_256_t>(token);
auto key2 = utils::encryption::generate_key<utils::encryption::hash_256_t>(
token, [](auto &&data, auto &&size) -> auto {
return utils::encryption::create_hash_sha256(
std::string_view(reinterpret_cast<const char *>(data), size));
});
EXPECT_EQ(key1, key2);
auto key1_w =
utils::encryption::generate_key<utils::encryption::hash_256_t>(token_w);
auto key2_w = utils::encryption::generate_key<utils::encryption::hash_256_t>(
token_w, [](auto &&data, auto &&size) -> auto {
return utils::encryption::create_hash_sha256(std::wstring_view(
reinterpret_cast<const wchar_t *>(data), size / sizeof(wchar_t)));
});
EXPECT_EQ(key1_w, key2_w);
EXPECT_NE(key1_w, key1);
EXPECT_NE(key2_w, key2);
}
TEST(utils_encryption, generate_key_with_hasher) {
auto key1 = utils::encryption::generate_key<utils::encryption::hash_256_t>(
token, [](auto &&data, auto &&size) -> auto {
return utils::encryption::create_hash_sha256(
std::string_view(reinterpret_cast<const char *>(data), size));
});
EXPECT_STREQ(
"182072537ada59e4d6b18034a80302ebae935f66adbdf0f271d3d36309c2d481",
utils::collection::to_hex_string(key1).c_str());
auto key2 = utils::encryption::generate_key<utils::encryption::hash_256_t>(
token, [](auto &&data, auto &&size) -> auto {
return utils::encryption::create_hash_blake2b_256(
std::string_view(reinterpret_cast<const char *>(data), size));
});
EXPECT_NE(key1, key2);
EXPECT_STREQ(
"ab4a0b004e824962913f7c0f79582b6ec7a3b8726426ca61d1a0a28ce5049e96",
utils::collection::to_hex_string(key2).c_str());
auto key1_w = utils::encryption::generate_key<utils::encryption::hash_256_t>(
token_w, [](auto &&data, auto &&size) -> auto {
return utils::encryption::create_hash_sha256(std::wstring_view(
reinterpret_cast<const wchar_t *>(data), size / sizeof(wchar_t)));
});
EXPECT_STREQ(
L"590ac70125bec4501172937f6a2cbdeb22a87b5e40d5595eccd06b2b20548d8f",
utils::collection::to_hex_wstring(key1_w).c_str());
auto key2_w = utils::encryption::generate_key<utils::encryption::hash_256_t>(
token_w, [](auto &&data, auto &&size) -> auto {
return utils::encryption::create_hash_blake2b_256(std::wstring_view(
reinterpret_cast<const wchar_t *>(data), size / sizeof(wchar_t)));
});
EXPECT_NE(key1_w, key2_w);
EXPECT_STREQ(
L"0392d95ed3eee9772fbb9af68fedf829a8eb0adbe8575d9691cc9a752196766a",
utils::collection::to_hex_wstring(key2_w).c_str());
EXPECT_NE(key1_w, key1);
EXPECT_NE(key2_w, key2);
}
#if defined(PROJECT_ENABLE_BOOST)
static const std::string buffer = "cow moose dog chicken";
static const std::string token = "moose";
static void test_encrypted_result(const data_buffer &result) {
EXPECT_EQ(buffer.size() + utils::encryption::encryption_header_size,
@ -39,14 +148,6 @@ static void test_encrypted_result(const data_buffer &result) {
EXPECT_STREQ(buffer.c_str(), data.c_str());
}
TEST(utils_encryption, generate_key) {
const auto key = utils::encryption::generate_key(token);
const auto str = utils::collection::to_hex_string(key);
EXPECT_STREQ(
"182072537ada59e4d6b18034a80302ebae935f66adbdf0f271d3d36309c2d481",
str.c_str());
}
TEST(utils_encryption, encrypt_data_buffer) {
data_buffer result;
utils::encryption::encrypt_data(token, buffer, result);
@ -54,7 +155,8 @@ TEST(utils_encryption, encrypt_data_buffer) {
}
TEST(utils_encryption, encrypt_data_buffer_with_key) {
const auto key = utils::encryption::generate_key(token);
const auto key =
utils::encryption::generate_key<utils::encryption::hash_256_t>(token);
data_buffer result;
utils::encryption::encrypt_data(key, buffer, result);
test_encrypted_result(result);
@ -69,7 +171,8 @@ TEST(utils_encryption, encrypt_data_pointer) {
}
TEST(utils_encryption, encrypt_data_pointer_with_key) {
const auto key = utils::encryption::generate_key(token);
const auto key =
utils::encryption::generate_key<utils::encryption::hash_256_t>(token);
data_buffer result;
utils::encryption::encrypt_data(
key, reinterpret_cast<const unsigned char *>(buffer.data()),
@ -78,7 +181,8 @@ TEST(utils_encryption, encrypt_data_pointer_with_key) {
}
TEST(utils_encryption, decrypt_data_pointer) {
const auto key = utils::encryption::generate_key(token);
const auto key =
utils::encryption::generate_key<utils::encryption::hash_256_t>(token);
data_buffer result;
utils::encryption::encrypt_data(
key, reinterpret_cast<const unsigned char *>(buffer.data()),
@ -93,7 +197,8 @@ TEST(utils_encryption, decrypt_data_pointer) {
}
TEST(utils_encryption, decrypt_data_buffer_with_key) {
const auto key = utils::encryption::generate_key(token);
const auto key =
utils::encryption::generate_key<utils::encryption::hash_256_t>(token);
data_buffer result;
utils::encryption::encrypt_data(
key, reinterpret_cast<const unsigned char *>(buffer.data()),
@ -107,7 +212,8 @@ TEST(utils_encryption, decrypt_data_buffer_with_key) {
}
TEST(utils_encryption, decrypt_data_pointer_with_key) {
const auto key = utils::encryption::generate_key(token);
const auto key =
utils::encryption::generate_key<utils::encryption::hash_256_t>(token);
data_buffer result;
utils::encryption::encrypt_data(
key, reinterpret_cast<const unsigned char *>(buffer.data()),
@ -122,7 +228,8 @@ TEST(utils_encryption, decrypt_data_pointer_with_key) {
}
TEST(utils_encryption, decryption_failure) {
const auto key = utils::encryption::generate_key(token);
const auto key =
utils::encryption::generate_key<utils::encryption::hash_256_t>(token);
data_buffer result;
utils::encryption::encrypt_data(
key, reinterpret_cast<const unsigned char *>(buffer.data()),
@ -134,6 +241,7 @@ TEST(utils_encryption, decryption_failure) {
std::string data;
EXPECT_FALSE(utils::encryption::decrypt_data(key, result, data));
}
#endif // defined(PROJECT_ENABLE_BOOST)
} // namespace repertory
#endif // defined(PROJECT_ENABLE_LIBSODIUM) && defined(PROJECT_ENABLE_BOOST)
#endif // defined(PROJECT_ENABLE_LIBSODIUM)