aboutsummaryrefslogtreecommitdiffstats
path: root/src/core/function/gpg
diff options
context:
space:
mode:
authorsaturneric <[email protected]>2024-12-13 15:22:33 +0000
committersaturneric <[email protected]>2024-12-13 15:22:33 +0000
commitf7a00c58d2824f49ecaafc0152fc0b8213772e46 (patch)
treed012e5fac4ff9f48cd10381a0b79de0294d28d18 /src/core/function/gpg
parentdoc: update SECURITY.md (diff)
downloadGpgFrontend-f7a00c58d2824f49ecaafc0152fc0b8213772e46.tar.gz
GpgFrontend-f7a00c58d2824f49ecaafc0152fc0b8213772e46.zip
refactor: using qt containers instead of std containers
Diffstat (limited to 'src/core/function/gpg')
-rw-r--r--src/core/function/gpg/GpgBasicOperator.cpp14
-rw-r--r--src/core/function/gpg/GpgBasicOperator.h2
-rw-r--r--src/core/function/gpg/GpgCommandExecutor.cpp4
-rw-r--r--src/core/function/gpg/GpgFileOpera.cpp12
-rw-r--r--src/core/function/gpg/GpgKeyGetter.cpp36
-rw-r--r--src/core/function/gpg/GpgKeyGetter.h14
-rw-r--r--src/core/function/gpg/GpgKeyImportExporter.cpp6
-rw-r--r--src/core/function/gpg/GpgKeyManager.cpp4
-rw-r--r--src/core/function/gpg/GpgKeyManager.h2
-rw-r--r--src/core/function/gpg/GpgKeyOpera.cpp10
-rw-r--r--src/core/function/gpg/GpgKeyOpera.h2
11 files changed, 43 insertions, 63 deletions
diff --git a/src/core/function/gpg/GpgBasicOperator.cpp b/src/core/function/gpg/GpgBasicOperator.cpp
index 6443f242..661c1283 100644
--- a/src/core/function/gpg/GpgBasicOperator.cpp
+++ b/src/core/function/gpg/GpgBasicOperator.cpp
@@ -50,7 +50,7 @@ void GpgBasicOperator::Encrypt(const KeyArgsList& keys,
[=](const DataObjectPtr& data_object) -> GpgError {
if (keys.empty()) return GPG_ERR_CANCELED;
- std::vector<gpgme_key_t> recipients(keys.begin(), keys.end());
+ QContainer<gpgme_key_t> recipients(keys.begin(), keys.end());
// Last entry data_in array has to be nullptr
recipients.emplace_back(nullptr);
@@ -77,7 +77,7 @@ auto GpgBasicOperator::EncryptSync(const KeyArgsList& keys,
[=](const DataObjectPtr& data_object) -> GpgError {
if (keys.empty()) return GPG_ERR_CANCELED;
- std::vector<gpgme_key_t> recipients(keys.begin(), keys.end());
+ QContainer<gpgme_key_t> recipients(keys.begin(), keys.end());
// Last entry data_in array has to be nullptr
recipients.emplace_back(nullptr);
@@ -329,7 +329,7 @@ void GpgBasicOperator::EncryptSign(const KeyArgsList& keys,
if (keys.empty() || signers.empty()) return GPG_ERR_CANCELED;
GpgError err;
- std::vector<gpgme_key_t> recipients(keys.begin(), keys.end());
+ QContainer<gpgme_key_t> recipients(keys.begin(), keys.end());
// Last entry data_in array has to be nullptr
recipients.emplace_back(nullptr);
@@ -361,7 +361,7 @@ auto GpgBasicOperator::EncryptSignSync(const KeyArgsList& keys,
if (keys.empty() || signers.empty()) return GPG_ERR_CANCELED;
GpgError err;
- std::vector<gpgme_key_t> recipients(keys.begin(), keys.end());
+ QContainer<gpgme_key_t> recipients(keys.begin(), keys.end());
// Last entry data_in array has to be nullptr
recipients.emplace_back(nullptr);
@@ -401,14 +401,14 @@ void GpgBasicOperator::SetSigners(const KeyArgsList& signers, bool ascii) {
}
}
-auto GpgBasicOperator::GetSigners(bool ascii) -> std::unique_ptr<KeyArgsList> {
+auto GpgBasicOperator::GetSigners(bool ascii) -> KeyArgsList {
auto* ctx = ascii ? ctx_.DefaultContext() : ctx_.BinaryContext();
auto count = gpgme_signers_count(ctx);
- auto signers = std::make_unique<std::vector<GpgKey>>();
+ auto signers = KeyArgsList{};
for (auto i = 0U; i < count; i++) {
auto key = GpgKey(gpgme_signers_enum(ctx, i));
- signers->push_back(GpgKey(std::move(key)));
+ signers.push_back(GpgKey(std::move(key)));
}
return signers;
}
diff --git a/src/core/function/gpg/GpgBasicOperator.h b/src/core/function/gpg/GpgBasicOperator.h
index 431ccf1c..990d7af5 100644
--- a/src/core/function/gpg/GpgBasicOperator.h
+++ b/src/core/function/gpg/GpgBasicOperator.h
@@ -226,7 +226,7 @@ class GPGFRONTEND_CORE_EXPORT GpgBasicOperator
*
* @return Intelligent pointer pointing to the private key list
*/
- auto GetSigners(bool ascii) -> std::unique_ptr<KeyArgsList>;
+ auto GetSigners(bool ascii) -> KeyArgsList;
private:
GpgContext& ctx_ = GpgContext::GetInstance(
diff --git a/src/core/function/gpg/GpgCommandExecutor.cpp b/src/core/function/gpg/GpgCommandExecutor.cpp
index 3e218b92..5256de60 100644
--- a/src/core/function/gpg/GpgCommandExecutor.cpp
+++ b/src/core/function/gpg/GpgCommandExecutor.cpp
@@ -45,8 +45,8 @@ auto BuildTaskFromExecCtx(const GpgCommandExecutor::ExecuteContext &context)
Thread::Task::TaskCallback result_callback =
[cmd](int /*rtn*/, const DataObjectPtr &data_object) {
- FLOG_D("data object args count of cmd executor result callback: %ld",
- data_object->GetObjectSize());
+ LOG_D() << "data object args count of cmd executor result callback:"
+ << data_object->GetObjectSize();
if (!data_object->Check<int, QString, GpgCommandExecutorCallback>()) {
FLOG_W("data object checking failed");
diff --git a/src/core/function/gpg/GpgFileOpera.cpp b/src/core/function/gpg/GpgFileOpera.cpp
index 5d29364b..9dea413d 100644
--- a/src/core/function/gpg/GpgFileOpera.cpp
+++ b/src/core/function/gpg/GpgFileOpera.cpp
@@ -50,7 +50,7 @@ void GpgFileOpera::EncryptFile(const KeyArgsList& keys, const QString& in_path,
const GpgOperationCallback& cb) {
RunGpgOperaAsync(
[=](const DataObjectPtr& data_object) -> GpgError {
- std::vector<gpgme_key_t> recipients(keys.begin(), keys.end());
+ QContainer<gpgme_key_t> recipients(keys.begin(), keys.end());
// Last entry data_in array has to be nullptr
recipients.emplace_back(nullptr);
@@ -74,7 +74,7 @@ auto GpgFileOpera::EncryptFileSync(
const QString& out_path) -> std::tuple<GpgError, DataObjectPtr> {
return RunGpgOperaSync(
[=](const DataObjectPtr& data_object) -> GpgError {
- std::vector<gpgme_key_t> recipients(keys.begin(), keys.end());
+ QContainer<gpgme_key_t> recipients(keys.begin(), keys.end());
// Last entry data_in array has to be nullptr
recipients.emplace_back(nullptr);
@@ -102,7 +102,7 @@ void GpgFileOpera::EncryptDirectory(const KeyArgsList& keys,
RunGpgOperaAsync(
[=](const DataObjectPtr& data_object) -> GpgError {
- std::vector<gpgme_key_t> recipients(keys.begin(), keys.end());
+ QContainer<gpgme_key_t> recipients(keys.begin(), keys.end());
// Last entry data_in array has to be nullptr
recipients.emplace_back(nullptr);
@@ -304,7 +304,7 @@ void GpgFileOpera::EncryptSignFile(const KeyArgsList& keys,
RunGpgOperaAsync(
[=](const DataObjectPtr& data_object) -> GpgError {
GpgError err;
- std::vector<gpgme_key_t> recipients(keys.begin(), keys.end());
+ QContainer<gpgme_key_t> recipients(keys.begin(), keys.end());
// Last entry data_in array has to be nullptr
recipients.emplace_back(nullptr);
@@ -336,7 +336,7 @@ auto GpgFileOpera::EncryptSignFileSync(
return RunGpgOperaSync(
[=](const DataObjectPtr& data_object) -> GpgError {
GpgError err;
- std::vector<gpgme_key_t> recipients(keys.begin(), keys.end());
+ QContainer<gpgme_key_t> recipients(keys.begin(), keys.end());
// Last entry data_in array has to be nullptr
recipients.emplace_back(nullptr);
@@ -372,7 +372,7 @@ void GpgFileOpera::EncryptSignDirectory(const KeyArgsList& keys,
RunGpgOperaAsync(
[=](const DataObjectPtr& data_object) -> GpgError {
GpgError err;
- std::vector<gpgme_key_t> recipients(keys.begin(), keys.end());
+ QContainer<gpgme_key_t> recipients(keys.begin(), keys.end());
// Last entry data_in array has to be nullptr
recipients.emplace_back(nullptr);
diff --git a/src/core/function/gpg/GpgKeyGetter.cpp b/src/core/function/gpg/GpgKeyGetter.cpp
index c4526e49..e5b234f8 100644
--- a/src/core/function/gpg/GpgKeyGetter.cpp
+++ b/src/core/function/gpg/GpgKeyGetter.cpp
@@ -73,17 +73,17 @@ class GpgKeyGetter::Impl : public SingletonFunctionObject<GpgKeyGetter::Impl> {
return GpgKey(std::move(p_key));
}
- auto FetchKey() -> KeyLinkListPtr {
+ auto FetchKey() -> GpgKeyList {
if (keys_search_cache_.empty()) {
FlushKeyCache();
}
- auto keys_list = std::make_unique<GpgKeyLinkList>();
+ auto keys_list = GpgKeyList{};
{
// get the lock
std::lock_guard<std::mutex> lock(keys_cache_mutex_);
for (const auto& key : keys_cache_) {
- keys_list->push_back(key);
+ keys_list.push_back(key);
}
}
return keys_list;
@@ -149,25 +149,17 @@ class GpgKeyGetter::Impl : public SingletonFunctionObject<GpgKeyGetter::Impl> {
return true;
}
- auto GetKeys(const KeyIdArgsListPtr& ids) -> KeyListPtr {
- auto keys = std::make_unique<KeyArgsList>();
- for (const auto& key_id : *ids) keys->emplace_back(GetKey(key_id, true));
+ auto GetKeys(const KeyIdArgsList& ids) -> GpgKeyList {
+ auto keys = GpgKeyList{};
+ for (const auto& key_id : ids) keys.emplace_back(GetKey(key_id, true));
return keys;
}
- auto GetKeysCopy(const KeyLinkListPtr& keys) -> KeyLinkListPtr {
- // get the lock
- std::lock_guard<std::mutex> lock(ctx_mutex_);
- auto keys_copy = std::make_unique<GpgKeyLinkList>();
- for (const auto& key : *keys) keys_copy->emplace_back(key);
- return keys_copy;
- }
-
- auto GetKeysCopy(const KeyListPtr& keys) -> KeyListPtr {
+ auto GetKeysCopy(const GpgKeyList& keys) -> GpgKeyList {
// get the lock
std::lock_guard<std::mutex> lock(ctx_mutex_);
- auto keys_copy = std::make_unique<KeyArgsList>();
- for (const auto& key : *keys) keys_copy->emplace_back(key);
+ auto keys_copy = GpgKeyList{};
+ for (const auto& key : keys) keys_copy.emplace_back(key);
return keys_copy;
}
@@ -243,19 +235,15 @@ auto GpgKeyGetter::GetPubkey(const QString& key_id, bool use_cache) -> GpgKey {
auto GpgKeyGetter::FlushKeyCache() -> bool { return p_->FlushKeyCache(); }
-auto GpgKeyGetter::GetKeys(const KeyIdArgsListPtr& ids) -> KeyListPtr {
+auto GpgKeyGetter::GetKeys(const KeyIdArgsList& ids) -> GpgKeyList {
return p_->GetKeys(ids);
}
-auto GpgKeyGetter::GetKeysCopy(const KeyLinkListPtr& keys) -> KeyLinkListPtr {
- return p_->GetKeysCopy(keys);
-}
-
-auto GpgKeyGetter::GetKeysCopy(const KeyListPtr& keys) -> KeyListPtr {
+auto GpgKeyGetter::GetKeysCopy(const GpgKeyList& keys) -> GpgKeyList {
return p_->GetKeysCopy(keys);
}
-auto GpgKeyGetter::FetchKey() -> KeyLinkListPtr { return p_->FetchKey(); }
+auto GpgKeyGetter::FetchKey() -> GpgKeyList { return p_->FetchKey(); }
auto GpgKeyGetter::GetGpgKeyTableModel() -> QSharedPointer<GpgKeyTableModel> {
return p_->GetGpgKeyTableModel();
diff --git a/src/core/function/gpg/GpgKeyGetter.h b/src/core/function/gpg/GpgKeyGetter.h
index f354ff49..2ed34531 100644
--- a/src/core/function/gpg/GpgKeyGetter.h
+++ b/src/core/function/gpg/GpgKeyGetter.h
@@ -68,7 +68,7 @@ class GPGFRONTEND_CORE_EXPORT GpgKeyGetter
* @param ids
* @return KeyListPtr
*/
- auto GetKeys(const KeyIdArgsListPtr& key_ids) -> KeyListPtr;
+ auto GetKeys(const KeyIdArgsList& key_ids) -> GpgKeyList;
/**
* @brief Get the Pubkey object
@@ -83,7 +83,7 @@ class GPGFRONTEND_CORE_EXPORT GpgKeyGetter
*
* @return KeyLinkListPtr
*/
- auto FetchKey() -> KeyLinkListPtr;
+ auto FetchKey() -> GpgKeyList;
/**
* @brief flush the keys in the cache
@@ -97,15 +97,7 @@ class GPGFRONTEND_CORE_EXPORT GpgKeyGetter
* @param keys
* @return KeyListPtr
*/
- auto GetKeysCopy(const KeyListPtr& keys) -> KeyListPtr;
-
- /**
- * @brief Get the Keys Copy object
- *
- * @param keys
- * @return KeyLinkListPtr
- */
- auto GetKeysCopy(const KeyLinkListPtr& keys) -> KeyLinkListPtr;
+ auto GetKeysCopy(const GpgKeyList& keys) -> GpgKeyList;
/**
* @brief
diff --git a/src/core/function/gpg/GpgKeyImportExporter.cpp b/src/core/function/gpg/GpgKeyImportExporter.cpp
index fa1f908f..6c78f760 100644
--- a/src/core/function/gpg/GpgKeyImportExporter.cpp
+++ b/src/core/function/gpg/GpgKeyImportExporter.cpp
@@ -82,7 +82,7 @@ auto GpgKeyImportExporter::ExportKey(const GpgKey& key, bool secret, bool ascii,
if (shortest) mode |= GPGME_EXPORT_MODE_MINIMAL;
if (ssh_mode) mode |= GPGME_EXPORT_MODE_SSH;
- std::vector<gpgme_key_t> keys_array;
+ QContainer<gpgme_key_t> keys_array;
// Last entry data_in array has to be nullptr
keys_array.emplace_back(key);
@@ -114,7 +114,7 @@ void GpgKeyImportExporter::ExportKeys(const KeyArgsList& keys, bool secret,
if (shortest) mode |= GPGME_EXPORT_MODE_MINIMAL;
if (ssh_mode) mode |= GPGME_EXPORT_MODE_SSH;
- std::vector<gpgme_key_t> keys_array(keys.begin(), keys.end());
+ QContainer<gpgme_key_t> keys_array(keys.begin(), keys.end());
// Last entry data_in array has to be nullptr
keys_array.emplace_back(nullptr);
@@ -144,7 +144,7 @@ void GpgKeyImportExporter::ExportAllKeys(const KeyArgsList& keys, bool secret,
if (keys.empty()) return GPG_ERR_CANCELED;
int mode = 0;
- std::vector<gpgme_key_t> keys_array(keys.begin(), keys.end());
+ QContainer<gpgme_key_t> keys_array(keys.begin(), keys.end());
// Last entry data_in array has to be nullptr
keys_array.emplace_back(nullptr);
diff --git a/src/core/function/gpg/GpgKeyManager.cpp b/src/core/function/gpg/GpgKeyManager.cpp
index d0576e59..674a3884 100644
--- a/src/core/function/gpg/GpgKeyManager.cpp
+++ b/src/core/function/gpg/GpgKeyManager.cpp
@@ -61,10 +61,10 @@ auto GpgKeyManager::SignKey(const GpgKey& target, KeyArgsList& keys,
}
auto GpgKeyManager::RevSign(const GpgKey& key,
- const SignIdArgsListPtr& signature_id) -> bool {
+ const SignIdArgsList& signature_id) -> bool {
auto& key_getter = GpgKeyGetter::GetInstance(GetChannel());
- for (const auto& sign_id : *signature_id) {
+ for (const auto& sign_id : signature_id) {
auto signing_key = key_getter.GetKey(sign_id.first);
assert(signing_key.IsGood());
diff --git a/src/core/function/gpg/GpgKeyManager.h b/src/core/function/gpg/GpgKeyManager.h
index 7bd45a1c..817179e1 100644
--- a/src/core/function/gpg/GpgKeyManager.h
+++ b/src/core/function/gpg/GpgKeyManager.h
@@ -68,7 +68,7 @@ class GPGFRONTEND_CORE_EXPORT GpgKeyManager
* @return false
*/
auto RevSign(const GpgFrontend::GpgKey& key,
- const GpgFrontend::SignIdArgsListPtr& signature_id) -> bool;
+ const GpgFrontend::SignIdArgsList& signature_id) -> bool;
/**
* @brief Set the Expire object
diff --git a/src/core/function/gpg/GpgKeyOpera.cpp b/src/core/function/gpg/GpgKeyOpera.cpp
index a5346655..92a969ae 100644
--- a/src/core/function/gpg/GpgKeyOpera.cpp
+++ b/src/core/function/gpg/GpgKeyOpera.cpp
@@ -51,9 +51,9 @@ GpgKeyOpera::GpgKeyOpera(int channel)
* Delete keys
* @param uidList key ids
*/
-void GpgKeyOpera::DeleteKeys(KeyIdArgsListPtr key_ids) {
+void GpgKeyOpera::DeleteKeys(KeyIdArgsList key_ids) {
GpgError err;
- for (const auto& tmp : *key_ids) {
+ for (const auto& tmp : key_ids) {
auto key = GpgKeyGetter::GetInstance(GetChannel()).GetKey(tmp);
if (key.IsGood()) {
err = CheckGpgError(gpgme_op_delete_ext(
@@ -532,8 +532,8 @@ auto GpgKeyOpera::ModifyTOFUPolicy(
}
void GpgKeyOpera::DeleteKey(const KeyId& key_id) {
- auto keys = std::make_unique<KeyIdArgsList>();
- keys->push_back(key_id);
- DeleteKeys(std::move(keys));
+ auto keys = KeyIdArgsList{};
+ keys.push_back(key_id);
+ DeleteKeys(keys);
}
} // namespace GpgFrontend
diff --git a/src/core/function/gpg/GpgKeyOpera.h b/src/core/function/gpg/GpgKeyOpera.h
index 7b8a01a1..0084d473 100644
--- a/src/core/function/gpg/GpgKeyOpera.h
+++ b/src/core/function/gpg/GpgKeyOpera.h
@@ -60,7 +60,7 @@ class GPGFRONTEND_CORE_EXPORT GpgKeyOpera
*
* @param key_ids
*/
- void DeleteKeys(KeyIdArgsListPtr key_ids);
+ void DeleteKeys(KeyIdArgsList key_ids);
/**
* @brief