aboutsummaryrefslogtreecommitdiffstats
path: root/src/test/core/GpgCoreTestBasicOpera.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/core/GpgCoreTestBasicOpera.cpp')
-rw-r--r--src/test/core/GpgCoreTestBasicOpera.cpp386
1 files changed, 192 insertions, 194 deletions
diff --git a/src/test/core/GpgCoreTestBasicOpera.cpp b/src/test/core/GpgCoreTestBasicOpera.cpp
index 19af4918..d54b4f20 100644
--- a/src/test/core/GpgCoreTestBasicOpera.cpp
+++ b/src/test/core/GpgCoreTestBasicOpera.cpp
@@ -36,199 +36,197 @@
namespace GpgFrontend::Test {
-// TEST_F(GpgCoreTest, CoreEncryptDecrTest) {
-// auto encrypt_key = GpgKeyGetter::GetInstance(kGpgFrontendDefaultChannel)
-// .GetPubkey("467F14220CE8DCF780CF4BAD8465C55B25C9B7D1");
-// ByteArray encrypt_text = "Hello GpgFrontend!";
-// KeyListPtr keys = std::make_unique<KeyArgsList>();
-// keys->push_back(std::move(encrypt_key));
-// GpgBasicOperator::GetInstance(kGpgFrontendDefaultChannel)
-// .Encrypt(std::move(keys), encrypt_text,
-// [](GpgError err, const DataObjectPtr&) {
-
-// });
-
-// // ASSERT_EQ(e_result->invalid_recipients, nullptr);
-// // ASSERT_EQ(CheckGpgError(err), GPG_ERR_NO_ERROR);
-
-// // GpgDecrResult d_result;
-// // ByteArrayPtr decr_out_data;
-// // err = GpgBasicOperator::GetInstance(kGpgFrontendDefaultChannel)
-// // .Decrypt(*encr_out_data, decr_out_data, d_result);
-// // ASSERT_EQ(CheckGpgError(err), GPG_ERR_NO_ERROR);
-// // ASSERT_NE(d_result->recipients, nullptr);
-// // ASSERT_EQ(std::string(d_result->recipients->keyid),
-// "F89C95A05088CC93");
-// // ASSERT_EQ(*decr_out_data, encrypt_text);
-// // }
-
-// // TEST_F(GpgCoreTest, CoreEncryptDecrTest_KeyNotFound_1) {
-// // ByteArrayPtr encr_out_data = std::make_unique<ByteArray>(
-// // "-----BEGIN PGP MESSAGE-----\n"
-// // "\n"
-// // "hQEMA6UM/S9sZ32MAQf9Fb6gp6nvgKTQBv2mmjXia6ODXYq6kNeLsPVzLCbHyWOs\n"
-// // "0GDED11R1NksA3EQxFf4fzLkDpbo68r5bWy7c28c99Fr68IRET19Tw6Gu65MQezD\n"
-// // "Rdzo1oVqmK9sfKqOT3+0S2H+suFYw5kfBztMZLVGGl9R9fOXdKcj0fqGs2br3e9D\n"
-// // "ArBFqq07Bae2DD1J8mckWB2x9Uem4vjRiY+vEJcEdAS1N5xu1n7qzzyDgcRcS34X\n"
-// // "PNBQeTrFMc2RS7mnip2DbyZVEjORobhguK6xZyqXXbvFacStGWDLptV3dcCn4JRO\n"
-// // "dIORyt5wugqAtgE4qEGTvr/pJ/oXPw4Wve/trece/9I/AR38vW8ntVmDa/hV75iZ\n"
-// // "4QGAhQ8grD4kq31GHXHUOmBX51XXW9SINmplC8elEx3R460EUZJjjb0OvTih+eZH\n"
-// // "=8n2H\n"
-// // "-----END PGP MESSAGE-----");
-
-// // GpgDecrResult d_result;
-// // ByteArrayPtr decr_out_data;
-// // auto err = GpgBasicOperator::GetInstance(kGpgFrontendDefaultChannel)
-// // .Decrypt(*encr_out_data, decr_out_data, d_result);
-// // ASSERT_EQ(CheckGpgError(err), GPG_ERR_NO_SECKEY);
-// // ASSERT_NE(d_result->recipients, nullptr);
-// // ASSERT_EQ(std::string(d_result->recipients->keyid),
-// "A50CFD2F6C677D8C");
-// }
-
-// TEST_F(GpgCoreTest, CoreEncryptDecrTest_KeyNotFound_ResultAnalyse) {
-// // ByteArrayPtr encr_out_data = std::make_unique<ByteArray>(
-// // "-----BEGIN PGP MESSAGE-----\n"
-// // "\n"
-// // "hQEMA6UM/S9sZ32MAQf9Fb6gp6nvgKTQBv2mmjXia6ODXYq6kNeLsPVzLCbHyWOs\n"
-// // "0GDED11R1NksA3EQxFf4fzLkDpbo68r5bWy7c28c99Fr68IRET19Tw6Gu65MQezD\n"
-// // "Rdzo1oVqmK9sfKqOT3+0S2H+suFYw5kfBztMZLVGGl9R9fOXdKcj0fqGs2br3e9D\n"
-// // "ArBFqq07Bae2DD1J8mckWB2x9Uem4vjRiY+vEJcEdAS1N5xu1n7qzzyDgcRcS34X\n"
-// // "PNBQeTrFMc2RS7mnip2DbyZVEjORobhguK6xZyqXXbvFacStGWDLptV3dcCn4JRO\n"
-// // "dIORyt5wugqAtgE4qEGTvr/pJ/oXPw4Wve/trece/9I/AR38vW8ntVmDa/hV75iZ\n"
-// // "4QGAhQ8grD4kq31GHXHUOmBX51XXW9SINmplC8elEx3R460EUZJjjb0OvTih+eZH\n"
-// // "=8n2H\n"
-// // "-----END PGP MESSAGE-----");
-
-// // GpgDecrResult d_result;
-// // ByteArrayPtr decr_out_data;
-// // auto err = GpgBasicOperator::GetInstance(kGpgFrontendDefaultChannel)
-// // .Decrypt(*encr_out_data, decr_out_data, d_result);
-// // ASSERT_EQ(CheckGpgError(err), GPG_ERR_NO_SECKEY);
-// // ASSERT_NE(d_result->recipients, nullptr);
-// // ASSERT_EQ(std::string(d_result->recipients->keyid), "A50CFD2F6C677D8C");
-
-// // GpgDecryptResultAnalyse analyse{err, d_result};
-// // analyse.Analyse();
-// // ASSERT_EQ(analyse.GetStatus(), -1);
-// // ASSERT_FALSE(analyse.GetResultReport().empty());
-// }
-
-// TEST_F(GpgCoreTest, CoreSignVerifyNormalTest) {
-// // auto encrypt_key = GpgKeyGetter::GetInstance(kGpgFrontendDefaultChannel)
-// // .GetPubkey("467F14220CE8DCF780CF4BAD8465C55B25C9B7D1");
-// // ByteArray sign_text = "Hello GpgFrontend!";
-// // ByteArrayPtr sign_out_data;
-// // GpgSignResult s_result;
-// // KeyListPtr keys = std::make_unique<KeyArgsList>();
-// // keys->push_back(std::move(encrypt_key));
-// // auto err = GpgBasicOperator::GetInstance(kGpgFrontendDefaultChannel)
-// // .Sign(std::move(keys), sign_text, sign_out_data,
-// // GPGME_SIG_MODE_NORMAL, s_result);
-// // ASSERT_EQ(CheckGpgError(err), GPG_ERR_NO_ERROR);
-// // ASSERT_EQ(s_result->invalid_signers, nullptr);
-
-// // GpgVerifyResult v_result;
-// // ByteArrayPtr sign_buff = nullptr;
-// // err = GpgBasicOperator::GetInstance(kGpgFrontendDefaultChannel)
-// // .Verify(*sign_out_data, sign_buff, v_result);
-// // ASSERT_EQ(CheckGpgError(err), GPG_ERR_NO_ERROR);
-// // ASSERT_NE(v_result->signatures, nullptr);
-// // ASSERT_EQ(std::string(v_result->signatures->fpr),
-// // "467F14220CE8DCF780CF4BAD8465C55B25C9B7D1");
-// // ASSERT_EQ(v_result->signatures->next, nullptr);
-// }
-
-// TEST_F(GpgCoreTest, CoreSignVerifyDetachTest) {
-// // auto encrypt_key = GpgKeyGetter::GetInstance(kGpgFrontendDefaultChannel)
-// // .GetPubkey("467F14220CE8DCF780CF4BAD8465C55B25C9B7D1");
-// // ByteArray sign_text = "Hello GpgFrontend!";
-// // ByteArrayPtr sign_out_data;
-// // GpgSignResult s_result;
-// // KeyListPtr keys = std::make_unique<KeyArgsList>();
-// // keys->push_back(std::move(encrypt_key));
-// // auto err = GpgBasicOperator::GetInstance(kGpgFrontendDefaultChannel)
-// // .Sign(std::move(keys), sign_text, sign_out_data,
-// // GPGME_SIG_MODE_DETACH, s_result);
-// // ASSERT_EQ(CheckGpgError(err), GPG_ERR_NO_ERROR);
-// // ASSERT_EQ(s_result->invalid_signers, nullptr);
-
-// // GpgVerifyResult v_result;
-// // err = GpgBasicOperator::GetInstance(kGpgFrontendDefaultChannel)
-// // .Verify(sign_text, sign_out_data, v_result);
-// // ASSERT_EQ(CheckGpgError(err), GPG_ERR_NO_ERROR);
-// // ASSERT_NE(v_result->signatures, nullptr);
-// // ASSERT_EQ(std::string(v_result->signatures->fpr),
-// // "467F14220CE8DCF780CF4BAD8465C55B25C9B7D1");
-// // ASSERT_EQ(v_result->signatures->next, nullptr);
-// }
-
-// TEST_F(GpgCoreTest, CoreSignVerifyClearTest) {
-// // auto sign_key = GpgKeyGetter::GetInstance(kGpgFrontendDefaultChannel)
-// // .GetKey("467F14220CE8DCF780CF4BAD8465C55B25C9B7D1");
-// // ByteArray sign_text = "Hello GpgFrontend!";
-// // ByteArrayPtr sign_out_data;
-// // GpgSignResult s_result;
-// // KeyListPtr keys = std::make_unique<KeyArgsList>();
-// // keys->push_back(std::move(sign_key));
-// // auto err = GpgBasicOperator::GetInstance(kGpgFrontendDefaultChannel)
-// // .Sign(std::move(keys), sign_text, sign_out_data,
-// // GPGME_SIG_MODE_CLEAR, s_result);
-// // ASSERT_EQ(CheckGpgError(err), GPG_ERR_NO_ERROR);
-// // ASSERT_EQ(s_result->invalid_signers, nullptr);
-
-// // GpgVerifyResult v_result;
-// // ByteArrayPtr sign_buff = nullptr;
-// // err = GpgBasicOperator::GetInstance(kGpgFrontendDefaultChannel)
-// // .Verify(*sign_out_data, sign_buff, v_result);
-// // ASSERT_EQ(CheckGpgError(err), GPG_ERR_NO_ERROR);
-// // ASSERT_NE(v_result->signatures, nullptr);
-// // ASSERT_EQ(std::string(v_result->signatures->fpr),
-// // "467F14220CE8DCF780CF4BAD8465C55B25C9B7D1");
-// // ASSERT_EQ(v_result->signatures->next, nullptr);
-// }
-
-// TEST_F(GpgCoreTest, CoreEncryptSignDecrVerifyTest) {
-// // auto encrypt_key = GpgKeyGetter::GetInstance(kGpgFrontendDefaultChannel)
-// // .GetPubkey("467F14220CE8DCF780CF4BAD8465C55B25C9B7D1");
-// // auto sign_key = GpgKeyGetter::GetInstance(kGpgFrontendDefaultChannel)
-// // .GetKey("8933EB283A18995F45D61DAC021D89771B680FFB");
-// // // Question?
-// // // ASSERT_FALSE(encrypt_key.is_private_key());
-// // ASSERT_TRUE(sign_key.IsPrivateKey());
-// // ASSERT_TRUE(sign_key.IsHasActualSigningCapability());
-// // ByteArray encrypt_text = "Hello GpgFrontend!";
-// // ByteArrayPtr encr_out_data;
-// // GpgEncrResult e_result;
-// // GpgSignResult s_result;
-
-// // KeyListPtr keys = std::make_unique<KeyArgsList>(),
-// // sign_keys = std::make_unique<KeyArgsList>();
-// // keys->push_back(std::move(encrypt_key));
-// // sign_keys->push_back(std::move(sign_key));
-
-// // auto err = GpgBasicOperator::GetInstance(kGpgFrontendDefaultChannel)
-// // .EncryptSign(std::move(keys), std::move(sign_keys),
-// // encrypt_text, encr_out_data, e_result,
-// // s_result);
-// // ASSERT_EQ(CheckGpgError(err), GPG_ERR_NO_ERROR);
-// // ASSERT_EQ(e_result->invalid_recipients, nullptr);
-// // ASSERT_EQ(s_result->invalid_signers, nullptr);
-
-// // GpgDecrResult d_result;
-// // GpgVerifyResult v_result;
-// // ByteArrayPtr decr_out_data = nullptr;
-// // err = GpgBasicOperator::GetInstance(kGpgFrontendDefaultChannel)
-// // .DecryptVerify(*encr_out_data, decr_out_data, d_result,
-// // v_result);
-// // ASSERT_EQ(CheckGpgError(err), GPG_ERR_NO_ERROR);
-// // ASSERT_NE(d_result->recipients, nullptr);
-// // ASSERT_EQ(std::string(d_result->recipients->keyid), "F89C95A05088CC93");
-// // ASSERT_EQ(*decr_out_data, encrypt_text);
-// // ASSERT_NE(v_result->signatures, nullptr);
-// // ASSERT_EQ(std::string(v_result->signatures->fpr),
-// // "8933EB283A18995F45D61DAC021D89771B680FFB");
-// // ASSERT_EQ(v_result->signatures->next, nullptr);
-// }
+TEST_F(GpgCoreTest, CoreEncryptDecrTest) {
+ auto encrypt_key = GpgKeyGetter::GetInstance().GetPubkey(
+ "E87C6A2D8D95C818DE93B3AE6A2764F8298DEB29");
+ ByteArray encrypt_text = "Hello GpgFrontend!";
+ KeyListPtr keys = std::make_unique<KeyArgsList>();
+ keys->push_back(std::move(encrypt_key));
+
+ GpgBasicOperator::GetInstance().Encrypt(
+ keys, encrypt_text,
+ [encrypt_text](GpgError err, const DataObjectPtr& data_obj) {
+ auto result = ExtractParams<GpgEncrResult>(data_obj, 0);
+ auto encr_out_buffer = ExtractParams<ByteArrayPtr>(data_obj, 1);
+ ASSERT_EQ(result->invalid_recipients, nullptr);
+ ASSERT_EQ(CheckGpgError(err), GPG_ERR_NO_ERROR);
+
+ GpgDecrResult d_result;
+ ByteArrayPtr decr_out_data;
+ err = GpgBasicOperator::GetInstance(kGpgFrontendDefaultChannel)
+ .Decrypt(*encr_out_buffer, decr_out_data, d_result);
+ ASSERT_EQ(CheckGpgError(err), GPG_ERR_NO_ERROR);
+ ASSERT_NE(d_result->recipients, nullptr);
+ ASSERT_EQ(std::string(d_result->recipients->keyid), "6A2764F8298DEB29");
+ ASSERT_EQ(*decr_out_data, encrypt_text);
+ });
+}
+
+TEST_F(GpgCoreTest, CoreEncryptDecrTest_KeyNotFound_1) {
+ ByteArrayPtr encr_out_data = std::make_unique<ByteArray>(
+ "-----BEGIN PGP MESSAGE-----\n"
+ "\n"
+ "hQEMA6UM/S9sZ32MAQf9Fb6gp6nvgKTQBv2mmjXia6ODXYq6kNeLsPVzLCbHyWOs\n"
+ "0GDED11R1NksA3EQxFf4fzLkDpbo68r5bWy7c28c99Fr68IRET19Tw6Gu65MQezD\n"
+ "Rdzo1oVqmK9sfKqOT3+0S2H+suFYw5kfBztMZLVGGl9R9fOXdKcj0fqGs2br3e9D\n"
+ "ArBFqq07Bae2DD1J8mckWB2x9Uem4vjRiY+vEJcEdAS1N5xu1n7qzzyDgcRcS34X\n"
+ "PNBQeTrFMc2RS7mnip2DbyZVEjORobhguK6xZyqXXbvFacStGWDLptV3dcCn4JRO\n"
+ "dIORyt5wugqAtgE4qEGTvr/pJ/oXPw4Wve/trece/9I/AR38vW8ntVmDa/hV75iZ\n"
+ "4QGAhQ8grD4kq31GHXHUOmBX51XXW9SINmplC8elEx3R460EUZJjjb0OvTih+eZH\n"
+ "=8n2H\n"
+ "-----END PGP MESSAGE-----");
+
+ GpgDecrResult d_result;
+ ByteArrayPtr decr_out_data;
+ auto err = GpgBasicOperator::GetInstance(kGpgFrontendDefaultChannel)
+ .Decrypt(*encr_out_data, decr_out_data, d_result);
+ ASSERT_EQ(CheckGpgError(err), GPG_ERR_NO_SECKEY);
+ ASSERT_NE(d_result->recipients, nullptr);
+ ASSERT_EQ(std::string(d_result->recipients->keyid), "A50CFD2F6C677D8C");
+}
+
+TEST_F(GpgCoreTest, CoreEncryptDecrTest_KeyNotFound_ResultAnalyse) {
+ ByteArrayPtr encr_out_data = std::make_unique<ByteArray>(
+ "-----BEGIN PGP MESSAGE-----\n"
+ "\n"
+ "hQEMA6UM/S9sZ32MAQf9Fb6gp6nvgKTQBv2mmjXia6ODXYq6kNeLsPVzLCbHyWOs\n"
+ "0GDED11R1NksA3EQxFf4fzLkDpbo68r5bWy7c28c99Fr68IRET19Tw6Gu65MQezD\n"
+ "Rdzo1oVqmK9sfKqOT3+0S2H+suFYw5kfBztMZLVGGl9R9fOXdKcj0fqGs2br3e9D\n"
+ "ArBFqq07Bae2DD1J8mckWB2x9Uem4vjRiY+vEJcEdAS1N5xu1n7qzzyDgcRcS34X\n"
+ "PNBQeTrFMc2RS7mnip2DbyZVEjORobhguK6xZyqXXbvFacStGWDLptV3dcCn4JRO\n"
+ "dIORyt5wugqAtgE4qEGTvr/pJ/oXPw4Wve/trece/9I/AR38vW8ntVmDa/hV75iZ\n"
+ "4QGAhQ8grD4kq31GHXHUOmBX51XXW9SINmplC8elEx3R460EUZJjjb0OvTih+eZH\n"
+ "=8n2H\n"
+ "-----END PGP MESSAGE-----");
+
+ GpgDecrResult d_result;
+ ByteArrayPtr decr_out_data;
+ auto err = GpgBasicOperator::GetInstance(kGpgFrontendDefaultChannel)
+ .Decrypt(*encr_out_data, decr_out_data, d_result);
+ ASSERT_EQ(CheckGpgError(err), GPG_ERR_NO_SECKEY);
+ ASSERT_NE(d_result->recipients, nullptr);
+ ASSERT_EQ(std::string(d_result->recipients->keyid), "A50CFD2F6C677D8C");
+
+ GpgDecryptResultAnalyse analyse{err, d_result};
+ analyse.Analyse();
+ ASSERT_EQ(analyse.GetStatus(), -1);
+ ASSERT_FALSE(analyse.GetResultReport().empty());
+}
+
+TEST_F(GpgCoreTest, CoreSignVerifyNormalTest) {
+ auto encrypt_key = GpgKeyGetter::GetInstance(kGpgFrontendDefaultChannel)
+ .GetPubkey("467F14220CE8DCF780CF4BAD8465C55B25C9B7D1");
+ ByteArray sign_text = "Hello GpgFrontend!";
+ ByteArrayPtr sign_out_data;
+ GpgSignResult s_result;
+ KeyListPtr keys = std::make_unique<KeyArgsList>();
+ keys->push_back(std::move(encrypt_key));
+ auto err = GpgBasicOperator::GetInstance(kGpgFrontendDefaultChannel)
+ .Sign(std::move(keys), sign_text, sign_out_data,
+ GPGME_SIG_MODE_NORMAL, s_result);
+ ASSERT_EQ(CheckGpgError(err), GPG_ERR_NO_ERROR);
+ ASSERT_EQ(s_result->invalid_signers, nullptr);
+
+ GpgVerifyResult v_result;
+ ByteArrayPtr sign_buff = nullptr;
+ err = GpgBasicOperator::GetInstance(kGpgFrontendDefaultChannel)
+ .Verify(*sign_out_data, sign_buff, v_result);
+ ASSERT_EQ(CheckGpgError(err), GPG_ERR_NO_ERROR);
+ ASSERT_NE(v_result->signatures, nullptr);
+ ASSERT_EQ(std::string(v_result->signatures->fpr),
+ "467F14220CE8DCF780CF4BAD8465C55B25C9B7D1");
+ ASSERT_EQ(v_result->signatures->next, nullptr);
+}
+
+TEST_F(GpgCoreTest, CoreSignVerifyDetachTest) {
+ auto encrypt_key = GpgKeyGetter::GetInstance(kGpgFrontendDefaultChannel)
+ .GetPubkey("467F14220CE8DCF780CF4BAD8465C55B25C9B7D1");
+ ByteArray sign_text = "Hello GpgFrontend!";
+ ByteArrayPtr sign_out_data;
+ GpgSignResult s_result;
+ KeyListPtr keys = std::make_unique<KeyArgsList>();
+ keys->push_back(std::move(encrypt_key));
+ auto err = GpgBasicOperator::GetInstance(kGpgFrontendDefaultChannel)
+ .Sign(std::move(keys), sign_text, sign_out_data,
+ GPGME_SIG_MODE_DETACH, s_result);
+ ASSERT_EQ(CheckGpgError(err), GPG_ERR_NO_ERROR);
+ ASSERT_EQ(s_result->invalid_signers, nullptr);
+
+ GpgVerifyResult v_result;
+ err = GpgBasicOperator::GetInstance(kGpgFrontendDefaultChannel)
+ .Verify(sign_text, sign_out_data, v_result);
+ ASSERT_EQ(CheckGpgError(err), GPG_ERR_NO_ERROR);
+ ASSERT_NE(v_result->signatures, nullptr);
+ ASSERT_EQ(std::string(v_result->signatures->fpr),
+ "467F14220CE8DCF780CF4BAD8465C55B25C9B7D1");
+ ASSERT_EQ(v_result->signatures->next, nullptr);
+}
+
+TEST_F(GpgCoreTest, CoreSignVerifyClearTest) {
+ auto sign_key = GpgKeyGetter::GetInstance(kGpgFrontendDefaultChannel)
+ .GetKey("467F14220CE8DCF780CF4BAD8465C55B25C9B7D1");
+ ByteArray sign_text = "Hello GpgFrontend!";
+ ByteArrayPtr sign_out_data;
+ GpgSignResult s_result;
+ KeyListPtr keys = std::make_unique<KeyArgsList>();
+ keys->push_back(std::move(sign_key));
+ auto err = GpgBasicOperator::GetInstance(kGpgFrontendDefaultChannel)
+ .Sign(std::move(keys), sign_text, sign_out_data,
+ GPGME_SIG_MODE_CLEAR, s_result);
+ ASSERT_EQ(CheckGpgError(err), GPG_ERR_NO_ERROR);
+ ASSERT_EQ(s_result->invalid_signers, nullptr);
+
+ GpgVerifyResult v_result;
+ ByteArrayPtr sign_buff = nullptr;
+ err = GpgBasicOperator::GetInstance(kGpgFrontendDefaultChannel)
+ .Verify(*sign_out_data, sign_buff, v_result);
+ ASSERT_EQ(CheckGpgError(err), GPG_ERR_NO_ERROR);
+ ASSERT_NE(v_result->signatures, nullptr);
+ ASSERT_EQ(std::string(v_result->signatures->fpr),
+ "467F14220CE8DCF780CF4BAD8465C55B25C9B7D1");
+ ASSERT_EQ(v_result->signatures->next, nullptr);
+}
+
+TEST_F(GpgCoreTest, CoreEncryptSignDecrVerifyTest) {
+ auto encrypt_key = GpgKeyGetter::GetInstance(kGpgFrontendDefaultChannel)
+ .GetPubkey("467F14220CE8DCF780CF4BAD8465C55B25C9B7D1");
+ auto sign_key = GpgKeyGetter::GetInstance(kGpgFrontendDefaultChannel)
+ .GetKey("8933EB283A18995F45D61DAC021D89771B680FFB");
+ // Question?
+ // ASSERT_FALSE(encrypt_key.is_private_key());
+ ASSERT_TRUE(sign_key.IsPrivateKey());
+ ASSERT_TRUE(sign_key.IsHasActualSigningCapability());
+ ByteArray encrypt_text = "Hello GpgFrontend!";
+ ByteArrayPtr encr_out_data;
+ GpgEncrResult e_result;
+ GpgSignResult s_result;
+
+ KeyListPtr keys = std::make_unique<KeyArgsList>();
+ KeyListPtr sign_keys = std::make_unique<KeyArgsList>();
+
+ keys->push_back(std::move(encrypt_key));
+ sign_keys->push_back(std::move(sign_key));
+
+ auto err = GpgBasicOperator::GetInstance(kGpgFrontendDefaultChannel)
+ .EncryptSign(std::move(keys), std::move(sign_keys),
+ encrypt_text, encr_out_data, e_result, s_result);
+ ASSERT_EQ(CheckGpgError(err), GPG_ERR_NO_ERROR);
+ ASSERT_EQ(e_result->invalid_recipients, nullptr);
+ ASSERT_EQ(s_result->invalid_signers, nullptr);
+
+ GpgDecrResult d_result;
+ GpgVerifyResult v_result;
+ ByteArrayPtr decr_out_data = nullptr;
+ err = GpgBasicOperator::GetInstance(kGpgFrontendDefaultChannel)
+ .DecryptVerify(*encr_out_data, decr_out_data, d_result, v_result);
+ ASSERT_EQ(CheckGpgError(err), GPG_ERR_NO_ERROR);
+ ASSERT_NE(d_result->recipients, nullptr);
+ ASSERT_EQ(std::string(d_result->recipients->keyid), "F89C95A05088CC93");
+ ASSERT_EQ(*decr_out_data, encrypt_text);
+ ASSERT_NE(v_result->signatures, nullptr);
+ ASSERT_EQ(std::string(v_result->signatures->fpr),
+ "8933EB283A18995F45D61DAC021D89771B680FFB");
+ ASSERT_EQ(v_result->signatures->next, nullptr);
+}
} // namespace GpgFrontend::Test