diff options
| author | Karl-Heinz Zimmer <[email protected]> | 2002-06-27 08:21:58 +0000 | 
|---|---|---|
| committer | Karl-Heinz Zimmer <[email protected]> | 2002-06-27 08:21:58 +0000 | 
| commit | 095eef179277e6bec2baf597652be35d6142d1f4 (patch) | |
| tree | a7cae8d04ccf2e29dcdd333662fc90d039adbdf9 | |
| parent | Bugfix: enable function receiverCertificateDaysLeftToExpiry(). (diff) | |
| download | gpgme-095eef179277e6bec2baf597652be35d6142d1f4.tar.gz gpgme-095eef179277e6bec2baf597652be35d6142d1f4.zip | |
Missing implementation bug fixed: Return both error id and error plain text from decryptMessage().
| -rw-r--r-- | gpgmeplug/cryptplug.h | 4 | ||||
| -rw-r--r-- | gpgmeplug/gpgmeplug.c | 18 | 
2 files changed, 19 insertions, 3 deletions
| diff --git a/gpgmeplug/cryptplug.h b/gpgmeplug/cryptplug.h index 7b544e6f..b978fb70 100644 --- a/gpgmeplug/cryptplug.h +++ b/gpgmeplug/cryptplug.h @@ -1675,7 +1675,9 @@ bool decryptMessage( const char* ciphertext,                       bool        cipherIsBinary,                       int         cipherLen,                       const char** cleartext, -                     const char* certificate ); +                     const char* certificate, +                     int* errId, +                     char** errTxt );  /*! \ingroup groupCryptAct     \brief Combines the functionality of diff --git a/gpgmeplug/gpgmeplug.c b/gpgmeplug/gpgmeplug.c index d56a6fc6..25f7e2ae 100644 --- a/gpgmeplug/gpgmeplug.c +++ b/gpgmeplug/gpgmeplug.c @@ -1797,7 +1797,9 @@ bool decryptMessage( const char* ciphertext,                       bool        cipherIsBinary,                       int         cipherLen,                       const char** cleartext, -                     const char* certificate ) +                     const char* certificate, +                     int* errId, +                     char** errTxt )  {    GpgmeCtx ctx;    GpgmeError err; @@ -1827,7 +1829,19 @@ bool decryptMessage( const char* ciphertext,    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 );    rCiph = gpgme_data_release_and_get_mem( gPlaintext,  &rCLen ); | 
