aboutsummaryrefslogtreecommitdiffstats
path: root/src/gpg/function/BasicOperator.cpp
diff options
context:
space:
mode:
authorSaturn&Eric <[email protected]>2021-12-16 21:20:56 +0000
committerGitHub <[email protected]>2021-12-16 21:20:56 +0000
commit52ac9979bd8c4820a0034d619cb7d1d3e4105d8b (patch)
treec7524432467825603d83a17f398249d431c28b18 /src/gpg/function/BasicOperator.cpp
parentMerge pull request #32 from saturneric/develop (diff)
parentFixed bugs & Improve Speed. (diff)
downloadGpgFrontend-52ac9979bd8c4820a0034d619cb7d1d3e4105d8b.tar.gz
GpgFrontend-52ac9979bd8c4820a0034d619cb7d1d3e4105d8b.zip
Merge pull request #34 from saturneric/develop
v2.0.3
Diffstat (limited to 'src/gpg/function/BasicOperator.cpp')
-rw-r--r--src/gpg/function/BasicOperator.cpp23
1 files changed, 13 insertions, 10 deletions
diff --git a/src/gpg/function/BasicOperator.cpp b/src/gpg/function/BasicOperator.cpp
index 5f6ffb85..56b7ca54 100644
--- a/src/gpg/function/BasicOperator.cpp
+++ b/src/gpg/function/BasicOperator.cpp
@@ -48,7 +48,7 @@ GpgFrontend::GpgError GpgFrontend::BasicOperator::Encrypt(
auto temp_data_out = data_out.Read2Buffer();
std::swap(temp_data_out, out_buffer);
- auto temp_result = GpgEncrResult(gpgme_op_encrypt_result(ctx));
+ auto temp_result = _new_result(gpgme_op_encrypt_result(ctx));
std::swap(result, temp_result);
return err;
@@ -65,7 +65,7 @@ GpgFrontend::GpgError GpgFrontend::BasicOperator::Decrypt(
auto temp_data_out = data_out.Read2Buffer();
std::swap(temp_data_out, out_buffer);
- auto temp_result = GpgDecrResult(gpgme_op_decrypt_result(ctx));
+ auto temp_result = _new_result(gpgme_op_decrypt_result(ctx));
std::swap(result, temp_result);
return err;
@@ -86,7 +86,7 @@ GpgFrontend::GpgError GpgFrontend::BasicOperator::Verify(
} else
err = check_gpg_error(gpgme_op_verify(ctx, data_in, nullptr, data_out));
- auto temp_result = GpgVerifyResult(gpgme_op_verify_result(ctx));
+ auto temp_result = _new_result(gpgme_op_verify_result(ctx));
std::swap(result, temp_result);
return err;
@@ -122,7 +122,7 @@ GpgFrontend::GpgError GpgFrontend::BasicOperator::Sign(KeyListPtr keys,
auto temp_data_out = data_out.Read2Buffer();
std::swap(temp_data_out, out_buffer);
- auto temp_result = GpgSignResult(gpgme_op_sign_result(ctx));
+ auto temp_result = _new_result(gpgme_op_sign_result(ctx));
std::swap(result, temp_result);
@@ -141,10 +141,10 @@ gpgme_error_t GpgFrontend::BasicOperator::DecryptVerify(
auto temp_data_out = data_out.Read2Buffer();
std::swap(temp_data_out, out_buffer);
- auto temp_decr_result = GpgDecrResult(gpgme_op_decrypt_result(ctx));
+ auto temp_decr_result = _new_result(gpgme_op_decrypt_result(ctx));
std::swap(decrypt_result, temp_decr_result);
- auto temp_verify_result = GpgVerifyResult(gpgme_op_verify_result(ctx));
+ auto temp_verify_result = _new_result(gpgme_op_verify_result(ctx));
std::swap(verify_result, temp_verify_result);
return err;
@@ -176,9 +176,9 @@ gpgme_error_t GpgFrontend::BasicOperator::EncryptSign(
auto temp_data_out = data_out.Read2Buffer();
std::swap(temp_data_out, out_buffer);
- auto temp_encr_result = GpgEncrResult(gpgme_op_encrypt_result(ctx));
+ auto temp_encr_result = _new_result(gpgme_op_encrypt_result(ctx));
swap(encr_result, temp_encr_result);
- auto temp_sign_result = GpgSignResult(gpgme_op_sign_result(ctx));
+ auto temp_sign_result = _new_result(gpgme_op_sign_result(ctx));
swap(sign_result, temp_sign_result);
return err;
@@ -217,8 +217,11 @@ gpg_error_t GpgFrontend::BasicOperator::EncryptSymmetric(
auto temp_data_out = data_out.Read2Buffer();
std::swap(temp_data_out, out_buffer);
- auto temp_result = GpgEncrResult(gpgme_op_encrypt_result(ctx));
- std::swap(result, temp_result);
+ // TODO(Saturneric): maybe a bug of gpgme
+ if (gpgme_err_code(err) == GPG_ERR_NO_ERROR) {
+ auto temp_result = _new_result(gpgme_op_encrypt_result(ctx));
+ std::swap(result, temp_result);
+ }
return err;
}