Missing implementation bug fixed: Return both error id and error plain text from decryptMessage().

This commit is contained in:
Karl-Heinz Zimmer 2002-06-27 08:21:58 +00:00
parent 71266fd6ea
commit 095eef1792
2 changed files with 19 additions and 3 deletions

View File

@ -1675,7 +1675,9 @@ bool decryptMessage( const char* ciphertext,
bool cipherIsBinary, bool cipherIsBinary,
int cipherLen, int cipherLen,
const char** cleartext, const char** cleartext,
const char* certificate ); const char* certificate,
int* errId,
char** errTxt );
/*! \ingroup groupCryptAct /*! \ingroup groupCryptAct
\brief Combines the functionality of \brief Combines the functionality of

View File

@ -1797,7 +1797,9 @@ bool decryptMessage( const char* ciphertext,
bool cipherIsBinary, bool cipherIsBinary,
int cipherLen, int cipherLen,
const char** cleartext, const char** cleartext,
const char* certificate ) const char* certificate,
int* errId,
char** errTxt )
{ {
GpgmeCtx ctx; GpgmeCtx ctx;
GpgmeError err; GpgmeError err;
@ -1827,7 +1829,19 @@ bool decryptMessage( const char* ciphertext,
gpgme_data_new( &gPlaintext ); gpgme_data_new( &gPlaintext );
gpgme_op_decrypt( ctx, gCiphertext, gPlaintext ); err = err = gpgme_op_decrypt( ctx, gCiphertext, gPlaintext );
if( err ) {
fprintf( stderr, "\ngpgme_op_decrypt() returned this error code: %i\n\n", err );
if( errId )
*errId = err;
if( errTxt ) {
const char* _errTxt = gpgme_strerror( err );
*errTxt = malloc( strlen( _errTxt ) + 1 );
if( *errTxt )
strcpy(*errTxt, _errTxt );
}
}
gpgme_data_release( gCiphertext ); gpgme_data_release( gCiphertext );
rCiph = gpgme_data_release_and_get_mem( gPlaintext, &rCLen ); rCiph = gpgme_data_release_and_get_mem( gPlaintext, &rCLen );