aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorubbo <ubbo@34ebc366-c3a9-4b3c-9f84-69acf7962910>2010-12-17 00:15:06 +0000
committerubbo <ubbo@34ebc366-c3a9-4b3c-9f84-69acf7962910>2010-12-17 00:15:06 +0000
commit36baeab697c592145a43bf3c7061e0d6222b6aa1 (patch)
treefb71d33450f5d11f49105106190d8394411b7e69
parentsome more playing with sign&verify, signing kind of works now and has menu entry (diff)
downloadgpg4usb-36baeab697c592145a43bf3c7061e0d6222b6aa1.tar.gz
gpg4usb-36baeab697c592145a43bf3c7061e0d6222b6aa1.zip
verify does something useful now, output to stdout
git-svn-id: http://cpunk.de/svn/src/gpg4usb/trunk@405 34ebc366-c3a9-4b3c-9f84-69acf7962910
-rw-r--r--context.cpp32
-rw-r--r--gpgwin.cpp14
-rw-r--r--gpgwin.h2
3 files changed, 44 insertions, 4 deletions
diff --git a/context.cpp b/context.cpp
index e6c0aae..4b2878c 100644
--- a/context.cpp
+++ b/context.cpp
@@ -497,8 +497,31 @@ void Context::executeGpgCommand(QStringList arguments, QByteArray *stdOut, QByte
* -> list of sigs
* -> valid
*/
-void Context::verify(QByteArray in) {
+void Context::verify(QByteArray inBuffer) {
+ gpgme_data_t in;
+ gpgme_error_t err;
+ gpgme_signature_t sign;
+ gpgme_verify_result_t result;
+
+ err = gpgme_data_new_from_mem(&in, inBuffer.data(), inBuffer.size(), 1);
+ checkErr(err);
+
+ err = gpgme_op_verify (mCtx, in, NULL, in);
+ checkErr(err);
+
+ result = gpgme_op_verify_result (mCtx);
+
+ sign = result->signatures;
+
+ qDebug() << "sig summary: " << sign->summary;
+ qDebug() << "sig fingerprint: " << sign->fpr;
+ qDebug() << "sig status: " << sign->status << " - " << gpg_err_code(sign->status) << " - " << gpg_strerror(sign->status);
+ qDebug() << "sig validity: " << sign->validity;
+ qDebug() << "sig validity reason: " << sign->validity_reason << " - " << gpg_err_code(sign->validity_reason) << " - " << gpgme_strerror(sign->validity_reason);
+
+
+ /*
static const char test_text1[] = "Just GNU it!\n";
static const char test_sig1[] =
"-----BEGIN PGP SIGNATURE-----\n"
@@ -520,7 +543,7 @@ void Context::verify(QByteArray in) {
checkErr(err);
err = gpgme_data_new_from_mem(&sig, test_sig1, strlen (test_sig1), 0);
checkErr(err);
-
+*/
/** gpgme_op_verify (gpgme_ctx_t CTX,
gpgme_data_t SIG, gpgme_data_t SIGNED_TEXT,
gpgme_data_t PLAIN)
@@ -532,7 +555,8 @@ If SIG is a detached
PLAIN should be a writable data object
*
*/
- err = gpgme_op_verify (mCtx, sig, text, NULL);
+
+/* err = gpgme_op_verify (mCtx, sig, text, NULL);
result = gpgme_op_verify_result (mCtx);
gpgme_signature_t sign;
@@ -574,7 +598,7 @@ If SIG is a detached
qDebug() << "sig validity: " << sign->validity;
qDebug() << "sig validity reason: " << sign->validity_reason << " - " << gpg_err_code(sign->validity_reason) << " - " << gpgme_strerror(sign->validity_reason);
-
+*/
}
diff --git a/gpgwin.cpp b/gpgwin.cpp
index 3aa1b62..77e10d7 100644
--- a/gpgwin.cpp
+++ b/gpgwin.cpp
@@ -224,6 +224,13 @@ void GpgWin::createActions()
signAct->setToolTip(tr("Sign Message"));
connect(signAct, SIGNAL(triggered()), this, SLOT(sign()));
+ verifyAct = new QAction(tr("&Verify"), this);
+ //signAct->setIcon(QIcon(iconPath + "encrypted.png"));
+ //signAct->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_E));
+ verifyAct->setToolTip(tr("Verify Message"));
+ connect(verifyAct, SIGNAL(triggered()), this, SLOT(verify()));
+
+
/** Key Menu
*/
importKeyFromFileAct = new QAction(tr("&File"), this);
@@ -295,6 +302,7 @@ void GpgWin::createMenus()
cryptMenu->addAction(encryptAct);
cryptMenu->addAction(decryptAct);
cryptMenu->addAction(signAct);
+ cryptMenu->addAction(verifyAct);
cryptMenu->addSeparator();
cryptMenu->addAction(fileEncryptionAct);
@@ -720,6 +728,12 @@ void GpgWin::sign() {
}
}
+void GpgWin::verify() {
+
+ mCtx->verify(edit->toPlainText().toUtf8());
+
+}
+
void GpgWin::importKeyDialog()
{
diff --git a/gpgwin.h b/gpgwin.h
index 47e0700..9a1db25 100644
--- a/gpgwin.h
+++ b/gpgwin.h
@@ -82,6 +82,7 @@ public slots:
void openTutorial();
void checkAttachmentFolder();
void sign();
+ void verify();
// void dropEvent(QDropEvent *event);
private:
@@ -123,6 +124,7 @@ private:
QAction *encryptAct;
QAction *decryptAct;
QAction *signAct;
+ QAction *verifyAct;
QAction *importKeyDialogAct;
QAction *importKeyFromFileAct;
QAction *importKeyFromEditAct;