• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10/emacs-93/emacs/lisp/

Lines Matching +defs:gpg +defs:verify

1 ;;; pgg-gpg.el --- GnuPG support for PGG.
7 ;; Symmetric encryption and gpg-agent support added by:
32 (require 'cl) ; for gpg macros
35 (defgroup pgg-gpg ()
39 (defcustom pgg-gpg-program "gpg"
41 :group 'pgg-gpg
44 (defcustom pgg-gpg-extra-args nil
46 :group 'pgg-gpg
49 (defcustom pgg-gpg-recipient-argument "--recipient"
51 :group 'pgg-gpg
55 (defcustom pgg-gpg-use-agent t
57 :group 'pgg-gpg
60 (defvar pgg-gpg-user-id nil
63 (defun pgg-gpg-process-region (start end passphrase program args)
64 (let* ((use-agent (and (null passphrase) (pgg-gpg-use-agent-p)))
72 ,@pgg-gpg-extra-args ,@args))
135 (defun pgg-gpg-possibly-cache-passphrase (passphrase &optional key notruncate)
151 (defvar pgg-gpg-all-secret-keys 'unknown)
153 (defun pgg-gpg-lookup-all-secret-keys ()
155 (when (eq pgg-gpg-all-secret-keys 'unknown)
156 (setq pgg-gpg-all-secret-keys '())
160 (apply #'call-process pgg-gpg-program nil t nil args)
165 pgg-gpg-all-secret-keys)))))
166 pgg-gpg-all-secret-keys)
168 (defun pgg-gpg-lookup-key (string &optional type)
174 (apply #'call-process pgg-gpg-program nil t nil args)
180 (defun pgg-gpg-lookup-key-owner (string &optional all)
195 (apply #'call-process pgg-gpg-program nil t nil args)
201 (defun pgg-gpg-key-id-from-key-owner (key-owner)
208 (defun pgg-gpg-encrypt-region (start end recipients &optional sign passphrase)
215 (let* ((pgg-gpg-user-id (or pgg-gpg-user-id pgg-default-user-id))
217 (when (and sign (not (pgg-gpg-use-agent-p)))
220 pgg-gpg-user-id)
221 pgg-gpg-user-id))))
226 (if sign (list "--sign" "--local-user" pgg-gpg-user-id))
230 (list pgg-gpg-recipient-argument rcpt))
233 (list pgg-gpg-user-id)))))))))
234 (pgg-gpg-process-region start end passphrase pgg-gpg-program args)
238 (pgg-gpg-possibly-cache-passphrase passphrase pgg-gpg-user-id)
240 (pgg-gpg-possibly-cache-passphrase passphrase)))
243 (defun pgg-gpg-encrypt-symmetric-region (start end &optional passphrase)
249 (when (not (pgg-gpg-use-agent-p))
255 (pgg-gpg-process-region start end passphrase pgg-gpg-program args)
258 (defun pgg-gpg-decrypt-region (start end &optional passphrase)
267 (secret-keys (pgg-gpg-lookup-all-secret-keys))
272 (key (pgg-gpg-select-matching-key message-keys secret-keys))
273 (key-owner (and key (pgg-gpg-lookup-key-owner key t)))
274 (key-id (pgg-gpg-key-id-from-key-owner key-owner))
275 (pgg-gpg-user-id (or key-id key
276 pgg-gpg-user-id pgg-default-user-id))
278 (when (not (pgg-gpg-use-agent-p))
280 (format (if (pgg-gpg-symmetric-key-p message-keys)
284 pgg-gpg-user-id))))
286 (pgg-gpg-process-region start end passphrase pgg-gpg-program args)
288 (pgg-gpg-possibly-cache-passphrase passphrase pgg-gpg-user-id)
293 (defun pgg-gpg-symmetric-key-p (message-keys)
301 (defun pgg-gpg-select-matching-key (message-keys secret-keys)
310 (defun pgg-gpg-sign-region (start end &optional cleartext passphrase)
312 (let* ((pgg-gpg-user-id (or pgg-gpg-user-id pgg-default-user-id))
314 (when (not (pgg-gpg-use-agent-p))
317 pgg-gpg-user-id)
318 pgg-gpg-user-id))))
322 "--local-user" pgg-gpg-user-id)
326 (pgg-gpg-process-region start end passphrase pgg-gpg-program args)
329 (pgg-gpg-possibly-cache-passphrase passphrase pgg-gpg-user-id)
331 (pgg-gpg-possibly-cache-passphrase passphrase))
334 (defun pgg-gpg-verify-region (start end &optional signature)
336 (let ((args '("--batch" "--verify")))
340 (pgg-gpg-process-region start end nil pgg-gpg-program args)
343 (while (re-search-forward "^gpg: \\(.*\\)\n" nil t)
351 (defun pgg-gpg-insert-key ()
353 (let* ((pgg-gpg-user-id (or pgg-gpg-user-id pgg-default-user-id))
355 pgg-gpg-user-id)))
356 (pgg-gpg-process-region (point)(point) nil pgg-gpg-program args)
359 (defun pgg-gpg-snarf-keys-region (start end)
362 (pgg-gpg-process-region start end nil pgg-gpg-program args)
384 (defun pgg-gpg-update-agent ()
385 "Try to connet to gpg-agent and send UPDATESTARTUPTTY."
392 (make-network-process :name "gpg-agent-process"
399 ;; We can't check, so assume gpg-agent is up.
402 (defun pgg-gpg-use-agent-p ()
403 "Return t if `pgg-gpg-use-agent' is t and gpg-agent is available."
404 (and pgg-gpg-use-agent (pgg-gpg-update-agent)))
406 (provide 'pgg-gpg)
409 ;;; pgg-gpg.el ends here