Mercurial > emacs
annotate lisp/pgg-gpg.el @ 69802:2c5659648b7d
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-198
Merge from gnus--rel--5.10
Patches applied:
* gnus--rel--5.10 (patch 76-77)
- Update from CVS: README: Addition from 5.10.6 tar ball.
- Update from CVS
author | Miles Bader <miles@gnu.org> |
---|---|
date | Wed, 05 Apr 2006 04:02:36 +0000 |
parents | 5c4a9226a577 |
children | 78f82837da85 |
rev | line source |
---|---|
66383
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1 ;;; pgg-gpg.el --- GnuPG support for PGG. |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2 |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3 ;; Copyright (C) 1999, 2000, 2002, 2003, 2004, |
68651
3bd95f4f2941
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
66520
diff
changeset
|
4 ;; 2005, 2006 Free Software Foundation, Inc. |
66383
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
5 |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
6 ;; Author: Daiki Ueno <ueno@unixuser.org> |
69689
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
7 ;; Symmetric encryption support added by: Sascha Wilde <wilde@sha-bang.de> |
66383
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
8 ;; Created: 1999/10/28 |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
9 ;; Keywords: PGP, OpenPGP, GnuPG |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
10 |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
11 ;; This file is part of GNU Emacs. |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
12 |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
13 ;; GNU Emacs is free software; you can redistribute it and/or modify |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
14 ;; it under the terms of the GNU General Public License as published by |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
15 ;; the Free Software Foundation; either version 2, or (at your option) |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
16 ;; any later version. |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
17 |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
18 ;; GNU Emacs is distributed in the hope that it will be useful, |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
19 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
20 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
21 ;; GNU General Public License for more details. |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
22 |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
23 ;; You should have received a copy of the GNU General Public License |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
24 ;; along with GNU Emacs; see the file COPYING. If not, write to the |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
25 ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
26 ;; Boston, MA 02110-1301, USA. |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
27 |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
28 ;;; Code: |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
29 |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
30 (eval-when-compile |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
31 (require 'pgg)) |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
32 |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
33 (defgroup pgg-gpg () |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
34 "GnuPG interface." |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
35 :group 'pgg) |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
36 |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
37 (defcustom pgg-gpg-program "gpg" |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
38 "The GnuPG executable." |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
39 :group 'pgg-gpg |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
40 :type 'string) |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
41 |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
42 (defcustom pgg-gpg-extra-args nil |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
43 "Extra arguments for every GnuPG invocation." |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
44 :group 'pgg-gpg |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
45 :type '(repeat (string :tag "Argument"))) |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
46 |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
47 (defcustom pgg-gpg-recipient-argument "--recipient" |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
48 "GnuPG option to specify recipient." |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
49 :group 'pgg-gpg |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
50 :type '(choice (const :tag "New `--recipient' option" "--recipient") |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
51 (const :tag "Old `--remote-user' option" "--remote-user"))) |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
52 |
69631
77a585c555e6
2006-03-22 Simon Josefsson <jas@extundo.com>
Simon Josefsson <jas@extundo.com>
parents:
69627
diff
changeset
|
53 (defcustom pgg-gpg-use-agent nil |
77a585c555e6
2006-03-22 Simon Josefsson <jas@extundo.com>
Simon Josefsson <jas@extundo.com>
parents:
69627
diff
changeset
|
54 "Whether to use gnupg agent for key caching." |
69622
7672ac27989e
2006-03-21 Simon Josefsson <jas@extundo.com>
Simon Josefsson <jas@extundo.com>
parents:
68762
diff
changeset
|
55 :group 'pgg-gpg |
7672ac27989e
2006-03-21 Simon Josefsson <jas@extundo.com>
Simon Josefsson <jas@extundo.com>
parents:
68762
diff
changeset
|
56 :type 'boolean) |
7672ac27989e
2006-03-21 Simon Josefsson <jas@extundo.com>
Simon Josefsson <jas@extundo.com>
parents:
68762
diff
changeset
|
57 |
66383
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
58 (defvar pgg-gpg-user-id nil |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
59 "GnuPG ID of your default identity.") |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
60 |
69689
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
61 (defvar pgg-gpg-user-id-alist nil |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
62 "An alist mapping from key ID to user ID.") |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
63 |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
64 (defvar pgg-gpg-read-point nil) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
65 (defvar pgg-gpg-output-file-name nil) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
66 (defvar pgg-gpg-pending-status-list nil) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
67 (defvar pgg-gpg-key-id nil) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
68 (defvar pgg-gpg-passphrase nil) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
69 (defvar pgg-gpg-debug nil) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
70 |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
71 (defun pgg-gpg-start-process (args) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
72 (let* ((output-file-name (pgg-make-temp-file "pgg-output")) |
66383
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
73 (args |
69689
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
74 (append (list "--no-tty" |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
75 "--status-fd" "1" |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
76 "--command-fd" "0" |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
77 "--yes" ; overwrite |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
78 "--output" output-file-name) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
79 (if pgg-gpg-use-agent '("--use-agent")) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
80 pgg-gpg-extra-args |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
81 args)) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
82 (coding-system-for-write 'binary) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
83 (process-connection-type nil) |
66383
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
84 (orig-mode (default-file-modes)) |
69689
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
85 (buffer (generate-new-buffer " *pgg-gpg*")) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
86 process) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
87 (with-current-buffer buffer |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
88 (make-local-variable 'pgg-gpg-read-point) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
89 (setq pgg-gpg-read-point (point-min)) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
90 (make-local-variable 'pgg-gpg-output-file-name) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
91 (setq pgg-gpg-output-file-name output-file-name) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
92 (make-local-variable 'pgg-gpg-pending-status-list) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
93 (setq pgg-gpg-pending-status-list nil) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
94 (make-local-variable 'pgg-gpg-key-id) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
95 (setq pgg-gpg-key-id nil) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
96 (make-local-variable 'pgg-gpg-passphrase) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
97 (setq pgg-gpg-passphrase nil)) |
66383
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
98 (unwind-protect |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
99 (progn |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
100 (set-default-file-modes 448) |
69689
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
101 (setq process |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
102 (apply #'start-process "pgg-gpg" buffer pgg-gpg-program args))) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
103 (set-default-file-modes orig-mode)) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
104 (set-process-filter process #'pgg-gpg-process-filter) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
105 (set-process-sentinel process #'pgg-gpg-process-sentinel) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
106 process)) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
107 |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
108 (defun pgg-gpg-process-filter (process input) |
69791
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
109 (if pgg-gpg-debug |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
110 (save-excursion |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
111 (set-buffer (get-buffer-create " *pgg-gpg-debug*")) |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
112 (goto-char (point-max)) |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
113 (insert input))) |
69775
b6e0fc8209f9
2006-04-03 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69689
diff
changeset
|
114 (if (buffer-live-p (process-buffer process)) |
69689
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
115 (save-excursion |
69775
b6e0fc8209f9
2006-04-03 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69689
diff
changeset
|
116 (set-buffer (process-buffer process)) |
b6e0fc8209f9
2006-04-03 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69689
diff
changeset
|
117 (goto-char (point-max)) |
b6e0fc8209f9
2006-04-03 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69689
diff
changeset
|
118 (insert input) |
b6e0fc8209f9
2006-04-03 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69689
diff
changeset
|
119 (goto-char pgg-gpg-read-point) |
b6e0fc8209f9
2006-04-03 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69689
diff
changeset
|
120 (beginning-of-line) |
b6e0fc8209f9
2006-04-03 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69689
diff
changeset
|
121 (while (looking-at ".*\n") ;the input line is finished |
b6e0fc8209f9
2006-04-03 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69689
diff
changeset
|
122 (save-excursion |
b6e0fc8209f9
2006-04-03 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69689
diff
changeset
|
123 (if (looking-at "\\[GNUPG:] \\([A-Z_]+\\)\\>.*") |
b6e0fc8209f9
2006-04-03 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69689
diff
changeset
|
124 (let* ((status (match-string 1)) |
b6e0fc8209f9
2006-04-03 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69689
diff
changeset
|
125 (symbol (intern-soft (concat "pgg-gpg-status-" status))) |
b6e0fc8209f9
2006-04-03 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69689
diff
changeset
|
126 (entry (member status pgg-gpg-pending-status-list))) |
b6e0fc8209f9
2006-04-03 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69689
diff
changeset
|
127 (if entry |
b6e0fc8209f9
2006-04-03 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69689
diff
changeset
|
128 (setq pgg-gpg-pending-status-list |
b6e0fc8209f9
2006-04-03 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69689
diff
changeset
|
129 (delq (car entry) |
b6e0fc8209f9
2006-04-03 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69689
diff
changeset
|
130 pgg-gpg-pending-status-list))) |
b6e0fc8209f9
2006-04-03 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69689
diff
changeset
|
131 (if (and symbol |
b6e0fc8209f9
2006-04-03 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69689
diff
changeset
|
132 (fboundp symbol)) |
69791
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
133 (funcall symbol process (buffer-substring |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
134 (match-beginning 1) |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
135 (match-end 0))))))) |
69775
b6e0fc8209f9
2006-04-03 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69689
diff
changeset
|
136 (forward-line)) |
b6e0fc8209f9
2006-04-03 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69689
diff
changeset
|
137 (setq pgg-gpg-read-point (point))))) |
69689
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
138 |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
139 (defun pgg-gpg-process-sentinel (process status) |
69791
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
140 (if (buffer-live-p (process-buffer process)) |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
141 (save-excursion |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
142 (set-buffer (process-buffer process)) |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
143 (when pgg-gpg-passphrase |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
144 (fillarray pgg-gpg-passphrase 0) |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
145 (setq pgg-gpg-passphrase nil)) |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
146 ;; Copy the contents of process-buffer to pgg-errors-buffer. |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
147 (set-buffer (get-buffer-create pgg-errors-buffer)) |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
148 (buffer-disable-undo) |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
149 (erase-buffer) |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
150 (insert-buffer-substring (process-buffer process)) |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
151 ;; Read the contents of the output file to pgg-output-buffer. |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
152 (set-buffer (get-buffer-create pgg-output-buffer)) |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
153 (buffer-disable-undo) |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
154 (erase-buffer) |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
155 (if (equal status "finished\n") |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
156 (let ((output-file-name |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
157 (with-current-buffer (process-buffer process) |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
158 pgg-gpg-output-file-name))) |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
159 (when (file-exists-p output-file-name) |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
160 (let ((coding-system-for-read (if pgg-text-mode |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
161 'raw-text |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
162 'binary))) |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
163 (insert-file-contents output-file-name)) |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
164 (delete-file output-file-name)))) |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
165 (kill-buffer (process-buffer process))))) |
66383
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
166 |
69689
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
167 (defun pgg-gpg-wait-for-status (process status-list) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
168 (with-current-buffer (process-buffer process) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
169 (setq pgg-gpg-pending-status-list status-list) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
170 (while (and (eq (process-status process) 'run) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
171 pgg-gpg-pending-status-list) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
172 (accept-process-output process 1)))) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
173 |
69791
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
174 (defun pgg-gpg-wait-for-completion (process) |
69689
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
175 (process-send-eof process) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
176 (while (eq (process-status process) 'run) |
69791
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
177 ;; We can't use accept-process-output instead of sit-for here |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
178 ;; because it may cause an interrupt during the sentinel execution. |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
179 (sit-for 0.1))) |
69689
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
180 |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
181 (defun pgg-gpg-status-USERID_HINT (process line) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
182 (if (string-match "\\`USERID_HINT \\([^ ]+\\) \\(.*\\)" line) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
183 (let* ((key-id (match-string 1 line)) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
184 (user-id (match-string 2 line)) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
185 (entry (assoc key-id pgg-gpg-user-id-alist))) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
186 (if entry |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
187 (setcdr entry user-id) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
188 (setq pgg-gpg-user-id-alist (cons (cons key-id user-id) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
189 pgg-gpg-user-id-alist)))))) |
66383
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
190 |
69689
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
191 (defun pgg-gpg-status-NEED_PASSPHRASE (process line) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
192 (if (string-match "\\`NEED_PASSPHRASE \\([^ ]+\\)" line) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
193 (setq pgg-gpg-key-id (match-string 1 line)))) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
194 |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
195 (defun pgg-gpg-status-NEED_PASSPHRASE_SYM (process line) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
196 (setq pgg-gpg-key-id 'SYM)) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
197 |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
198 (defun pgg-gpg-status-NEED_PASSPHRASE_PIN (process line) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
199 (setq pgg-gpg-key-id 'PIN)) |
66383
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
200 |
69689
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
201 (defun pgg-gpg-status-GET_HIDDEN (process line) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
202 (let ((entry (assoc pgg-gpg-key-id pgg-gpg-user-id-alist))) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
203 (if (setq pgg-gpg-passphrase |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
204 (if (eq pgg-gpg-key-id 'SYM) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
205 (pgg-read-passphrase |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
206 "GnuPG passphrase for symmetric encryption: ") |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
207 (pgg-read-passphrase |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
208 (format "GnuPG passphrase for %s: " |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
209 (if entry |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
210 (cdr entry) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
211 pgg-gpg-key-id)) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
212 (if (eq pgg-gpg-key-id 'PIN) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
213 "PIN" |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
214 pgg-gpg-key-id)))) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
215 (process-send-string process (concat pgg-gpg-passphrase "\n"))))) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
216 |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
217 (defun pgg-gpg-status-GOOD_PASSPHRASE (process line) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
218 (when (and pgg-gpg-passphrase |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
219 (stringp pgg-gpg-key-id)) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
220 (pgg-add-passphrase-to-cache pgg-gpg-key-id pgg-gpg-passphrase) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
221 (setq pgg-gpg-passphrase nil))) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
222 |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
223 (defun pgg-gpg-status-BAD_PASSPHRASE (process line) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
224 (when pgg-gpg-passphrase |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
225 (fillarray pgg-gpg-passphrase 0) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
226 (setq pgg-gpg-passphrase nil))) |
66383
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
227 |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
228 (defun pgg-gpg-lookup-key (string &optional type) |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
229 "Search keys associated with STRING." |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
230 (let ((args (list "--with-colons" "--no-greeting" "--batch" |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
231 (if type "--list-secret-keys" "--list-keys") |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
232 string))) |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
233 (with-temp-buffer |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
234 (apply #'call-process pgg-gpg-program nil t nil args) |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
235 (goto-char (point-min)) |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
236 (if (re-search-forward "^\\(sec\\|pub\\):[^:]*:[^:]*:[^:]*:\\([^:]*\\)" |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
237 nil t) |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
238 (substring (match-string 2) 8))))) |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
239 |
66520
67afcf271a8f
(pgg-gpg-select-matching-key): Fixed: look at the right part of the
Eli Zaretskii <eliz@gnu.org>
parents:
66383
diff
changeset
|
240 (defun pgg-gpg-encrypt-region (start end recipients &optional sign passphrase) |
66383
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
241 "Encrypt the current region between START and END. |
66520
67afcf271a8f
(pgg-gpg-select-matching-key): Fixed: look at the right part of the
Eli Zaretskii <eliz@gnu.org>
parents:
66383
diff
changeset
|
242 |
69689
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
243 If optional argument SIGN is non-nil, do a combined sign and encrypt." |
66383
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
244 (let* ((pgg-gpg-user-id (or pgg-gpg-user-id pgg-default-user-id)) |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
245 (args |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
246 (append |
69689
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
247 '("--armor" "--always-trust" "--encrypt") |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
248 (if pgg-text-mode '("--textmode")) |
66383
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
249 (if sign (list "--sign" "--local-user" pgg-gpg-user-id)) |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
250 (if recipients |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
251 (apply #'nconc |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
252 (mapcar (lambda (rcpt) |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
253 (list pgg-gpg-recipient-argument rcpt)) |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
254 (append recipients |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
255 (if pgg-encrypt-for-me |
69689
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
256 (list pgg-gpg-user-id)))))))) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
257 (process (pgg-gpg-start-process args))) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
258 (if (and sign (not pgg-gpg-use-agent)) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
259 (pgg-gpg-wait-for-status process '("GOOD_PASSPHRASE"))) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
260 (process-send-region process start end) |
69791
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
261 (pgg-gpg-wait-for-completion process) |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
262 (save-excursion |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
263 (set-buffer (get-buffer-create pgg-errors-buffer)) |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
264 (goto-char (point-max)) |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
265 (not (null (re-search-backward "^\\[GNUPG:] END_ENCRYPTION\\>" |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
266 nil t)))))) |
66383
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
267 |
66520
67afcf271a8f
(pgg-gpg-select-matching-key): Fixed: look at the right part of the
Eli Zaretskii <eliz@gnu.org>
parents:
66383
diff
changeset
|
268 (defun pgg-gpg-encrypt-symmetric-region (start end &optional passphrase) |
69689
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
269 "Encrypt the current region between START and END with symmetric cipher." |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
270 (let* ((args |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
271 (append '("--armor" "--symmetric") |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
272 (if pgg-text-mode '("--textmode")))) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
273 (process (pgg-gpg-start-process args))) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
274 (pgg-gpg-wait-for-status process '("BEGIN_ENCRYPTION")) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
275 (process-send-region process start end) |
69791
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
276 (pgg-gpg-wait-for-completion process) |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
277 (save-excursion |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
278 (set-buffer (get-buffer-create pgg-errors-buffer)) |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
279 (goto-char (point-max)) |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
280 (not (null (re-search-backward "^\\[GNUPG:] END_ENCRYPTION\\>" |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
281 nil t)))))) |
66520
67afcf271a8f
(pgg-gpg-select-matching-key): Fixed: look at the right part of the
Eli Zaretskii <eliz@gnu.org>
parents:
66383
diff
changeset
|
282 |
67afcf271a8f
(pgg-gpg-select-matching-key): Fixed: look at the right part of the
Eli Zaretskii <eliz@gnu.org>
parents:
66383
diff
changeset
|
283 (defun pgg-gpg-decrypt-region (start end &optional passphrase) |
69689
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
284 "Decrypt the current region between START and END." |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
285 (let* ((args '("--decrypt")) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
286 (process (pgg-gpg-start-process args))) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
287 (process-send-region process start end) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
288 (pgg-gpg-wait-for-status process '("BEGIN_DECRYPTION")) |
69791
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
289 (pgg-gpg-wait-for-completion process) |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
290 (save-excursion |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
291 (set-buffer (get-buffer-create pgg-errors-buffer)) |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
292 (goto-char (point-max)) |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
293 (not (null (re-search-backward "^\\[GNUPG:] DECRYPTION_OKAY\\>" |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
294 nil t)))))) |
66383
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
295 |
66520
67afcf271a8f
(pgg-gpg-select-matching-key): Fixed: look at the right part of the
Eli Zaretskii <eliz@gnu.org>
parents:
66383
diff
changeset
|
296 (defun pgg-gpg-sign-region (start end &optional cleartext passphrase) |
66383
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
297 "Make detached signature from text between START and END." |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
298 (let* ((pgg-gpg-user-id (or pgg-gpg-user-id pgg-default-user-id)) |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
299 (args |
68762
970bf6e6463b
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-62
Miles Bader <miles@gnu.org>
parents:
68651
diff
changeset
|
300 (append (list (if cleartext "--clearsign" "--detach-sign") |
69689
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
301 "--armor" "--verbose" |
68762
970bf6e6463b
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-62
Miles Bader <miles@gnu.org>
parents:
68651
diff
changeset
|
302 "--local-user" pgg-gpg-user-id) |
69689
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
303 (if pgg-text-mode '("--textmode")))) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
304 (process (pgg-gpg-start-process args))) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
305 (unless pgg-gpg-use-agent |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
306 (pgg-gpg-wait-for-status process '("GOOD_PASSPHRASE"))) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
307 (process-send-region process start end) |
69791
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
308 (pgg-gpg-wait-for-completion process) |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
309 (save-excursion |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
310 (set-buffer (get-buffer-create pgg-errors-buffer)) |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
311 (goto-char (point-max)) |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
312 (not (null (re-search-backward "^\\[GNUPG:] SIG_CREATED\\>" |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
313 nil t)))))) |
66383
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
314 |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
315 (defun pgg-gpg-verify-region (start end &optional signature) |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
316 "Verify region between START and END as the detached signature SIGNATURE." |
69689
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
317 (let ((args '("--verify")) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
318 process) |
66383
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
319 (when (stringp signature) |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
320 (setq args (append args (list signature)))) |
69689
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
321 (setq process (pgg-gpg-start-process (append args '("-")))) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
322 (process-send-region process start end) |
69791
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
323 (pgg-gpg-wait-for-completion process) |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
324 (save-excursion |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
325 (set-buffer (get-buffer-create pgg-errors-buffer)) |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
326 (goto-char (point-max)) |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
327 (not (null (re-search-backward "^\\[GNUPG:] GOODSIG\\>" |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
328 nil t)))))) |
66383
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
329 |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
330 (defun pgg-gpg-insert-key () |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
331 "Insert public key at point." |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
332 (let* ((pgg-gpg-user-id (or pgg-gpg-user-id pgg-default-user-id)) |
69689
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
333 (args (list "--export" "--armor" |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
334 pgg-gpg-user-id)) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
335 (process (pgg-gpg-start-process args))) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
336 (pgg-gpg-wait-for-completion process) |
66383
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
337 (insert-buffer-substring pgg-output-buffer))) |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
338 |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
339 (defun pgg-gpg-snarf-keys-region (start end) |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
340 "Add all public keys in region between START and END to the keyring." |
69689
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
341 (let* ((args '("--import" "-")) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
342 (process (pgg-gpg-start-process args)) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
343 status) |
d9ccf8ac6466
2006-03-27 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69646
diff
changeset
|
344 (process-send-region process start end) |
69791
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
345 (pgg-gpg-wait-for-completion process) |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
346 (save-excursion |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
347 (set-buffer (get-buffer-create pgg-errors-buffer)) |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
348 (goto-char (point-max)) |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
349 (not (null (re-search-backward "^\\[GNUPG:] IMPORT_RES\\>" |
4192bb0fddd0
2006-04-04 Daiki Ueno <ueno@unixuser.org>
Simon Josefsson <jas@extundo.com>
parents:
69775
diff
changeset
|
350 nil t)))))) |
69631
77a585c555e6
2006-03-22 Simon Josefsson <jas@extundo.com>
Simon Josefsson <jas@extundo.com>
parents:
69627
diff
changeset
|
351 |
66383
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
352 (provide 'pgg-gpg) |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
353 |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
354 ;;; arch-tag: 2aa5d5d8-93a0-4865-9312-33e29830e000 |
c82982d6cbc4
Moved pgg*.el files from lisp/gnus to lisp.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
355 ;;; pgg-gpg.el ends here |