aboutsummaryrefslogtreecommitdiffstats
path: root/gpgcontext.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'gpgcontext.cpp')
-rw-r--r--gpgcontext.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/gpgcontext.cpp b/gpgcontext.cpp
index b9c2567..8f7c07e 100644
--- a/gpgcontext.cpp
+++ b/gpgcontext.cpp
@@ -590,12 +590,14 @@ void GpgContext::executeGpgCommand(QStringList arguments, QByteArray *stdOut, QB
}
/***
+ * if sigbuffer not set, the inbuffer should contain signed text
+ *
* TODO: return type should contain:
* -> list of sigs
* -> valid
* -> errors
*/
-gpgme_signature_t GpgContext::verify(QByteArray inBuffer) {
+gpgme_signature_t GpgContext::verify(QByteArray *inBuffer, QByteArray *sigBuffer) {
int error=0;
gpgme_data_t in;
@@ -603,10 +605,16 @@ gpgme_signature_t GpgContext::verify(QByteArray inBuffer) {
gpgme_signature_t sign;
gpgme_verify_result_t result;
- err = gpgme_data_new_from_mem(&in, inBuffer.data(), inBuffer.size(), 1);
+ err = gpgme_data_new_from_mem(&in, inBuffer->data(), inBuffer->size(), 1);
checkErr(err);
- err = gpgme_op_verify (mCtx, in, NULL, in);
+ if (sigBuffer != NULL ) {
+ gpgme_data_t sigdata;
+ err = gpgme_data_new_from_mem(&sigdata, sigBuffer->data(), sigBuffer->size(), 1);
+ err = gpgme_op_verify (mCtx, sigdata, in, NULL);
+ } else {
+ err = gpgme_op_verify (mCtx, in, NULL, in);
+ }
error = checkErr(err);
if (error != 0) {