-;;; epa.el --- EasyPG Assistant, GUI of EasyPG
+;;; epa.el --- the EasyPG Assistant
;; Copyright (C) 2006 Daiki Ueno
;; Author: Daiki Ueno <ueno@unixuser.org>
(eval-when-compile (require 'wid-edit))
(defgroup epa nil
- "EasyPG Assistant, GUI of EasyPG."
+ "The EasyPG Assistant"
:group 'epg)
(defgroup epa-faces nil
(goto-char (point-min))
(let (keys key)
(while (re-search-forward "^\\*" nil t)
- (if (setq key (get-text-property (match-beginning 0) 'epa-key))
+ (if (setq key (get-text-property (match-beginning 0)
+ 'epa-key))
(setq keys (cons key keys))))
(nreverse keys))))
(if (get-buffer-window epa-keys-buffer)
(defun epa-decrypt-file (file)
(interactive "fFile: ")
(let* ((default-name (file-name-sans-extension file))
- (plain (read-file-name
- (concat "To file (default "
- (file-name-nondirectory default-name)
- ") ")
- (file-name-directory default-name)
- default-name))
+ (plain (expand-file-name
+ (read-file-name
+ (concat "To file (default "
+ (file-name-nondirectory default-name)
+ ") ")
+ (file-name-directory default-name)
+ default-name)))
(context (epg-make-context)))
(message "Decrypting %s..." (file-name-nondirectory file))
(epg-decrypt-file context file plain)
(interactive "fFile: ")
(let* ((context (epg-make-context))
(plain (if (equal (file-name-extension file) "sig")
- (file-name-sans-extension file))))
+ (file-name-sans-extension file)))
+ signature)
(message "Verifying %s..." (file-name-nondirectory file))
(epg-verify-file context file plain)
+ (setq signature (reverse (epg-context-result-for context 'verify)))
+ (with-output-to-temp-buffer "*epa-verify-file*"
+ (set-buffer standard-output)
+ (while signature
+ (insert (format "%s: %s %s %s\n"
+ (epg-signature-status (car signature))
+ (epg-signature-key-id (car signature))
+ (epg-signature-user-id (car signature))
+ (epg-signature-validity (car signature))))
+ (setq signature (cdr signature))))
+ (shrink-window-if-larger-than-buffer
+ (get-buffer-window "*epa-verify-file*"))
(message "Verifying %s...done" (file-name-nondirectory file))))
(defun epa-sign-file (file detached)
(interactive
(list (expand-file-name (read-file-name "File: "))
- current-prefix-arg))
+ (y-or-n-p "Make a detached signature? ")))
(let ((signature (concat file (if detached ".sig" ".gpg")))
(context (epg-make-context)))
(message "Signing %s..." (file-name-nondirectory file))
- (epg-sign-file context file signature)
+ (epg-sign-file context file signature (not (null detached)))
(message "Signing %s...done" (file-name-nondirectory file))))
(defun epa-encrypt-file (file recipients)