+;;; epa-dired.el --- the EasyPG Assistant, dired extension
+;; Copyright (C) 2006 Daiki Ueno
+
+;; Author: Daiki Ueno <ueno@unixuser.org>
+;; Keywords: PGP, GnuPG
+
+;; This file is part of EasyPG.
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING. If not, write to the
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
+
+;;; Code:
+
(require 'epa)
(require 'dired)
(define-key dired-mode-map ":" 'epa-dired-prefix))
(defun epa-dired-do-decrypt ()
+ "Decrypt marked files."
(interactive)
(let ((file-list (dired-get-marked-files)))
(while file-list
- (epa-decrypt-file (car file-list))
- (setq file-list (cdr file-list)))))
+ (epa-decrypt-file (expand-file-name (car file-list)))
+ (setq file-list (cdr file-list)))
+ (revert-buffer)))
(defun epa-dired-do-verify ()
+ "Verify marked files."
(interactive)
(let ((file-list (dired-get-marked-files)))
(while file-list
- (epa-verify-file (car file-list))
+ (epa-verify-file (expand-file-name (car file-list)))
(setq file-list (cdr file-list)))))
-(defun epa-dired-do-sign (&optional detached)
- (interactive "P")
+(defun epa-dired-do-sign ()
+ "Sign marked files."
+ (interactive)
(let ((file-list (dired-get-marked-files)))
(while file-list
- (epa-sign-file (expand-file-name (car file-list)) detached)
- (setq file-list (cdr file-list)))))
+ (epa-sign-file
+ (expand-file-name (car file-list))
+ (epa-select-keys (epg-make-context) "Select keys for signing.
+If no one is selected, default secret key is used. "
+ nil t)
+ (y-or-n-p "Make a detached signature? "))
+ (setq file-list (cdr file-list)))
+ (revert-buffer)))
(defun epa-dired-do-encrypt ()
+ "Encrypt marked files."
(interactive)
(let ((file-list (dired-get-marked-files)))
(while file-list
(epa-encrypt-file
- (car file-list)
- (mapcar (lambda (key)
- (epg-sub-key-id
- (car (epg-key-sub-key-list key))))
- (epa-select-keys "Select recipents for encryption.
-If no one is selected, symmetric encryption will be performed. ")))
- (setq file-list (cdr file-list)))))
+ (expand-file-name (car file-list))
+ (epa-select-keys (epg-make-context) "Select recipents for encryption.
+If no one is selected, symmetric encryption will be performed. "))
+ (setq file-list (cdr file-list)))
+ (revert-buffer)))
(provide 'epa-dired)