From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Sascha Wilde Newsgroups: gmane.emacs.devel Subject: Re: pgg symmetric encryption patch Date: Thu, 6 Oct 2005 11:01:52 +0200 Message-ID: <20051006090152.GB4494@kenny.sha-bang.local> References: <20050930210649.GA22126@kenny.sha-bang.local> <2cd46e7f0509301452l72c262d6l89efd6fb772f61b2@mail.gmail.com> <2cd46e7f0510010928v8244052k2a98375e38fdd2ed@mail.gmail.com> <20051002104823.GA31722@kenny.sha-bang.local> <20051003192503.GA15503@kenny.sha-bang.local> <2cd46e7f0510031250u66ea1349yb437d539ce4027ef@mail.gmail.com> <20051004105330.GA5288@kenny.sha-bang.local> <20051005161905.GA6208@kenny.sha-bang.local> NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0473084866==" X-Trace: sea.gmane.org 1128594338 12476 80.91.229.2 (6 Oct 2005 10:25:38 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Thu, 6 Oct 2005 10:25:38 +0000 (UTC) Cc: schwab@suse.de, Ken Manheimer , emacs-devel@gnu.org, "Richard M. Stallman" , Simon Josefsson Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Oct 06 12:25:27 2005 Return-path: Original-Received: from lists.gnu.org ([199.232.76.165]) by ciao.gmane.org with esmtp (Exim 4.43) id 1ENSuD-0000IH-Fy for ged-emacs-devel@m.gmane.org; Thu, 06 Oct 2005 12:23:17 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1ENSuC-0008HE-KZ for ged-emacs-devel@m.gmane.org; Thu, 06 Oct 2005 06:23:16 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1ENRyR-0005b6-Tl for emacs-devel@gnu.org; Thu, 06 Oct 2005 05:23:36 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1ENRvw-0004P0-KR for emacs-devel@gnu.org; Thu, 06 Oct 2005 05:21:02 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1ENRdk-0002Si-8x for emacs-devel@gnu.org; Thu, 06 Oct 2005 05:02:14 -0400 Original-Received: from [62.141.58.119] (helo=km1136.keymachine.de) by monty-python.gnu.org with esmtp (TLS-1.0:DHE_RSA_3DES_EDE_CBC_SHA:24) (Exim 4.34) id 1ENRdh-0006kI-G4; Thu, 06 Oct 2005 05:02:10 -0400 Original-Received: from kenny.sha-bang.de (xdslb068.osnanet.de [212.95.100.68]) (authenticated bits=0) by km1136.keymachine.de (8.12.11/8.12.10) with ESMTP id j9691oqY030203; Thu, 6 Oct 2005 11:01:50 +0200 Original-Received: from wilde by kenny.sha-bang.de with local (Kenny MUA v.0409034.42) ID 1ENRdQ-0002tc-8Q; Thu, 06 Oct 2005 11:01:52 +0200 Original-To: Daiki Ueno Mail-Followup-To: Daiki Ueno , Ken Manheimer , schwab@suse.de, Simon Josefsson , "Richard M. Stallman" , emacs-devel@gnu.org In-Reply-To: User-Agent: Mutt/1.5.9i X-wieners-gbr-MailScanner-Information: MailScanner presented by www.wieners-gbr.de X-wieners-gbr-MailScanner: Nachricht wurde nicht auf Viren und Spam untersucht, sprechen Sie uns an: www.wieners-gbr.de. X-MailScanner-From: wilde@sha-bang.de X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:43609 Archived-At: --===============0473084866== Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="69pVuxX8awAiJ7fD" Content-Disposition: inline --69pVuxX8awAiJ7fD Content-Type: multipart/mixed; boundary="i9LlY+UWpKt15+FH" Content-Disposition: inline --i9LlY+UWpKt15+FH Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Thu, Oct 06, 2005 at 11:18:48AM +0900, Daiki Ueno wrote: > It might be better to split pgg-gpg-encrypt-symmetric-region from > pgg-gpg-encrypt-region rather than maintaining > pgg-symmetric-encryption-schemes. Yes, I think you are right, after in all this would be a cleaner approach. (I had reasons for my original design, but reconsidering them, they didn't hold...) > And also, is it still necessary to give special meaning to the 1st > argument (recipients) of pgg-encrypt-region? I guess you mean pgg-gpg-encrypt-region? No, after moving symmetric encryption in a dedicated function the special meaning of recipients is no longer needed. > > ps. I have no write access to CVS, so if there are no objections, > > please commit. >=20 > Currently, PGG in Emacs CVS is a part of Gnus. So I added > Simon Josefsson to the Cc: list. He is one of Gnus maintainers and he > has taken care of PGG in Gnus CVS. Thanks. Attached you'll find a revised version of the patch. cheers --=20 Sascha Wilde To become a Jedi, use Emacs you have to. --i9LlY+UWpKt15+FH Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="emacs-pgg-symmetric.patch-03" Content-Transfer-Encoding: quoted-printable Index: man/pgg.texi =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /cvsroot/emacs/emacs/man/pgg.texi,v retrieving revision 1.5 diff -u -r1.5 pgg.texi --- man/pgg.texi 16 Sep 2005 22:11:00 -0000 1.5 +++ man/pgg.texi 6 Oct 2005 09:00:13 -0000 @@ -98,6 +98,8 @@ @lisp (autoload 'pgg-encrypt-region "pgg" "Encrypt the current region." t) +(autoload 'pgg-encrypt-symmetric-region "pgg" + "Encrypt the current region with symmetric algorithm." t) (autoload 'pgg-decrypt-region "pgg" "Decrypt the current region." t) (autoload 'pgg-sign-region "pgg" @@ -140,6 +142,13 @@ with GnuPG. @end deffn =20 +@deffn Command pgg-encrypt-symmetric-region start end +Encrypt the current region between @var{start} and @var{end} using a +symmetric cipher. After invocation you are asked for a passphrase. + +This is currently only implemented for GnuPG. +@end deffn + @deffn Command pgg-decrypt-region start end Decrypt the current region between @var{start} and @var{end}. If decryption is successful, it replaces the current region contents (in @@ -305,6 +314,13 @@ @var{recipients}. If @var{sign} is non-@code{nil}, do a combined sign and encrypt. If encryption is successful, it returns @code{t}, otherwise @code{nil}. +@end deffn + +@deffn Method pgg-scheme-encrypt-symmetric-region scheme start end +Encrypt the current region between @var{start} and @var{end} using a +symmetric cipher and a passphrases. If encryption is successful, it +returns @code{t}, otherwise @code{nil}. This function is currently only +implemented for GnuPG. @end deffn =20 @deffn Method pgg-scheme-decrypt-region scheme start end Index: man/ChangeLog =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /cvsroot/emacs/emacs/man/ChangeLog,v retrieving revision 1.681 diff -u -r1.681 ChangeLog --- man/ChangeLog 4 Oct 2005 22:52:16 -0000 1.681 +++ man/ChangeLog 6 Oct 2005 09:00:16 -0000 @@ -1,3 +1,11 @@ +2005-10-06 Sascha Wilde + + * pgg.texi (How to use): Added autoload line for + `pgg-encrypt-symmetric-region'. + (User Commands): Description of `pgg-encrypt-symmetric-region'. + (Backend methods): Describe new funktion + `pgg-scheme-encrypt-symmetric-region'. + 2005-10-05 Nick Roberts =20 * speedbar.texi (GDB): Describe use of watch expressions. Index: lisp/gnus/pgg.el =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /cvsroot/emacs/emacs/lisp/gnus/pgg.el,v retrieving revision 1.8 diff -u -r1.8 pgg.el --- lisp/gnus/pgg.el 26 Aug 2005 00:02:05 -0000 1.8 +++ lisp/gnus/pgg.el 6 Oct 2005 09:00:17 -0000 @@ -4,6 +4,7 @@ ;; 2005 Free Software Foundation, Inc. =20 ;; Author: Daiki Ueno +;; Symmetric encryption added by: Sascha Wilde ;; Created: 1999/10/28 ;; Keywords: PGP =20 @@ -232,6 +233,32 @@ (pgg-save-coding-system start end (pgg-invoke "encrypt-region" (or pgg-scheme pgg-default-scheme) (point-min) (point-max) rcpts sign)))) + (when (interactive-p) + (pgg-display-output-buffer start end status)) + status)) + +;;;###autoload +(defun pgg-encrypt-symmetric-region (start end) + "Encrypt the current region between START and END symmetric with passphr= ase." + (interactive "r") + (let ((status + (pgg-save-coding-system start end + (pgg-invoke "encrypt-symmetric-region"=20 + (or pgg-scheme pgg-default-scheme) + (point-min) (point-max))))) + (when (interactive-p) + (pgg-display-output-buffer start end status)) + status)) + +;;;###autoload +(defun pgg-encrypt-symmetric (&optional start end) + "Encrypt the current buffer symmetric with passphrase. +If optional arguments START and END are specified, only encrypt within +the region." + (interactive) + (let* ((start (or start (point-min))) + (end (or end (point-max))) + (status (pgg-encrypt-symmetric-region start end))) (when (interactive-p) (pgg-display-output-buffer start end status)) status)) Index: lisp/gnus/pgg-gpg.el =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /cvsroot/emacs/emacs/lisp/gnus/pgg-gpg.el,v retrieving revision 1.6 diff -u -r1.6 pgg-gpg.el --- lisp/gnus/pgg-gpg.el 6 Aug 2005 19:51:42 -0000 1.6 +++ lisp/gnus/pgg-gpg.el 6 Oct 2005 09:00:17 -0000 @@ -4,6 +4,7 @@ ;; 2005 Free Software Foundation, Inc. =20 ;; Author: Daiki Ueno +;; Symmetric encryption added by: Sascha Wilde ;; Created: 1999/10/28 ;; Keywords: PGP, OpenPGP, GnuPG =20 @@ -169,6 +170,16 @@ (pgg-gpg-possibly-cache-passphrase passphrase))) (pgg-process-when-success))) =20 +(defun pgg-gpg-encrypt-symmetric-region (start end) + "Encrypt the current region between START and END with symmetric cipher." + (let* ((passphrase + (pgg-read-passphrase "GnuPG passphrase for symmetric encryption: ")) + (args + (append (list "--batch" "--armor" "--symmetric" )))) + (pgg-as-lbt start end 'CRLF + (pgg-gpg-process-region start end passphrase pgg-gpg-program args)) = =20 + (pgg-process-when-success))) + (defun pgg-gpg-decrypt-region (start end) "Decrypt the current region between START and END." (let* ((current-buffer (current-buffer)) @@ -180,7 +191,10 @@ (pgg-gpg-user-id (or key pgg-gpg-user-id pgg-default-user-id)) (passphrase (pgg-read-passphrase - (format "GnuPG passphrase for %s: " pgg-gpg-user-id) + (format (if (pgg-gpg-symmetric-key-p message-keys) + "Passphrase for symmetric dencryption: " + "GnuPG passphrase for %s: ") + pgg-gpg-user-id) pgg-gpg-user-id)) (args '("--batch" "--decrypt"))) (pgg-gpg-process-region start end passphrase pgg-gpg-program args) @@ -188,6 +202,13 @@ (pgg-gpg-possibly-cache-passphrase passphrase pgg-gpg-user-id) (goto-char (point-min)) (re-search-forward "^\\[GNUPG:] DECRYPTION_OKAY\\>" nil t)))) + +(defun pgg-gpg-symmetric-key-p (message-keys) + "Check if MESSAGE-KEYS contains a symmetric encryption indicator." + (dolist (key message-keys result) + (when (and (eq (car key) 3) + (member '(symmetric-key-algorithm) key)) + (setq result key)))) =20 (defun pgg-gpg-select-matching-key (message-keys secret-keys) "Choose a key from MESSAGE-KEYS that matches one of the keys in SECRET-K= EYS." Index: lisp/gnus/ChangeLog =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /cvsroot/emacs/emacs/lisp/gnus/ChangeLog,v retrieving revision 1.388 diff -u -r1.388 ChangeLog --- lisp/gnus/ChangeLog 4 Oct 2005 22:51:06 -0000 1.388 +++ lisp/gnus/ChangeLog 6 Oct 2005 09:00:20 -0000 @@ -1,3 +1,15 @@ +2005-10-06 Sascha Wilde + + * pgg-gpg.el (pgg-gpg-encrypt-symmetric-region): New function for + symmetric encryption. + (pgg-gpg-symmetric-key-p): New function to check for an symmetric + encrypted session key. + (pgg-gpg-decrypt-region): When decrypting a symmetric encrypted + message ask for the passphrase in a proper way. + + * pgg.el (pgg-encrypt-symmetric,pgg-encrypt-symmetric-region): + New user commands for symmetric encryption. + 2005-10-04 Reiner Steib =20 * mm-url.el (mm-url-predefined-programs): Add switches for curl. --i9LlY+UWpKt15+FH-- --69pVuxX8awAiJ7fD Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2 (GNU/Linux) iD8DBQFDROgAchutvmkRUCQRAp1mAJ9UZrmwwq4hzWPBUsMQn9R9T6c8+ACfW+Xq 5hmAs1/XyJDxxEENCaBzgwk= =5pRm -----END PGP SIGNATURE----- --69pVuxX8awAiJ7fD-- --===============0473084866== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Emacs-devel mailing list Emacs-devel@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-devel --===============0473084866==--