aboutsummaryrefslogtreecommitdiffstats
path: root/src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp')
-rw-r--r--src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp244
1 files changed, 128 insertions, 116 deletions
diff --git a/src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp b/src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp
index b19db5b2..618275f9 100644
--- a/src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp
+++ b/src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp
@@ -1,5 +1,5 @@
/**
- * Copyright (C) 2021 Saturneric
+ * Copyright (C) 2021 Saturneric <[email protected]>
*
* This file is part of GpgFrontend.
*
@@ -20,7 +20,7 @@
* 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.
+ * Saturneric <[email protected]> starting on May 12, 2021.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*
@@ -28,188 +28,200 @@
#include "GpgVerifyResultAnalyse.h"
-#include <boost/format.hpp>
-
#include "GpgFrontend.h"
-#include "core/GpgConstants.h"
-#include "function/gpg/GpgKeyGetter.h"
+#include "core/GpgModel.h"
+#include "core/function/gpg/GpgKeyGetter.h"
+#include "core/utils/CommonUtils.h"
+#include "core/utils/LocalizedUtils.h"
GpgFrontend::GpgVerifyResultAnalyse::GpgVerifyResultAnalyse(
GpgError error, GpgVerifyResult result)
- : error_(error), result_(std::move(result)) {}
+ : error_(error), result_(result) {}
-void GpgFrontend::GpgVerifyResultAnalyse::do_analyse() {
- SPDLOG_DEBUG("started");
+void GpgFrontend::GpgVerifyResultAnalyse::doAnalyse() {
+ auto *result = this->result_.GetRaw();
- stream_ << "[#] " << _("Verify Operation") << " ";
+ stream_ << "# " << tr("Verify Operation") << " ";
- if (gpgme_err_code(error_) == GPG_ERR_NO_ERROR)
- stream_ << "[" << _("Success") << "]" << std::endl;
- else {
- stream_ << "[" << _("Failed") << "] " << gpgme_strerror(error_)
- << std::endl;
- set_status(-1);
+ if (gpgme_err_code(error_) == GPG_ERR_NO_ERROR) {
+ stream_ << " - " << tr("Success") << " " << Qt::endl;
+ } else {
+ stream_ << " - " << tr("Failed") << ": " << gpgme_strerror(error_)
+ << Qt::endl;
+ setStatus(-1);
}
- if (result_ != nullptr && result_->signatures != nullptr) {
- stream_ << "------------>" << std::endl;
- auto sign = result_->signatures;
+ if (result != nullptr && result->signatures != nullptr) {
+ stream_ << Qt::endl;
+ auto *sign = result->signatures;
+
+ stream_ << "-> " << tr("Signed On") << "(" << tr("UTC") << ")"
+ << ": " << QDateTime::fromSecsSinceEpoch(sign->timestamp).toString()
+ << Qt::endl;
- stream_ << "[>] " << _("Signed On") << "(" << _("UTC") << ")"
- << " "
- << boost::posix_time::to_iso_extended_string(
- boost::posix_time::from_time_t(sign->timestamp))
- << std::endl;
+ stream_ << "-> " << tr("Signed On") << "(" << tr("Localized") << ")"
+ << ": " << GetFormatedDateByTimestamp(sign->timestamp) << Qt::endl;
- stream_ << std::endl << "[>] " << _("Signatures List") << ":" << std::endl;
+ stream_ << Qt::endl << "## " << tr("Signatures List") << ":" << Qt::endl;
+ stream_ << Qt::endl;
- bool canContinue = true;
+ bool can_continue = true;
int count = 1;
- while (sign && canContinue) {
- stream_ << boost::format(_("Signature [%1%]:")) % count++ << std::endl;
+ while ((sign != nullptr) && can_continue) {
+ stream_ << "### " << tr("Signature [%1]:").arg(count++) << Qt::endl;
+ stream_ << "- " << tr("Status") << ": ";
switch (gpg_err_code(sign->status)) {
case GPG_ERR_BAD_SIGNATURE:
- stream_ << _("A Bad Signature.") << std::endl;
+ stream_ << tr("A Bad Signature.") << Qt::endl;
print_signer(stream_, sign);
- stream_ << _("This Signature is invalid.") << std::endl;
- canContinue = false;
- set_status(-1);
+ stream_ << tr("This Signature is invalid.") << Qt::endl;
+ can_continue = false;
+ setStatus(-1);
break;
case GPG_ERR_NO_ERROR:
- stream_ << _("A") << " ";
- if (sign->summary & GPGME_SIGSUM_GREEN) {
- stream_ << _("Good") << " ";
+ stream_ << tr("A") << " ";
+ if ((sign->summary & GPGME_SIGSUM_GREEN) != 0) {
+ stream_ << tr("Good") << " ";
}
- if (sign->summary & GPGME_SIGSUM_RED) {
- stream_ << _("Bad") << " ";
+ if ((sign->summary & GPGME_SIGSUM_RED) != 0) {
+ stream_ << tr("Bad") << " ";
}
- if (sign->summary & GPGME_SIGSUM_SIG_EXPIRED) {
- stream_ << _("Expired") << " ";
+ if ((sign->summary & GPGME_SIGSUM_SIG_EXPIRED) != 0) {
+ stream_ << tr("Expired") << " ";
}
- if (sign->summary & GPGME_SIGSUM_KEY_MISSING) {
- stream_ << _("Missing Key's") << " ";
+ if ((sign->summary & GPGME_SIGSUM_KEY_MISSING) != 0) {
+ stream_ << tr("Missing Key's") << " ";
}
- if (sign->summary & GPGME_SIGSUM_KEY_REVOKED) {
- stream_ << _("Revoked Key's") << " ";
+ if ((sign->summary & GPGME_SIGSUM_KEY_REVOKED) != 0) {
+ stream_ << tr("Revoked Key's") << " ";
}
- if (sign->summary & GPGME_SIGSUM_KEY_EXPIRED) {
- stream_ << _("Expired Key's") << " ";
+ if ((sign->summary & GPGME_SIGSUM_KEY_EXPIRED) != 0) {
+ stream_ << tr("Expired Key's") << " ";
}
- if (sign->summary & GPGME_SIGSUM_CRL_MISSING) {
- stream_ << _("Missing CRL's") << " ";
+ if ((sign->summary & GPGME_SIGSUM_CRL_MISSING) != 0) {
+ stream_ << tr("Missing CRL's") << " ";
}
- if (sign->summary & GPGME_SIGSUM_VALID) {
- stream_ << _("Signature Fully Valid.") << std::endl;
+ if ((sign->summary & GPGME_SIGSUM_VALID) != 0) {
+ stream_ << tr("Signature Fully Valid.") << Qt::endl;
} else {
- stream_ << _("Signature Not Fully Valid.") << std::endl;
- stream_ << _("(May used a subkey to sign)") << std::endl;
+ stream_ << tr("Signature Not Fully Valid.") << Qt::endl;
+ stream_ << tr("(Adjust Trust Level to make it Fully Vaild)")
+ << Qt::endl;
}
- if (!(sign->status & GPGME_SIGSUM_KEY_MISSING)) {
- if (!print_signer(stream_, sign)) set_status(0);
+ if ((sign->status & GPGME_SIGSUM_KEY_MISSING) == 0U) {
+ if (!print_signer(stream_, sign)) setStatus(0);
} else {
- stream_ << _("Key is NOT present with ID 0x") << sign->fpr
- << std::endl;
+ stream_ << tr("Key is NOT present with ID 0x") << sign->fpr
+ << Qt::endl;
}
- set_status(1);
+ setStatus(1);
break;
case GPG_ERR_NO_PUBKEY:
- stream_ << _("A signature could NOT be verified due to a Missing Key")
- << std::endl;
- set_status(-2);
+ stream_
+ << tr("A signature could NOT be verified due to a Missing Key")
+ << Qt::endl;
+ setStatus(-2);
break;
case GPG_ERR_CERT_REVOKED:
- stream_ << _("A signature is valid but the key used to verify the "
- "signature has been revoked")
- << std::endl;
+ stream_ << tr("A signature is valid but the key used to verify the "
+ "signature has been revoked")
+ << Qt::endl;
if (!print_signer(stream_, sign)) {
- set_status(0);
+ setStatus(0);
}
- set_status(-1);
+ setStatus(-1);
break;
case GPG_ERR_SIG_EXPIRED:
- stream_ << _("A signature is valid but expired") << std::endl;
+ stream_ << tr("A signature is valid but expired") << Qt::endl;
if (!print_signer(stream_, sign)) {
- set_status(0);
+ setStatus(0);
}
- set_status(-1);
+ setStatus(-1);
break;
case GPG_ERR_KEY_EXPIRED:
- stream_ << _("A signature is valid but the key used to "
- "verify the signature has expired.")
- << std::endl;
+ stream_ << tr("A signature is valid but the key used to "
+ "verify the signature has expired.")
+ << Qt::endl;
if (!print_signer(stream_, sign)) {
- set_status(0);
+ setStatus(0);
}
break;
case GPG_ERR_GENERAL:
- stream_ << _("There was some other error which prevented "
- "the signature verification.")
- << std::endl;
+ stream_ << tr("There was some other error which prevented "
+ "the signature verification.")
+ << Qt::endl;
status_ = -1;
- canContinue = false;
+ can_continue = false;
break;
default:
- auto fpr = std::string(sign->fpr);
- stream_ << _("Error for key with fingerprint") << " "
- << GpgFrontend::beautify_fingerprint(fpr);
- set_status(-1);
+ auto fpr = QString(sign->fpr);
+ stream_ << tr("Error for key with fingerprint") << " "
+ << GpgFrontend::BeautifyFingerprint(fpr);
+ setStatus(-1);
}
- stream_ << std::endl;
+ stream_ << Qt::endl;
sign = sign->next;
}
- stream_ << "<------------" << std::endl;
+ stream_ << Qt::endl;
} else {
stream_
- << "[>] "
- << _("Could not find information that can be used for verification.")
- << std::endl;
- set_status(0);
+ << "-> "
+ << tr("Could not find information that can be used for verification.")
+ << Qt::endl;
+ setStatus(0);
return;
}
}
-bool GpgFrontend::GpgVerifyResultAnalyse::print_signer(
- std::stringstream &stream, gpgme_signature_t sign) {
- bool keyFound = true;
+auto GpgFrontend::GpgVerifyResultAnalyse::print_signer(QTextStream &stream,
+ gpgme_signature_t sign)
+ -> bool {
+ bool key_found = true;
auto key = GpgFrontend::GpgKeyGetter::GetInstance().GetKey(sign->fpr);
if (!key.IsGood()) {
- stream << " " << _("Signed By") << ": "
- << "<" << _("Unknown") << ">" << std::endl;
- set_status(0);
- keyFound = false;
+ stream << "- " << tr("Signed By") << ": "
+ << "<" << tr("Unknown") << ">" << Qt::endl;
+ setStatus(0);
+ key_found = false;
} else {
- stream << " " << _("Signed By") << ": "
- << key.GetUIDs()->front().GetUID() << std::endl;
+ stream << "- " << tr("Signed By") << ": " << key.GetUIDs()->front().GetUID()
+ << Qt::endl;
+ }
+ if (sign->pubkey_algo != 0U) {
+ stream << "- " << tr("Public Key Algo") << ": "
+ << gpgme_pubkey_algo_name(sign->pubkey_algo) << Qt::endl;
+ }
+ if (sign->hash_algo != 0U) {
+ stream << "- " << tr("Hash Algo") << ": "
+ << gpgme_hash_algo_name(sign->hash_algo) << Qt::endl;
}
- if (sign->pubkey_algo)
- stream << " " << _("Public Key Algo") << ": "
- << gpgme_pubkey_algo_name(sign->pubkey_algo) << std::endl;
- if (sign->hash_algo)
- stream << " " << _("Hash Algo") << ": "
- << gpgme_hash_algo_name(sign->hash_algo) << std::endl;
- if (sign->timestamp)
- stream << " " << _("Date") << "(" << _("UTC") << ")"
- << ": "
- << boost::posix_time::to_iso_extended_string(
- boost::posix_time::from_time_t(sign->timestamp))
- << std::endl;
- stream << std::endl;
- return keyFound;
+ if (sign->timestamp != 0U) {
+ stream << "- " << tr("Date") << "(" << tr("UTC") << ")"
+ << ": " << QDateTime::fromSecsSinceEpoch(sign->timestamp).toString()
+ << Qt::endl;
+
+ stream << "- " << tr("Date") << "(" << tr("Localized") << ")"
+ << ": " << GetFormatedDateByTimestamp(sign->timestamp) << Qt::endl;
+ }
+ stream << Qt::endl;
+ return key_found;
}
-gpgme_signature_t GpgFrontend::GpgVerifyResultAnalyse::GetSignatures() const {
- if (result_)
- return result_->signatures;
- else
- return nullptr;
+auto GpgFrontend::GpgVerifyResultAnalyse::GetSignatures() const
+ -> gpgme_signature_t {
+ if (result_.IsGood()) {
+ return result_.GetRaw()->signatures;
+ }
+ return nullptr;
}
-GpgFrontend::GpgVerifyResult
-GpgFrontend::GpgVerifyResultAnalyse::TakeChargeOfResult() {
- return std::move(result_);
+
+auto GpgFrontend::GpgVerifyResultAnalyse::TakeChargeOfResult()
+ -> GpgFrontend::GpgVerifyResult {
+ return result_;
}