* gpg.el
@ 2002-04-26 12:08 Dmitry Bely
2002-04-26 15:28 ` gpg.el Florian Weimer
0 siblings, 1 reply; 6+ messages in thread
From: Dmitry Bely @ 2002-04-26 12:08 UTC (permalink / raw)
What is the preferable method to submit gpg.el bug reports? Should I post
them here or contact the authors directly?
Hope to hear from you soon,
Dmitry
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: gpg.el
2002-04-26 12:08 gpg.el Dmitry Bely
@ 2002-04-26 15:28 ` Florian Weimer
2002-04-26 16:02 ` gpg.el Dmitry Bely
0 siblings, 1 reply; 6+ messages in thread
From: Florian Weimer @ 2002-04-26 15:28 UTC (permalink / raw)
Dmitry Bely <dbely@mail.ru> writes:
> What is the preferable method to submit gpg.el bug reports? Should I post
> them here or contact the authors directly?
Better post them here, so others can help (I don't run XEmacs).
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: gpg.el
2002-04-26 15:28 ` gpg.el Florian Weimer
@ 2002-04-26 16:02 ` Dmitry Bely
2002-04-29 17:45 ` mml1991.el patch (was gpg.el) Dmitry Bely
0 siblings, 1 reply; 6+ messages in thread
From: Dmitry Bely @ 2002-04-26 16:02 UTC (permalink / raw)
Florian Weimer <fw@deneb.enyo.de> writes:
> Dmitry Bely <dbely@mail.ru> writes:
>
>> What is the preferable method to submit gpg.el bug reports? Should I post
>> them here or contact the authors directly?
>
> Better post them here, so others can help (I don't run XEmacs).
And neither you run Windows 2000 nor use a non-english charset :-)
Fortunately, the problem seems to have nothing to do with XEmacs. It
happens when I try to sign a message with an encoding different from
us-ascii (encryption is working fine as well as the us-ascii messages
signing). Here is an example:
(1) Non-signed message would be
Content-Type: text/plain; charset=koi8-r
Content-Transfer-Encoding: 8bit
(koi8-r is Cyrillic 8-bit encoding like European cp1250. Everything else is
not interesting)
(2) Signed message created by gpg.el
[---cut---]
X-From-Line: nobody Fri Apr 26 13:34:15 2002
X-Draft-From: ("nnfolder+archive:archive" "")
To: dbely@mail.ru
Subject: signature test
From: Dmitry Bely <dbely@mail.ru>
Date: Fri, 26 Apr 2002 13:33:55 +0400
Message-ID: <d6wm248s.fsf@mail.ru>
User-Agent: Gnus/5.090005 (Oort Gnus v0.05) XEmacs/21.4 (Civil Service (Windows), i586-pc-win32)
MIME-Version: 1.0
Content-Type: text/plain; charset=koi8-r
Content-Transfer-Encoding: base64
Lines: 13
Xref: BELY archive:1273
X-Gnus-Article-Number: 1273 Fri Apr 26 13:34:15 2002
=2D----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
8M8t0tXT08vJDQoNCkhvcGUgdG8gaGVhciBmcm9tIHlvdSBzb29uLA0KRG1pdHJ5DQo
=2D----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6-2 (MingW32)
Comment: For info see http://www.gnupg.org
iEYEARECAAYFAjzJHxYACgkQytFTynJIfm+LkgCg6Xa4XWbM24zBHl1WA/N8H/MU
x1YAoIxtzJL7u2C+OLwvd0Z/hpBlKQNh
=3Drc3D
=2D----END PGP SIGNATURE-----
[---cut---]
As you see, Content-Transfer-Encoding is incorrect: original koi8-r text is
really base64-encoded, but everything else is quoted-printable. So we have
the broken message...
Hope to hear from you soon,
Dmitry
^ permalink raw reply [flat|nested] 6+ messages in thread
* mml1991.el patch (was gpg.el)
2002-04-26 16:02 ` gpg.el Dmitry Bely
@ 2002-04-29 17:45 ` Dmitry Bely
2002-05-01 10:37 ` Florian Weimer
0 siblings, 1 reply; 6+ messages in thread
From: Dmitry Bely @ 2002-04-29 17:45 UTC (permalink / raw)
Cc: Sascha LЭdecke, Florian Weimer
OK, that's not the gpg.el bug. The problem is that
(1) (mm-body-encoding) does not allow 8bit encodings for PGP-signed
messages and returns base64 for some code pages (e.g. for Russian
koi8r)
(2) (mml1991-gpg-sign) always assumes that it gets qp-encoded text, so it
fails if base64-encoded one is supplied.
Here is the patch that fixes this issue (I am neither the very experienced
Lisp programmer nor Gnus hacker, so if you feel that I did something the
wrong, please correct me)
Index: mml1991.el
===================================================================
RCS file: /usr/local/cvsroot/gnus/lisp/mml1991.el,v
retrieving revision 6.6
diff -u -r6.6 mml1991.el
--- mml1991.el 2002/02/20 00:15:32 6.6
+++ mml1991.el 2002/04/29 17:38:27
@@ -49,10 +49,19 @@
(defun mml1991-mailcrypt-sign (cont)
(let ((text (current-buffer))
headers signature
- (result-buffer (get-buffer-create "*GPG Result*")))
+ (result-buffer (get-buffer-create "*GPG Result*"))
+ encode-function decode-function)
;; Save MIME Content[^ ]+: headers from signing
(goto-char (point-min))
- (while (looking-at "^Content[^ ]+:") (forward-line))
+ (while (looking-at "^Content[^ ]+:")
+ (progn
+ (if (looking-at "^Content-Transfer-Encoding:\\s-+\\(\\S-+\\)")
+ (let ((encoding (downcase (match-string 1))))
+ (setq encode-function
+ (intern (concat encoding "-encode-region")))
+ (setq decode-function
+ (intern (concat encoding "-decode-region")))))
+ (forward-line)))
(if (> (point) (point-min))
(progn
(setq headers (buffer-substring (point-min) (point)))
@@ -60,7 +69,8 @@
(goto-char (point-max))
(unless (bolp)
(insert "\n"))
- (quoted-printable-decode-region (point-min) (point-max))
+ (if decode-function
+ (funcall decode-function (point-min) (point-max)))
(with-temp-buffer
(setq signature (current-buffer))
(insert-buffer text)
@@ -72,7 +82,8 @@
(goto-char (point-min))
(while (re-search-forward "\r+$" nil t)
(replace-match "" t t))
- (quoted-printable-encode-region (point-min) (point-max))
+ (if encode-function
+ (funcall encode-function (point-min) (point-max)))
(set-buffer text)
(kill-region (point-min) (point-max))
(if headers (insert headers))
@@ -125,10 +136,19 @@
(defun mml1991-gpg-sign (cont)
(let ((text (current-buffer))
headers signature
- (result-buffer (get-buffer-create "*GPG Result*")))
+ (result-buffer (get-buffer-create "*GPG Result*"))
+ encode-function decode-function)
;; Save MIME Content[^ ]+: headers from signing
(goto-char (point-min))
- (while (looking-at "^Content[^ ]+:") (forward-line))
+ (while (looking-at "^Content[^ ]+:")
+ (progn
+ (if (looking-at "^Content-Transfer-Encoding:\\s-+\\(\\S-+\\)")
+ (let ((encoding (downcase (match-string 1))))
+ (setq encode-function
+ (intern (concat encoding "-encode-region")))
+ (setq decode-function
+ (intern (concat encoding "-decode-region")))))
+ (forward-line)))
(if (> (point) (point-min))
(progn
(setq headers (buffer-substring (point-min) (point)))
@@ -136,7 +156,8 @@
(goto-char (point-max))
(unless (bolp)
(insert "\n"))
- (quoted-printable-decode-region (point-min) (point-max))
+ (if decode-function
+ (funcall decode-function (point-min) (point-max)))
(with-temp-buffer
(unless (gpg-sign-cleartext text (setq signature (current-buffer))
result-buffer
@@ -148,7 +169,8 @@
(goto-char (point-min))
(while (re-search-forward "\r+$" nil t)
(replace-match "" t t))
- (quoted-printable-encode-region (point-min) (point-max))
+ (if encode-function
+ (funcall encode-function (point-min) (point-max)))
(set-buffer text)
(kill-region (point-min) (point-max))
(if headers (insert headers))
Hope to hear from you soon,
Dmitry
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: mml1991.el patch (was gpg.el)
2002-04-29 17:45 ` mml1991.el patch (was gpg.el) Dmitry Bely
@ 2002-05-01 10:37 ` Florian Weimer
2002-05-01 15:33 ` Dmitry Bely
0 siblings, 1 reply; 6+ messages in thread
From: Florian Weimer @ 2002-05-01 10:37 UTC (permalink / raw)
Dmitry Bely <dbely@mail.ru> writes:
> OK, that's not the gpg.el bug. The problem is that
>
> (1) (mm-body-encoding) does not allow 8bit encodings for PGP-signed
> messages and returns base64 for some code pages (e.g. for Russian
> koi8r)
For clearsigned messages (that's the stuff mml1991.el is for), or for
OpenPGP/MIME-signed messages? It should be necessary only in the
latter case.
> (2) (mml1991-gpg-sign) always assumes that it gets qp-encoded text, so it
> fails if base64-encoded one is supplied.
>
> Here is the patch that fixes this issue (I am neither the very experienced
> Lisp programmer nor Gnus hacker, so if you feel that I did something the
> wrong, please correct me)
IMHO, your change is wrong from an architectural point of
view. mml1991.el signatures should be applied *after* we have
generate the octet stream which is to be sent, but *before*
Content-Transfer-Encoding is applied.
But I'll check with OpenPGP WG to be sure that this is the right
approach to clearsigned messages and MIME.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: mml1991.el patch (was gpg.el)
2002-05-01 10:37 ` Florian Weimer
@ 2002-05-01 15:33 ` Dmitry Bely
0 siblings, 0 replies; 6+ messages in thread
From: Dmitry Bely @ 2002-05-01 15:33 UTC (permalink / raw)
Florian Weimer <fw@deneb.enyo.de> writes:
>> OK, that's not the gpg.el bug. The problem is that
>>
>> (1) (mm-body-encoding) does not allow 8bit encodings for PGP-signed
>> messages and returns base64 for some code pages (e.g. for Russian
>> koi8r)
>
> For clearsigned messages (that's the stuff mml1991.el is for), or for
> OpenPGP/MIME-signed messages? It should be necessary only in the
> latter case.
Of course, for clearsigned messages, i.e. messages with traditional PGP
signature (function "mml-secure-message-sign-pgp"). You may check this
yourself -- it requires quoted-printable even for us-ascii if message will
be later PGP-signed.
PGP/MIME is not broken and already works as expected.
>> (2) (mml1991-gpg-sign) always assumes that it gets qp-encoded text, so it
>> fails if base64-encoded one is supplied.
>>
>> Here is the patch that fixes this issue (I am neither the very experienced
>> Lisp programmer nor Gnus hacker, so if you feel that I did something the
>> wrong, please correct me)
>
> IMHO, your change is wrong from an architectural point of
> view. mml1991.el signatures should be applied *after* we have
> generate the octet stream which is to be sent, but *before*
> Content-Transfer-Encoding is applied.
Exactly. But if you look into the sources, you will see that
(mml1991-gpg-sign) gets the message with Content-Transfer-Encoding already
applied. So (mml1991-gpg-sign) 1) unpacks the message, then 2) signs it
with PGP/GPG, then 3) packs it again. Yes, one pack/unpack sequence is
redundant (it would be better if (mml1991-gpg-sign) gets the original octet
stream), but Gnus is written this way, and I cannot easily change it. My
patch only corrects the wrong assumption, made in (mml1991-gpg-sign), that
its input stream is always quoted-printable encoded.
> But I'll check with OpenPGP WG to be sure that this is the right
> approach to clearsigned messages and MIME.
It works for me. Now I can sign and verify PGP messages without a problem.
Hope to hear from you soon,
Dmitry
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2002-05-01 15:33 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-04-26 12:08 gpg.el Dmitry Bely
2002-04-26 15:28 ` gpg.el Florian Weimer
2002-04-26 16:02 ` gpg.el Dmitry Bely
2002-04-29 17:45 ` mml1991.el patch (was gpg.el) Dmitry Bely
2002-05-01 10:37 ` Florian Weimer
2002-05-01 15:33 ` Dmitry Bely
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).