diff options
author | Karl-Heinz Zimmer <[email protected]> | 2002-03-05 21:23:58 +0000 |
---|---|---|
committer | Karl-Heinz Zimmer <[email protected]> | 2002-03-05 21:23:58 +0000 |
commit | 704a1b05b324ca30ed9dd0dbbbfc849f8f56b914 (patch) | |
tree | e0b8c3123a1d08a115ed96be7c15263a1c16c3c6 | |
parent | 2002-03-05 Marcus Brinkmann <[email protected]> (diff) | |
download | gpgme-704a1b05b324ca30ed9dd0dbbbfc849f8f56b914.tar.gz gpgme-704a1b05b324ca30ed9dd0dbbbfc849f8f56b914.zip |
Changed interface: additionally we now pass the following parameters into the checkMessageSignature function: bool signatureIsBinary - telling us whether the signature is armored ASCII or binary data, int signatureLen - holding the TRUE length of the signature if (and only if) this is binary data
-rw-r--r-- | gpgmeplug/cryptplug.h | 4 | ||||
-rw-r--r-- | gpgmeplug/gpgmeplug.c | 16 |
2 files changed, 16 insertions, 4 deletions
diff --git a/gpgmeplug/cryptplug.h b/gpgmeplug/cryptplug.h index 9cdeb07a..1b1aeadf 100644 --- a/gpgmeplug/cryptplug.h +++ b/gpgmeplug/cryptplug.h @@ -427,7 +427,7 @@ SignEmail signEmail( void ); */ void setWarnSendUnsigned( bool ); - + /*! \ingroup groupConfigSign \brief Returns whether a warning should be emitted when the user tries to send an email message unsigned. @@ -1427,6 +1427,8 @@ struct SignatureMetaData { */ bool checkMessageSignature( const char* ciphertext, const char* signaturetext, + bool signatureIsBinary, + int signatureLen, struct SignatureMetaData* sigmeta ); /*! \ingroup groupSignAct diff --git a/gpgmeplug/gpgmeplug.c b/gpgmeplug/gpgmeplug.c index 0de5d491..d9d8ea1f 100644 --- a/gpgmeplug/gpgmeplug.c +++ b/gpgmeplug/gpgmeplug.c @@ -865,7 +865,7 @@ bool signMessage( const char* cleartext, break; } gpgme_set_include_certs (ctx, sendCerts); - + // PENDING(g10) Implement this //gpgme_set_signature_algorithm( ctx, config.signatureAlgorithm ); @@ -973,6 +973,8 @@ sig_status_to_string( GpgmeSigStat status ) bool checkMessageSignature( const char* ciphertext, const char* signaturetext, + bool signatureIsBinary, + int signatureLen, struct SignatureMetaData* sigmeta ) { GpgmeCtx ctx; @@ -987,10 +989,18 @@ bool checkMessageSignature( const char* ciphertext, gpgme_new( &ctx ); gpgme_set_protocol (ctx, GPGMEPLUG_PROTOCOL); + gpgme_set_armor (ctx, signatureIsBinary ? 0 : 1); +// gpgme_set_textmode (ctx, signatureIsBinary ? 0 : 1); + gpgme_data_new_from_mem( &datapart, ciphertext, 1+strlen( ciphertext ), 1 ); - gpgme_data_new_from_mem( &sigpart, signaturetext, - 1+strlen( signaturetext ), 1 ); + + gpgme_data_new_from_mem( &sigpart, + signaturetext, + signatureIsBinary + ? signatureLen + : (1+strlen( signaturetext )), + 1 ); gpgme_op_verify( ctx, sigpart, datapart, &status ); gpgme_data_release( datapart ); |