diff options
author | Saturn&Eric <[email protected]> | 2021-12-16 21:20:56 +0000 |
---|---|---|
committer | GitHub <[email protected]> | 2021-12-16 21:20:56 +0000 |
commit | 52ac9979bd8c4820a0034d619cb7d1d3e4105d8b (patch) | |
tree | c7524432467825603d83a17f398249d431c28b18 /src/gpg/function/BasicOperator.cpp | |
parent | Merge pull request #32 from saturneric/develop (diff) | |
parent | Fixed bugs & Improve Speed. (diff) | |
download | GpgFrontend-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.cpp | 23 |
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; } |