aboutsummaryrefslogtreecommitdiffstats
path: root/src/gpg/function/GpgKeyImportExportor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gpg/function/GpgKeyImportExportor.cpp')
-rw-r--r--src/gpg/function/GpgKeyImportExportor.cpp64
1 files changed, 48 insertions, 16 deletions
diff --git a/src/gpg/function/GpgKeyImportExportor.cpp b/src/gpg/function/GpgKeyImportExportor.cpp
index 2ee261b4..7a7af4c7 100644
--- a/src/gpg/function/GpgKeyImportExportor.cpp
+++ b/src/gpg/function/GpgKeyImportExportor.cpp
@@ -1,32 +1,62 @@
+/**
+ * This file is part of GPGFrontend.
+ *
+ * GPGFrontend is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Foobar is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <https://www.gnu.org/licenses/>.
+ *
+ * The initial version of the source code is inherited from gpg4usb-team.
+ * Their source code version also complies with GNU General Public License.
+ *
+ * The source code version of this software was modified and released
+ * by Saturneric<[email protected]> starting on May 12, 2021.
+ *
+ */
+
#include "gpg/function/GpgKeyImportExportor.h"
+
#include "GpgConstants.h"
-#include <gpg-error.h>
/**
* Import key pair
* @param inBuffer input byte array
* @return Import information
*/
-GpgFrontend::GpgImportInformation
-GpgFrontend::GpgKeyImportExportor::ImportKey(StdBypeArrayPtr in_buffer) {
- LOG(INFO) << "ImportKey Called in_buffer Size " << in_buffer->size();
+GpgFrontend::GpgImportInformation GpgFrontend::GpgKeyImportExportor::ImportKey(
+ StdBypeArrayPtr in_buffer) {
+ DLOG(INFO) << "ImportKey called in_buffer Size " << in_buffer->size();
+
+ if (in_buffer->empty())
+ return GpgImportInformation();
+
GpgData data_in(in_buffer->data(), in_buffer->size());
+ DLOG(INFO) << "ImportKey gpgme_op_import";
auto err = check_gpg_error(gpgme_op_import(ctx, data_in));
assert(gpgme_err_code(err) == GPG_ERR_NO_ERROR);
gpgme_import_result_t result;
-
+ DLOG(INFO) << "ImportKey gpgme_op_import_result";
result = gpgme_op_import_result(ctx);
gpgme_import_status_t status = result->imports;
auto import_info = std::make_unique<GpgImportInformation>(result);
- LOG(INFO) << "ImportKey import_information " << result->not_imported << " "
- << result->imported << " " << result->considered;
+ DLOG(INFO) << "ImportKey import_information " << result->not_imported << " "
+ << result->imported << " " << result->considered;
while (status != nullptr) {
GpgImportedKey key;
key.import_status = static_cast<int>(status->status);
key.fpr = status->fpr;
import_info->importedKeys.emplace_back(key);
status = status->next;
- LOG(INFO) << "ImportKey Fpr " << key.fpr << " Status " << key.import_status;
+ DLOG(INFO) << "ImportKey Fpr " << key.fpr << " Status "
+ << key.import_status;
}
return *import_info;
}
@@ -38,7 +68,8 @@ GpgFrontend::GpgKeyImportExportor::ImportKey(StdBypeArrayPtr in_buffer) {
* @return if success
*/
bool GpgFrontend::GpgKeyImportExportor::ExportKeys(
- KeyIdArgsListPtr &uid_list, BypeArrayPtr &out_buffer) const {
+ KeyIdArgsListPtr& uid_list,
+ BypeArrayPtr& out_buffer) const {
if (uid_list->empty())
return false;
@@ -49,8 +80,8 @@ bool GpgFrontend::GpgKeyImportExportor::ExportKeys(
auto err = gpgme_op_export(ctx, (*uid_list)[i].c_str(), 0, data_out);
assert(gpgme_err_code(err) == GPG_ERR_NO_ERROR);
- LOG(INFO) << "exportKeys read_bytes"
- << gpgme_data_seek(data_out, 0, SEEK_END);
+ DLOG(INFO) << "exportKeys read_bytes"
+ << gpgme_data_seek(data_out, 0, SEEK_END);
auto temp_out_buffer = data_out.Read2Buffer();
std::swap(out_buffer, temp_out_buffer);
@@ -66,9 +97,10 @@ bool GpgFrontend::GpgKeyImportExportor::ExportKeys(
* @return if success
*/
bool GpgFrontend::GpgKeyImportExportor::ExportKeys(
- KeyArgsList &keys, BypeArrayPtr &out_buffer) const {
+ KeyArgsList& keys,
+ BypeArrayPtr& out_buffer) const {
KeyIdArgsListPtr key_ids = std::make_unique<std::vector<std::string>>();
- for (const auto &key : keys)
+ for (const auto& key : keys)
key_ids->push_back(key.id());
return ExportKeys(key_ids, out_buffer);
}
@@ -80,9 +112,9 @@ bool GpgFrontend::GpgKeyImportExportor::ExportKeys(
* @return if successful
*/
bool GpgFrontend::GpgKeyImportExportor::ExportSecretKey(
- const GpgKey &key, BypeArrayPtr out_buffer) const {
-
- LOG(INFO) << "Export Secret Key" << key.id().c_str();
+ const GpgKey& key,
+ BypeArrayPtr out_buffer) const {
+ DLOG(INFO) << "Export Secret Key" << key.id().c_str();
gpgme_key_t target_key[2] = {gpgme_key_t(key), nullptr};