From 0d45433cf182b5125eca024ec3e60ffbad68310f Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Fri, 9 Aug 2024 13:10:35 +0100 Subject: [PATCH] [Test] Add test for keypairs encrypt/decrypt --- test/rspamd_cxx_unit_cryptobox.hxx | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/test/rspamd_cxx_unit_cryptobox.hxx b/test/rspamd_cxx_unit_cryptobox.hxx index 3f3cab697..5829b1e43 100644 --- a/test/rspamd_cxx_unit_cryptobox.hxx +++ b/test/rspamd_cxx_unit_cryptobox.hxx @@ -20,6 +20,7 @@ #define RSPAMD_RSPAMD_CXX_UNIT_CRYPTOBOX_HXX #include "libcryptobox/cryptobox.h" #include +#include TEST_SUITE("rspamd_cryptobox") { @@ -151,6 +152,31 @@ TEST_SUITE("rspamd_cryptobox") pk); CHECK(check_result == true); } + + TEST_CASE("rspamd_keypair_encryption") + { + auto *kp = rspamd_keypair_new(RSPAMD_KEYPAIR_KEX); + std::string data{"data to be encrypted"}; + unsigned char *out; + gsize outlen; + GError *err = nullptr; + + auto ret = rspamd_keypair_encrypt(kp, reinterpret_cast(data.data()), data.size(), + &out, &outlen, &err); + CHECK(ret); + CHECK(err == nullptr); + + unsigned char *decrypted; + gsize decrypted_len; + ret = rspamd_keypair_decrypt(kp, out, outlen, &decrypted, &decrypted_len, &err); + CHECK(ret); + CHECK(err == nullptr); + CHECK(decrypted_len == data.size()); + CHECK(data == std::string_view{reinterpret_cast(decrypted), decrypted_len}); + + g_free(out); + g_free(decrypted); + } } #endif -- 2.39.5