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
This commit is contained in:
parent
b0bfb987af
commit
704a1b05b3
@ -1427,6 +1427,8 @@ struct SignatureMetaData {
|
|||||||
*/
|
*/
|
||||||
bool checkMessageSignature( const char* ciphertext,
|
bool checkMessageSignature( const char* ciphertext,
|
||||||
const char* signaturetext,
|
const char* signaturetext,
|
||||||
|
bool signatureIsBinary,
|
||||||
|
int signatureLen,
|
||||||
struct SignatureMetaData* sigmeta );
|
struct SignatureMetaData* sigmeta );
|
||||||
|
|
||||||
/*! \ingroup groupSignAct
|
/*! \ingroup groupSignAct
|
||||||
|
@ -973,6 +973,8 @@ sig_status_to_string( GpgmeSigStat status )
|
|||||||
|
|
||||||
bool checkMessageSignature( const char* ciphertext,
|
bool checkMessageSignature( const char* ciphertext,
|
||||||
const char* signaturetext,
|
const char* signaturetext,
|
||||||
|
bool signatureIsBinary,
|
||||||
|
int signatureLen,
|
||||||
struct SignatureMetaData* sigmeta )
|
struct SignatureMetaData* sigmeta )
|
||||||
{
|
{
|
||||||
GpgmeCtx ctx;
|
GpgmeCtx ctx;
|
||||||
@ -987,10 +989,18 @@ bool checkMessageSignature( const char* ciphertext,
|
|||||||
|
|
||||||
gpgme_new( &ctx );
|
gpgme_new( &ctx );
|
||||||
gpgme_set_protocol (ctx, GPGMEPLUG_PROTOCOL);
|
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,
|
gpgme_data_new_from_mem( &datapart, ciphertext,
|
||||||
1+strlen( ciphertext ), 1 );
|
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_op_verify( ctx, sigpart, datapart, &status );
|
||||||
gpgme_data_release( datapart );
|
gpgme_data_release( datapart );
|
||||||
|
Loading…
Reference in New Issue
Block a user