-;;; epa-file.el --- the EasyPG Assistant hooks for transparent file encryption
+;;; epa-file.el --- the EasyPG Assistant, transparent file encryption
;; Copyright (C) 2006 Daiki Ueno
;; Author: Daiki Ueno <ueno@unixuser.org>
(defvar epa-file-passphrase-alist nil)
-(defun epa-file-passphrase-callback-function (file)
- (if (eq epg-key-id 'SYM)
+(defun epa-file-passphrase-callback-function (context key-id file)
+ (if (eq key-id 'SYM)
(let ((entry (assoc file epa-file-passphrase-alist))
passphrase)
(or (copy-sequence (cdr entry))
(setq entry (list file)
epa-file-passphrase-alist (cons entry
epa-file-passphrase-alist)))
- (setq passphrase (epg-passphrase-callback-function nil))
+ (setq passphrase (epg-passphrase-callback-function context
+ key-id nil))
(setcdr entry (copy-sequence passphrase))
passphrase)))
- (epg-passphrase-callback-function nil)))
+ (epg-passphrase-callback-function context key-id nil)))
(defun epa-file-handler (operation &rest args)
(save-match-data
(encode-coding-string start coding-system)
(encode-coding-string (buffer-substring start end)
coding-system))
- (mapcar (lambda (key)
- (epg-sub-key-id (car (epg-key-sub-key-list key))))
- (unless (assoc file epa-file-passphrase-alist)
+ (unless (assoc file epa-file-passphrase-alist)
(epa-select-keys
- "Select recipents for encryption.
-If no one is selected, symmetric encryption will be performed. ")))))
+ context
+ "Select recipents for encryption.
+If no one is selected, symmetric encryption will be performed. "))))
(error
(if (setq entry (assoc file epa-file-passphrase-alist))
(setcdr entry nil))