From: Karl-Heinz Zimmer Date: Fri, 23 Nov 2001 02:08:53 +0000 (+0000) Subject: signing of mail bodies is working now - buuuuut: I changed the behaviour of the ... X-Git-Tag: gpgme-1.2.0@1385~1242 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=2ed886f88bc4c0bca4e22e67beb4343738fa32f7;p=gpgme.git signing of mail bodies is working now - buuuuut: I changed the behaviour of the 'signMessage()' function, it now returns *only* the signature part (with a trailing zero). This is neccessary to avoid confugion at the KMail side: otherwise KMail might try to convert the whole MIME block into quoted printable - of course this is only allowed for the body part but not for the signature part. --- diff --git a/trunk/gpgmeplug/gpgmeplug.c b/trunk/gpgmeplug/gpgmeplug.c index 05d1438..d6db832 100644 --- a/trunk/gpgmeplug/gpgmeplug.c +++ b/trunk/gpgmeplug/gpgmeplug.c @@ -698,6 +698,7 @@ bool signMessage( const char* cleartext, const char* certificate ) { GpgmeCtx ctx; + GpgmeError err; GpgmeData data, sig; size_t rDLen, rSLen; char* rData = 0; @@ -721,7 +722,7 @@ bool signMessage( const char* cleartext, if( !ciphertext ) return false; - gpgme_new (&ctx); + err = gpgme_new (&ctx); gpgme_set_protocol (ctx, GPGMEPLUG_PROTOCOL); @@ -759,18 +760,24 @@ bool signMessage( const char* cleartext, *ciphertext = malloc( rDLen + rSLen + 1000 ); if( *ciphertext ) { +/* strcpy( (char*)*ciphertext, "Content-Type: multipart/signed;\r\n" " protocol=\"application/pgp-signature\";\r\n" " boundary=\"42=.42=.42=.42\"\r\n" - "\r\n--42=.42=.42=.42\r\n" ); + "\r\n--42=.42=.42=.42\r\n\r\n" ); +*/ +/* + strcpy( (char*)*ciphertext, "--42=.42=.42=.42\r\n" + "Content-Type: text/plain; charset=\"iso-8859-1\"\r\n" + "Content-Transfer-Encoding: 7bit\r\n\r\n" ); strncat((char*)*ciphertext, rData, rDLen ); strcat( (char*)*ciphertext, - "\r\n--42=.42=.42=.42\r\n" + "\r\n\r\n--42=.42=.42=.42\r\n" "Content-Type: application/pgp-signature\r\n\r\n" ); - strncat((char*)*ciphertext, rSig, rSLen ); - strcat( (char*)*ciphertext, - "\r\n--42=.42=.42=.42--\r\n" ); +*/ + strncpy((char*)*ciphertext, rSig, rSLen ); + ((char*)(*ciphertext))[rSLen] = 0; } gpgme_release (ctx);