From 97d13004e4f1cb33941a9be57c7e7662e223890b Mon Sep 17 00:00:00 2001 From: Saturneric Date: Mon, 6 Dec 2021 23:58:23 +0800 Subject: Improve UI & Functions --- src/gpg/function/GpgKeyOpera.cpp | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'src/gpg/function/GpgKeyOpera.cpp') diff --git a/src/gpg/function/GpgKeyOpera.cpp b/src/gpg/function/GpgKeyOpera.cpp index c60f9157..d0172a31 100644 --- a/src/gpg/function/GpgKeyOpera.cpp +++ b/src/gpg/function/GpgKeyOpera.cpp @@ -214,4 +214,23 @@ GpgFrontend::GpgError GpgFrontend::GpgKeyOpera::GenerateSubkey( auto err = gpgme_op_createsubkey(ctx, gpgme_key_t(key), algo, 0, expires, flags); return check_gpg_error(err); -} \ No newline at end of file +} + +GpgFrontend::GpgError GpgFrontend::GpgKeyOpera::ModifyPassword( + const GpgFrontend::GpgKey& key) { + if (ctx.GetInfo().GnupgVersion < "2.0.15") { + LOG(ERROR) << _("operator not support"); + return GPG_ERR_NOT_SUPPORTED; + } + auto err = gpgme_op_passwd(ctx, gpgme_key_t(key), 0); + return check_gpg_error(err); +} +GpgFrontend::GpgError GpgFrontend::GpgKeyOpera::ModifyTOFUPolicy( + const GpgFrontend::GpgKey& key, gpgme_tofu_policy_t tofu_policy) { + if (ctx.GetInfo().GnupgVersion < "2.1.10") { + LOG(ERROR) << _("operator not support"); + return GPG_ERR_NOT_SUPPORTED; + } + auto err = gpgme_op_tofu_policy(ctx, gpgme_key_t(key), tofu_policy); + return check_gpg_error(err); +} -- cgit v1.2.3 From 4f9ee73ffdda5a495d25ebf4f769a4c43aa78295 Mon Sep 17 00:00:00 2001 From: Saturneric Date: Tue, 7 Dec 2021 04:38:05 +0800 Subject: Test & Improve UI --- src/gpg/function/GpgKeyOpera.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'src/gpg/function/GpgKeyOpera.cpp') diff --git a/src/gpg/function/GpgKeyOpera.cpp b/src/gpg/function/GpgKeyOpera.cpp index d0172a31..cdf5ab24 100644 --- a/src/gpg/function/GpgKeyOpera.cpp +++ b/src/gpg/function/GpgKeyOpera.cpp @@ -63,17 +63,19 @@ void GpgFrontend::GpgKeyOpera::DeleteKeys( */ GpgFrontend::GpgError GpgFrontend::GpgKeyOpera::SetExpire( const GpgKey& key, const SubkeyId& subkey_fpr, - std::unique_ptr& expires) { + std::unique_ptr& expires) { unsigned long expires_time = 0; + + LOG(INFO) << "expires" << *expires; + if (expires != nullptr) { using namespace boost::posix_time; using namespace std::chrono; - expires_time = to_time_t(ptime(*expires)) - - system_clock::to_time_t(system_clock::now()); + expires_time = + to_time_t(*expires) - system_clock::to_time_t(system_clock::now()); } - LOG(INFO) << "GpgFrontend::GpgKeyOpera::SetExpire" << key.id() << subkey_fpr - << expires_time; + LOG(INFO) << key.id() << subkey_fpr << expires_time; GpgError err; if (subkey_fpr.empty()) -- cgit v1.2.3