aboutsummaryrefslogtreecommitdiffstats
path: root/src/ui/VerifyKeyDetailBox.cpp
diff options
context:
space:
mode:
authorSaturneric <[email protected]>2021-06-04 20:37:57 +0000
committerSaturneric <[email protected]>2021-06-04 20:37:57 +0000
commit9581b6799502f88acaccb14407bb1b7143c0ef71 (patch)
tree26b1a7bceeac20abbd47543291c6400bcc2890bc /src/ui/VerifyKeyDetailBox.cpp
parentAdd an operation to change the expiration date of the subkey. (diff)
downloadGpgFrontend-9581b6799502f88acaccb14407bb1b7143c0ef71.tar.gz
GpgFrontend-9581b6799502f88acaccb14407bb1b7143c0ef71.zip
Update the verification function.
Make the format of the generated ciphertext more beautiful. Adjust the width of the key list on the homepage. Add fingerprint display of subkey. Fix the compatibility issue of getKeyByFpr interface subkey. Improve the comprehensiveness of information processing for verification results. Signed-off-by: Saturneric <[email protected]>
Diffstat (limited to '')
-rw-r--r--src/ui/VerifyKeyDetailBox.cpp129
1 files changed, 98 insertions, 31 deletions
diff --git a/src/ui/VerifyKeyDetailBox.cpp b/src/ui/VerifyKeyDetailBox.cpp
index 4252e10f..c393f468 100644
--- a/src/ui/VerifyKeyDetailBox.cpp
+++ b/src/ui/VerifyKeyDetailBox.cpp
@@ -31,7 +31,7 @@ VerifyKeyDetailBox::VerifyKeyDetailBox(QWidget *parent, GpgME::GpgContext *ctx,
this->mKeyList = keyList;
this->fpr = signature->fpr;
- auto *grid = new QGridLayout();
+ auto *vbox = new QVBoxLayout();
switch (gpg_err_code(signature->status)) {
case GPG_ERR_NO_PUBKEY: {
@@ -40,51 +40,66 @@ VerifyKeyDetailBox::VerifyKeyDetailBox(QWidget *parent, GpgME::GpgContext *ctx,
this->setTitle(tr("Key not present with id 0x") + signature->fpr);
+ auto grid = new QGridLayout();
+
grid->addWidget(new QLabel(tr("Status:")), 0, 0);
//grid->addWidget(new QLabel(tr("Fingerprint:")), 1, 0);
grid->addWidget(new QLabel(tr("Key not present in keylist")), 0, 1);
//grid->addWidget(new QLabel(signature->fpr), 1, 1);
grid->addWidget(importButton, 2, 0, 2, 1);
+
+ vbox->addLayout(grid);
break;
}
case GPG_ERR_NO_ERROR: {
- GpgKey key = mCtx->getKeyByFpr(signature->fpr);
-
- if(!key.good) break;
-
- this->setTitle(key.name);
- grid->addWidget(new QLabel(tr("Name:")), 0, 0);
- grid->addWidget(new QLabel(tr("EMail:")), 1, 0);
- grid->addWidget(new QLabel(tr("Fingerprint:")), 2, 0);
- grid->addWidget(new QLabel(tr("Status:")), 3, 0);
-
- grid->addWidget(new QLabel(key.name), 0, 1);
- grid->addWidget(new QLabel(key.email), 1, 1);
- grid->addWidget(new QLabel(beautifyFingerprint(signature->fpr)), 2, 1);
- grid->addWidget(new QLabel(tr("OK")), 3, 1);
-
+ auto gird = createKeyInfoGrid(signature);
+ if(gird != nullptr) {
+ vbox->addLayout(gird);
+ }
+ break;
+ }
+ case GPG_ERR_CERT_REVOKED: {
+ vbox->addWidget(new QLabel(tr("Cert Revoked")));
+ auto gird = createKeyInfoGrid(signature);
+ if (gird != nullptr) {
+ vbox->addLayout(gird);
+ }
+ break;
+ }
+ case GPG_ERR_SIG_EXPIRED: {
+ vbox->addWidget(new QLabel(tr("Signature Expired")));
+ auto gird = createKeyInfoGrid(signature);
+ if (gird != nullptr) {
+ vbox->addLayout(gird);
+ }
+ break;
+ }
+ case GPG_ERR_KEY_EXPIRED: {
+ vbox->addWidget(new QLabel(tr("Key Expired")));
+ auto gird = createKeyInfoGrid(signature);
+ if (gird != nullptr) {
+ vbox->addLayout(gird);
+ }
+ break;
+ }
+ case GPG_ERR_GENERAL: {
+ vbox->addWidget(new QLabel(tr("General Error")));
+ auto gird = createKeyInfoGrid(signature);
+ if (gird != nullptr) {
+ vbox->addLayout(gird);
+ }
break;
}
default: {
- GpgKey key = mCtx->getKeyByFpr(signature->fpr);
-
- if(!key.good) break;
-
this->setTitle(tr("Error for key with id 0x") + fpr);
- grid->addWidget(new QLabel(tr("Name:")), 0, 0);
- grid->addWidget(new QLabel(tr("EMail:")), 1, 0);
- grid->addWidget(new QLabel(tr("Status:")), 2, 0);
- grid->addWidget(new QLabel(tr("Fingerprint:")), 3, 0);
-
- grid->addWidget(new QLabel(key.name), 0, 1);
- grid->addWidget(new QLabel(key.email), 1, 1);
- grid->addWidget(new QLabel(gpg_strerror(signature->status)), 2, 1);
- grid->addWidget(new QLabel(beautifyFingerprint(key.fpr)), 3, 1);
-
+ auto gird = createKeyInfoGrid(signature);
+ if (gird != nullptr) {
+ vbox->addLayout(gird);
+ }
break;
}
}
- this->setLayout(grid);
+ this->setLayout(vbox);
}
void VerifyKeyDetailBox::slotImportFormKeyserver() {
@@ -99,3 +114,55 @@ QString VerifyKeyDetailBox::beautifyFingerprint(QString fingerprint) {
fingerprint.insert(static_cast<int>(5u * n + 4u), ' ');
return fingerprint;
}
+
+QGridLayout *VerifyKeyDetailBox::createKeyInfoGrid(gpgme_signature_t &signature) {
+
+ auto grid = new QGridLayout();
+ GpgKey key = mCtx->getKeyByFpr(signature->fpr);
+
+ if(!key.good) return nullptr;
+ grid->addWidget(new QLabel(tr("Name:")), 0, 0);
+ grid->addWidget(new QLabel(tr("Email:")), 1, 0);
+ grid->addWidget(new QLabel(tr("Fingerprint:")), 2, 0);
+ grid->addWidget(new QLabel(tr("Valid:")), 3, 0);
+ grid->addWidget(new QLabel(tr("Flags:")), 4, 0);
+
+ grid->addWidget(new QLabel(key.name), 0, 1);
+ grid->addWidget(new QLabel(key.email), 1, 1);
+ grid->addWidget(new QLabel(beautifyFingerprint(signature->fpr)), 2, 1);
+
+
+ if(signature->summary & GPGME_SIGSUM_VALID) {
+ grid->addWidget(new QLabel(tr("Fully Valid")), 3, 1);
+ } else {
+ grid->addWidget(new QLabel(tr("NOT Fully Valid")), 3, 1);
+ }
+
+ QString flags;
+ QTextStream textStream(&flags);
+
+ if(signature->summary & GPGME_SIGSUM_GREEN) {
+ textStream << tr("Good ");
+ }
+ if(signature->summary & GPGME_SIGSUM_RED) {
+ textStream << tr("Bad ");
+ }
+ if(signature->summary & GPGME_SIGSUM_SIG_EXPIRED) {
+ textStream << tr("Expired ");
+ }
+ if(signature->summary & GPGME_SIGSUM_KEY_MISSING) {
+ textStream << tr("Missing Key ");
+ }
+ if(signature->summary & GPGME_SIGSUM_KEY_REVOKED) {
+ textStream << tr("Revoked Key ");
+ }
+ if(signature->summary & GPGME_SIGSUM_KEY_EXPIRED) {
+ textStream << tr("Expired Key ");
+ }
+ if(signature->summary & GPGME_SIGSUM_CRL_MISSING) {
+ textStream << tr("Missing CRL ");
+ }
+
+ grid->addWidget(new QLabel(tr(flags.toUtf8().constData())), 4, 1);
+ return grid;
+}