[Kalle] signature verification and decoding of encrypted mails
This commit is contained in:
parent
14aa91a95b
commit
9e24b66475
@ -921,9 +921,9 @@ struct SignatureMetaData {
|
|||||||
|
|
||||||
/*! \ingroup groupSignAct
|
/*! \ingroup groupSignAct
|
||||||
\brief Checks whether the signature of a message is
|
\brief Checks whether the signature of a message is
|
||||||
valid. \c ciphertext specifies the message
|
valid. \c ciphertext specifies the signed message
|
||||||
as it was received by the MUA, \c cleartext
|
as it was received by the MUA, \c signaturetext is the
|
||||||
is the message with the signature(s) removed.
|
signature itself.
|
||||||
|
|
||||||
Depending on the configuration, MUAs might not need to use this.
|
Depending on the configuration, MUAs might not need to use this.
|
||||||
If \c sigmeta is non-null, the
|
If \c sigmeta is non-null, the
|
||||||
@ -932,7 +932,7 @@ struct SignatureMetaData {
|
|||||||
function call.
|
function call.
|
||||||
*/
|
*/
|
||||||
bool checkMessageSignature( const char* ciphertext,
|
bool checkMessageSignature( const char* ciphertext,
|
||||||
const char** cleartext,
|
const char* signaturetext,
|
||||||
struct SignatureMetaData* sigmeta );
|
struct SignatureMetaData* sigmeta );
|
||||||
|
|
||||||
/*! \ingroup groupSignAct
|
/*! \ingroup groupSignAct
|
||||||
|
@ -773,8 +773,30 @@ bool signMessage( const char* cleartext,
|
|||||||
return bOk;
|
return bOk;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool checkMessageSignature( const char* ciphertext, const char**
|
|
||||||
cleartext, struct SignatureMetaData* sigmeta ){ return true; }
|
bool checkMessageSignature( const char* ciphertext,
|
||||||
|
const char* signaturetext,
|
||||||
|
struct SignatureMetaData* sigmeta )
|
||||||
|
{
|
||||||
|
GpgmeCtx ctx;
|
||||||
|
GpgmeSigStat status;
|
||||||
|
GpgmeData datapart, sigpart;
|
||||||
|
|
||||||
|
gpgme_new( &ctx );
|
||||||
|
gpgme_data_new_from_mem( &datapart, ciphertext,
|
||||||
|
1+strlen( ciphertext ), 1 );
|
||||||
|
gpgme_data_new_from_mem( &sigpart, signaturetext,
|
||||||
|
1+strlen( signaturetext ), 1 );
|
||||||
|
|
||||||
|
gpgme_op_verify( ctx, sigpart, datapart, &status );
|
||||||
|
gpgme_data_release( datapart );
|
||||||
|
gpgme_data_release( sigpart );
|
||||||
|
gpgme_release( ctx );
|
||||||
|
|
||||||
|
// PENDING(khz) Differentiate better between various failures
|
||||||
|
// PENDING(khz) Fill sigmeta
|
||||||
|
return ( status == GPGME_SIG_STAT_GOOD );
|
||||||
|
}
|
||||||
|
|
||||||
bool storeCertificatesFromMessage(
|
bool storeCertificatesFromMessage(
|
||||||
const char* ciphertext ){ return true; }
|
const char* ciphertext ){ return true; }
|
||||||
|
Loading…
Reference in New Issue
Block a user