aboutsummaryrefslogtreecommitdiffstats
path: root/src/core/GpgContext.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/GpgContext.h')
-rw-r--r--src/core/GpgContext.h210
1 files changed, 0 insertions, 210 deletions
diff --git a/src/core/GpgContext.h b/src/core/GpgContext.h
deleted file mode 100644
index 474530c6..00000000
--- a/src/core/GpgContext.h
+++ /dev/null
@@ -1,210 +0,0 @@
-/**
- * Copyright (C) 2021 Saturneric
- *
- * 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.
- *
- * GpgFrontend 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 GpgFrontend. If not, see <https://www.gnu.org/licenses/>.
- *
- * The initial version of the source code is inherited from
- * the gpg4usb project, which is under GPL-3.0-or-later.
- *
- * All the source code of GpgFrontend was modified and released by
- * Saturneric<[email protected]> starting on May 12, 2021.
- *
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- */
-
-#ifndef __SGPGMEPP_CONTEXT_H__
-#define __SGPGMEPP_CONTEXT_H__
-
-#include <optional>
-#include <string>
-
-#include "GpgFunctionObject.h"
-#include "GpgInfo.h"
-
-namespace GpgFrontend {
-
-/**
- * @brief
- *
- */
-struct GpgContextInitArgs {
- // make no sense for gpg2
- bool independent_database = false; ///<
- std::string db_path = {};
-
- bool gpg_alone = false;
- std::string gpg_path = {};
-
- bool test_mode = false;
- bool ascii = true;
- bool offline_mode = false;
- bool auto_import_missing_key = false;
-
- bool custom_gpgconf = false;
- std::string custom_gpgconf_path;
-
- bool use_pinentry = false;
-
- GpgContextInitArgs() = default;
-};
-
-/**
- * @brief
- *
- */
-class GPGFRONTEND_CORE_EXPORT GpgContext
- : public QObject,
- public SingletonFunctionObject<GpgContext> {
- Q_OBJECT
- public:
- /**
- * @brief Construct a new Gpg Context object
- *
- * @param args
- */
- explicit GpgContext(const GpgContextInitArgs& args = {});
-
- /**
- * @brief Construct a new Gpg Context object
- *
- * @param channel
- */
- explicit GpgContext(int channel);
-
- /**
- * @brief Destroy the Gpg Context object
- *
- */
- ~GpgContext() override = default;
-
- /**
- * @brief
- *
- * @return true
- * @return false
- */
- [[nodiscard]] bool good() const;
-
- /**
- * @brief Get the Info object
- *
- * @return const GpgInfo&
- */
- [[nodiscard]] const GpgInfo& GetInfo(bool refresh = false);
-
- /**
- * @brief
- *
- * @return gpgme_ctx_t
- */
- operator gpgme_ctx_t() const { return _ctx_ref.get(); }
-
- private:
- GpgInfo info_{}; ///<
- GpgContextInitArgs args_{}; ///<
- bool extend_info_loaded_ = false;
- std::shared_mutex preload_lock_{};
-
- /**
- * @brief
- *
- */
- void post_init_ctx();
-
- /**
- * @brief
- *
- * @return std::string
- */
- std::string need_user_input_passphrase();
-
- /**
- * @brief Construct a new std::check component existence object
- *
- */
- std::optional<std::string> check_binary_chacksum(std::filesystem::path);
-
- /**
- * @brief
- *
- */
- struct _ctx_ref_deleter {
- void operator()(gpgme_ctx_t _ctx);
- };
-
- using CtxRefHandler =
- std::unique_ptr<struct gpgme_context, _ctx_ref_deleter>; ///<
- CtxRefHandler _ctx_ref = nullptr; ///<
- bool good_ = true; ///<
-
- signals:
- /**
- * @brief
- *
- */
- void SignalNeedUserInputPassphrase();
-
- public:
- /**
- * @brief
- *
- * @param opaque
- * @param uid_hint
- * @param passphrase_info
- * @param last_was_bad
- * @param fd
- * @return gpgme_error_t
- */
- static gpgme_error_t test_passphrase_cb(void* opaque, const char* uid_hint,
- const char* passphrase_info,
- int last_was_bad, int fd);
-
- /**
- * @brief
- *
- * @param opaque
- * @param uid_hint
- * @param passphrase_info
- * @param last_was_bad
- * @param fd
- * @return gpgme_error_t
- */
- static gpgme_error_t custom_passphrase_cb(void* opaque, const char* uid_hint,
- const char* passphrase_info,
- int last_was_bad, int fd);
-
- /**
- * @brief
- *
- * @param hook
- * @param keyword
- * @param args
- * @return gpgme_error_t
- */
- static gpgme_error_t test_status_cb(void* hook, const char* keyword,
- const char* args);
-
- /**
- * @brief Set the Passphrase Cb object
- *
- * @param func
- */
- void SetPassphraseCb(gpgme_passphrase_cb_t func) const;
-};
-} // namespace GpgFrontend
-
-#endif // __SGPGMEPP_CONTEXT_H__ \ No newline at end of file