diff options
author | Karl-Heinz Zimmer <[email protected]> | 2002-03-21 21:48:33 +0000 |
---|---|---|
committer | Karl-Heinz Zimmer <[email protected]> | 2002-03-21 21:48:33 +0000 |
commit | 70251d0f5fd18a1b4330b1af3d6a2a8219bc23c7 (patch) | |
tree | 73b2f07983cbb260773056b8e0541214342e5b47 /gpgmeplug/gpgmeplug.c | |
parent | * util.h (struct) [!HAVE_FOPENCOOKIE]: Make sure off_t and ssize_t (diff) | |
download | gpgme-70251d0f5fd18a1b4330b1af3d6a2a8219bc23c7.tar.gz gpgme-70251d0f5fd18a1b4330b1af3d6a2a8219bc23c7.zip |
changed code according to our hack before CeBIT, we are giving *binary* data to the decryptMessage() and to the checkMessageSignature() methode instead of passing base64 encoded data to them
Diffstat (limited to 'gpgmeplug/gpgmeplug.c')
-rw-r--r-- | gpgmeplug/gpgmeplug.c | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/gpgmeplug/gpgmeplug.c b/gpgmeplug/gpgmeplug.c index 474e439d..5b856e8c 100644 --- a/gpgmeplug/gpgmeplug.c +++ b/gpgmeplug/gpgmeplug.c @@ -1204,8 +1204,8 @@ bool findCertificates( const char* addressee, char** certificates ) GpgmeKey rKey; const char *s; const char *s2; - bool bOk = false; - + int nFound = 0; + strcpy( *certificates, "" ); gpgme_new (&ctx); @@ -1215,21 +1215,25 @@ bool findCertificates( const char* addressee, char** certificates ) while( GPGME_No_Error == err ) { err = gpgme_op_keylist_next(ctx, &rKey); if( GPGME_No_Error == err ) { - bOk = true; s = gpgme_key_get_string_attr (rKey, GPGME_ATTR_USERID, NULL, 0); if( s ) { s2 = gpgme_key_get_string_attr (rKey, GPGME_ATTR_FPR, NULL, 0); if( s2 ) { + if( nFound ) + strcat(*certificates,"\1" ); strcat( *certificates, s ); strcat( *certificates, " (" ); strcat( *certificates, s2 ); - strcat( *certificates, ")\1" ); + strcat( *certificates, ")" ); + ++nFound; } } } } gpgme_op_keylist_end( ctx ); - return bOk; + gpgme_release (ctx); + + return ( 0 < nFound ); } bool encryptMessage( const char* cleartext, @@ -1419,7 +1423,10 @@ bool encryptAndSignMessage( const char* cleartext, return bOk; } + bool decryptMessage( const char* ciphertext, + bool cipherIsBinary, + int cipherLen, const char** cleartext, const char* certificate ) { @@ -1435,9 +1442,21 @@ bool decryptMessage( const char* ciphertext, err = gpgme_new (&ctx); gpgme_set_protocol (ctx, GPGMEPLUG_PROTOCOL); + + gpgme_set_armor (ctx, cipherIsBinary ? 0 : 1); +// gpgme_set_textmode (ctx, cipherIsBinary ? 0 : 1); + /* gpgme_data_new_from_mem( &gCiphertext, ciphertext, 1+strlen( ciphertext ), 1 ); + */ + gpgme_data_new_from_mem( &gCiphertext, + ciphertext, + cipherIsBinary + ? cipherLen + : strlen( ciphertext ), + 1 ); + gpgme_data_new( &gPlaintext ); gpgme_op_decrypt( ctx, gCiphertext, gPlaintext ); |