From: Vsevolod Stakhov Date: Fri, 9 Aug 2024 12:10:35 +0000 (+0100) Subject: [Test] Add test for keypairs encrypt/decrypt X-Git-Tag: 3.10.0~41^2 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=refs%2Fpull%2F5100%2Fhead;p=rspamd.git [Test] Add test for keypairs encrypt/decrypt --- 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