:type 'regexp
:group 'epa-file)
+(defcustom epa-file-cache-passphrase-for-symmetric-encryption nil
+ "If t, cache passphrase for symmetric encryption."
+ :type 'boolean
+ :group 'epa-file)
+
(defvar epa-file-handler
(cons epa-file-name-regexp 'epa-file-handler))
-
+
(defvar epa-file-passphrase-alist nil)
(defun epa-file-passphrase-callback-function (context key-id file)
- (if (eq key-id 'SYM)
+ (if (and epa-file-cache-passphrase-for-symmetric-encryption
+ (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 context
+ (setq passphrase (epa-passphrase-callback-function context
key-id nil))
(setcdr entry (copy-sequence passphrase))
passphrase)))
- (epg-passphrase-callback-function context key-id nil)))
+ (epa-passphrase-callback-function context key-id nil)))
(defun epa-file-handler (operation &rest args)
(save-match-data
context
(cons #'epa-file-passphrase-callback-function
file))
+ (epg-context-set-progress-callback context
+ #'epa-progress-callback-function)
(unwind-protect
(progn
(if replace
context
(cons #'epa-file-passphrase-callback-function
file))
+ (epg-context-set-progress-callback context
+ #'epa-progress-callback-function)
(condition-case error
(setq string
(epg-encrypt-string