aboutsummaryrefslogtreecommitdiffstats
path: root/verifynotification.cpp
diff options
context:
space:
mode:
authorNils Achtergarde <[email protected]>2018-01-04 21:39:25 +0000
committerNils Achtergarde <[email protected]>2018-01-04 21:39:25 +0000
commitb36dc4d79f446ae69aeb85137663a4e0ca23eba2 (patch)
tree23d0ae5e94e874064143735c249a2ad2cb95ad16 /verifynotification.cpp
parentadded .gitignore with mocfiles-dir and objectfiles-dir (diff)
downloadgpg4usb-b36dc4d79f446ae69aeb85137663a4e0ca23eba2.tar.gz
gpg4usb-b36dc4d79f446ae69aeb85137663a4e0ca23eba2.zip
put *.h and *.cpp to src-subdirectory
Diffstat (limited to 'verifynotification.cpp')
-rw-r--r--verifynotification.cpp185
1 files changed, 0 insertions, 185 deletions
diff --git a/verifynotification.cpp b/verifynotification.cpp
deleted file mode 100644
index 6e73961..0000000
--- a/verifynotification.cpp
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
- * verifynotification.cpp
- *
- * Copyright 2008 gpg4usb-team <[email protected]>
- *
- * This file is part of gpg4usb.
- *
- * Gpg4usb 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.
- *
- * Gpg4usb 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 gpg4usb. If not, see <http://www.gnu.org/licenses/>
- */
-
-#include "verifynotification.h"
-
-VerifyNotification::VerifyNotification(QWidget *parent, GpgME::GpgContext *ctx, KeyList *keyList,QTextEdit *edit) :
- QWidget(parent)
-{
- mCtx = ctx;
- mKeyList = keyList;
- mTextpage = edit;
- verifyLabel = new QLabel(this);
-
- connect(mCtx, SIGNAL(keyDBChanged()), this, SLOT(slotRefresh()));
- connect(edit, SIGNAL(textChanged()), this, SLOT(close()));
-
- importFromKeyserverAct = new QAction(tr("Import missing key from Keyserver"), this);
- connect(importFromKeyserverAct, SIGNAL(triggered()), this, SLOT(slotImportFromKeyserver()));
-
- showVerifyDetailsAct = new QAction(tr("Show detailed verify information"), this);
- connect(showVerifyDetailsAct, SIGNAL(triggered()), this, SLOT(slotShowVerifyDetails()));
-
- detailMenu = new QMenu(this);
- detailMenu->addAction(showVerifyDetailsAct);
- detailMenu->addAction(importFromKeyserverAct);
- importFromKeyserverAct->setVisible(false);
-
- keysNotInList = new QStringList();
- detailsButton = new QPushButton(tr("Details"),this);
- detailsButton->setMenu(detailMenu);
- QHBoxLayout *notificationWidgetLayout = new QHBoxLayout(this);
- notificationWidgetLayout->setContentsMargins(10,0,0,0);
- notificationWidgetLayout->addWidget(verifyLabel,2);
- notificationWidgetLayout->addWidget(detailsButton);
- this->setLayout(notificationWidgetLayout);
-}
-
-void VerifyNotification::slotImportFromKeyserver()
-{
- KeyServerImportDialog *importDialog =new KeyServerImportDialog(mCtx,mKeyList, this);
- importDialog->slotImport(*keysNotInList);
-}
-
-void VerifyNotification::setVerifyLabel(QString text, verify_label_status verifyLabelStatus)
-{
- QString color;
- verifyLabel->setText(text);
- switch (verifyLabelStatus) {
- case VERIFY_ERROR_OK: color="#ccffcc";
- break;
- case VERIFY_ERROR_WARN: color="#ececba";
- break;
- case VERIFY_ERROR_CRITICAL: color="#ff8080";
- break;
- default:
- break;
- }
-
- verifyLabel->setAutoFillBackground(true);
- QPalette status = verifyLabel->palette();
- status.setColor(QPalette::Background, color);
- verifyLabel->setPalette(status);
-}
-
-void VerifyNotification::showImportAction(bool visible)
-{
- importFromKeyserverAct->setVisible(visible);
-}
-
-void VerifyNotification::slotShowVerifyDetails()
-{
- QByteArray text = mTextpage->toPlainText().toUtf8();
- mCtx->preventNoDataErr(&text);
- new VerifyDetailsDialog(this, mCtx, mKeyList, &text);
-}
-
-bool VerifyNotification::slotRefresh()
-{
- verify_label_status verifyStatus=VERIFY_ERROR_OK;
-
- QByteArray text = mTextpage->toPlainText().toUtf8();
- mCtx->preventNoDataErr(&text);
- int textIsSigned = mCtx->textIsSigned(text);
-
- gpgme_signature_t sign = mCtx->verify(&text);
-
- if (sign == NULL) {
- return false;
- }
-
- QString verifyLabelText;
- bool unknownKeyFound=false;
-
- while (sign) {
-
- switch (gpg_err_code(sign->status))
- {
- case GPG_ERR_NO_PUBKEY:
- {
- verifyStatus=VERIFY_ERROR_WARN;
- verifyLabelText.append(tr("Key not present with id 0x")+QString(sign->fpr));
- this->keysNotInList->append(sign->fpr);
- unknownKeyFound=true;
- break;
- }
- case GPG_ERR_NO_ERROR:
- {
- GpgKey key = mCtx->getKeyByFpr(sign->fpr);
- verifyLabelText.append(key.name);
- if (!key.email.isEmpty()) {
- verifyLabelText.append("<"+key.email+">");
- }
- break;
- }
- case GPG_ERR_BAD_SIGNATURE:
- {
- textIsSigned = 3;
- verifyStatus=VERIFY_ERROR_CRITICAL;
- GpgKey key = mCtx->getKeyById(sign->fpr);
- verifyLabelText.append(key.name);
- if (!key.email.isEmpty()) {
- verifyLabelText.append("<"+key.email+">");
- }
- break;
- }
- default:
- {
- //textIsSigned = 3;
- verifyStatus=VERIFY_ERROR_WARN;
- //GpgKey key = mKeyList->getKeyByFpr(sign->fpr);
- verifyLabelText.append(tr("Error for key with fingerprint ")+mCtx->beautifyFingerprint(QString(sign->fpr)));
- break;
- }
- }
- verifyLabelText.append("\n");
- sign = sign->next;
- }
-
- switch (textIsSigned)
- {
- case 3:
- {
- verifyLabelText.prepend(tr("Error validating signature by: "));
- break;
- }
- case 2:
- {
- verifyLabelText.prepend(tr("Text was completely signed by: "));
- break;
- }
- case 1:
- {
- verifyLabelText.prepend(tr("Text was partially signed by: "));
- break;
- }
- }
-
- // If an unknown key is found, enable the importfromkeyserveraction
- this->showImportAction(unknownKeyFound);
-
- // Remove the last linebreak
- verifyLabelText.remove(verifyLabelText.length()-1,1);
-
- this->setVerifyLabel(verifyLabelText,verifyStatus);
-
- return true;
-}