diff options
-rw-r--r-- | context.cpp | 32 | ||||
-rw-r--r-- | gpgwin.cpp | 14 | ||||
-rw-r--r-- | gpgwin.h | 2 |
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); - +*/ } @@ -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() { @@ -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; |