Mercurial > emacs
comparison lisp/pgg-pgp.el @ 66697:d13e07d1fdd3
(pgg-pgp-encrypt-region, pgg-pgp-decrypt-region)
(pgg-pgp-encrypt-symmetric-region, pgg-pgp-encrypt-symmetric)
(pgg-pgp-encrypt, pgg-pgp-decrypt-region, pgg-pgp-decrypt)
(pgg-pgp-sign-region, pgg-pgp-sign): Add optional 'passphrase'
argument to all these routines, so the passphrase can be managed
externally and passed in to the system.
(pgg-pgp-decrypt-region, pgg-pgp-sign-region): Use new name for
pgg-add-passphrase-to-cache function.
author | Eli Zaretskii <eliz@gnu.org> |
---|---|
date | Fri, 04 Nov 2005 14:41:02 +0000 |
parents | c82982d6cbc4 |
children | 3bd95f4f2941 |
comparison
equal
deleted
inserted
replaced
66696:b1c691b8cde1 | 66697:d13e07d1fdd3 |
---|---|
130 (substring | 130 (substring |
131 (nth 2 (split-string | 131 (nth 2 (split-string |
132 (buffer-substring (point)(progn (end-of-line) (point))))) | 132 (buffer-substring (point)(progn (end-of-line) (point))))) |
133 2)))))) | 133 2)))))) |
134 | 134 |
135 (defun pgg-pgp-encrypt-region (start end recipients) | 135 (defun pgg-pgp-encrypt-region (start end recipients &optional sign passphrase) |
136 "Encrypt the current region between START and END." | 136 "Encrypt the current region between START and END." |
137 (let* ((pgg-pgp-user-id (or pgg-pgp-user-id pgg-default-user-id)) | 137 (let* ((pgg-pgp-user-id (or pgg-pgp-user-id pgg-default-user-id)) |
138 (args | 138 (passphrase (or passphrase |
139 `("+encrypttoself=off +verbose=1" "+batchmode" | 139 (when sign |
140 "+language=us" "-fate" | 140 (pgg-read-passphrase |
141 ,@(if recipients | 141 (format "PGP passphrase for %s: " |
142 (mapcar (lambda (rcpt) (concat "\"" rcpt "\"")) | 142 pgg-pgp-user-id) |
143 (append recipients | 143 pgg-pgp-user-id)))) |
144 (if pgg-encrypt-for-me | 144 (args |
145 (list pgg-pgp-user-id)))))))) | 145 (append |
146 `("+encrypttoself=off +verbose=1" "+batchmode" | |
147 "+language=us" "-fate" | |
148 ,@(if recipients | |
149 (mapcar (lambda (rcpt) (concat "\"" rcpt "\"")) | |
150 (append recipients | |
151 (if pgg-encrypt-for-me | |
152 (list pgg-pgp-user-id)))))) | |
153 (if sign '("-s" "-u" pgg-pgp-user-id))))) | |
146 (pgg-pgp-process-region start end nil pgg-pgp-program args) | 154 (pgg-pgp-process-region start end nil pgg-pgp-program args) |
147 (pgg-process-when-success nil))) | 155 (pgg-process-when-success nil))) |
148 | 156 |
149 (defun pgg-pgp-decrypt-region (start end) | 157 (defun pgg-pgp-decrypt-region (start end &optional passphrase) |
150 "Decrypt the current region between START and END." | 158 "Decrypt the current region between START and END. |
159 | |
160 If optional PASSPHRASE is not specified, it will be obtained from the | |
161 passphrase cache or user." | |
151 (let* ((pgg-pgp-user-id (or pgg-pgp-user-id pgg-default-user-id)) | 162 (let* ((pgg-pgp-user-id (or pgg-pgp-user-id pgg-default-user-id)) |
152 (key (pgg-pgp-lookup-key pgg-pgp-user-id 'encrypt)) | 163 (key (pgg-pgp-lookup-key pgg-pgp-user-id 'encrypt)) |
153 (passphrase | 164 (passphrase |
154 (pgg-read-passphrase | 165 (or passphrase |
155 (format "PGP passphrase for %s: " pgg-pgp-user-id) key)) | 166 (pgg-read-passphrase |
156 (args | 167 (format "PGP passphrase for %s: " pgg-pgp-user-id) key))) |
157 '("+verbose=1" "+batchmode" "+language=us" "-f"))) | 168 (args |
169 '("+verbose=1" "+batchmode" "+language=us" "-f"))) | |
158 (pgg-pgp-process-region start end passphrase pgg-pgp-program args) | 170 (pgg-pgp-process-region start end passphrase pgg-pgp-program args) |
159 (pgg-process-when-success | 171 (pgg-process-when-success |
160 (if pgg-cache-passphrase | 172 (if pgg-cache-passphrase |
161 (pgg-add-passphrase-cache key passphrase))))) | 173 (pgg-add-passphrase-to-cache key passphrase))))) |
162 | 174 |
163 (defun pgg-pgp-sign-region (start end &optional clearsign) | 175 (defun pgg-pgp-sign-region (start end &optional clearsign passphrase) |
164 "Make detached signature from text between START and END." | 176 "Make detached signature from text between START and END. |
177 | |
178 If optional PASSPHRASE is not specified, it will be obtained from the | |
179 passphrase cache or user." | |
165 (let* ((pgg-pgp-user-id (or pgg-pgp-user-id pgg-default-user-id)) | 180 (let* ((pgg-pgp-user-id (or pgg-pgp-user-id pgg-default-user-id)) |
166 (passphrase | 181 (passphrase |
167 (pgg-read-passphrase | 182 (or passphrase |
168 (format "PGP passphrase for %s: " pgg-pgp-user-id) | 183 (pgg-read-passphrase |
169 (pgg-pgp-lookup-key pgg-pgp-user-id 'sign))) | 184 (format "PGP passphrase for %s: " pgg-pgp-user-id) |
185 (pgg-pgp-lookup-key pgg-pgp-user-id 'sign)))) | |
170 (args | 186 (args |
171 (list (if clearsign "-fast" "-fbast") | 187 (list (if clearsign "-fast" "-fbast") |
172 "+verbose=1" "+language=us" "+batchmode" | 188 "+verbose=1" "+language=us" "+batchmode" |
173 "-u" pgg-pgp-user-id))) | 189 "-u" pgg-pgp-user-id))) |
174 (pgg-pgp-process-region start end passphrase pgg-pgp-program args) | 190 (pgg-pgp-process-region start end passphrase pgg-pgp-program args) |
179 (cdr (assq 2 (pgg-parse-armor-region | 195 (cdr (assq 2 (pgg-parse-armor-region |
180 (progn (beginning-of-line 2) | 196 (progn (beginning-of-line 2) |
181 (point)) | 197 (point)) |
182 (point-max)))))) | 198 (point-max)))))) |
183 (if pgg-cache-passphrase | 199 (if pgg-cache-passphrase |
184 (pgg-add-passphrase-cache | 200 (pgg-add-passphrase-to-cache |
185 (cdr (assq 'key-identifier packet)) | 201 (cdr (assq 'key-identifier packet)) |
186 passphrase))))))) | 202 passphrase))))))) |
187 | 203 |
188 (defun pgg-pgp-verify-region (start end &optional signature) | 204 (defun pgg-pgp-verify-region (start end &optional signature) |
189 "Verify region between START and END as the detached signature SIGNATURE." | 205 "Verify region between START and END as the detached signature SIGNATURE." |