EasyPG: Implement some suggestions from emacs-devel.
This commit is contained in:
parent
c6588a85bc
commit
f1914c4078
9 changed files with 156 additions and 15 deletions
|
@ -1,3 +1,8 @@
|
|||
2008-02-10 Daiki Ueno <ueno@unixuser.org>
|
||||
|
||||
* epa.texi (Quick start): Use the command `epa-enable' instead of
|
||||
loading `epa-setup'.
|
||||
|
||||
2008-02-08 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* makefile.w32-in (INFO_TARGETS, DVI_TARGETS, clean): Add epa.
|
||||
|
|
|
@ -77,26 +77,28 @@ EasyPG Assistant provides the following features.
|
|||
@node Quick start
|
||||
@chapter Quick start
|
||||
|
||||
To install, just follow the standard CMMI installation instructions.
|
||||
@c To install, just follow the standard CMMI installation instructions.
|
||||
|
||||
@cartouche
|
||||
@example
|
||||
$ ./configure
|
||||
$ sudo make install
|
||||
@end example
|
||||
@end cartouche
|
||||
@c @cartouche
|
||||
@c @example
|
||||
@c $ ./configure
|
||||
@c $ sudo make install
|
||||
@c @end example
|
||||
@c @end cartouche
|
||||
|
||||
@noindent
|
||||
Then, add the following line to your @file{~/.emacs}
|
||||
@c @noindent
|
||||
@c Then, add the following line to your @file{~/.emacs}
|
||||
|
||||
Add the following line to your @file{~/.emacs}.
|
||||
|
||||
@cartouche
|
||||
@lisp
|
||||
(require 'epa-setup)
|
||||
(epa-mode 1)
|
||||
@end lisp
|
||||
@end cartouche
|
||||
|
||||
@noindent
|
||||
That's all. Restart emacs and type @kbd{M-x epa- @key{TAB}}, and you will see a
|
||||
Restart emacs and type @kbd{M-x epa- @key{TAB}}, and you will see a
|
||||
lot of commands available. For example,
|
||||
|
||||
@itemize @bullet
|
||||
|
|
|
@ -1,3 +1,23 @@
|
|||
2008-02-10 Daiki Ueno <ueno@unixuser.org>
|
||||
|
||||
* epg-config.el: Expand the contents of epg-package-info.el.
|
||||
(epg-package-name): New constant.
|
||||
(epg-version-number): New constant.
|
||||
(epg-bug-report-address): New constant.
|
||||
|
||||
* epa-mail.el (epa-mail-mode): Add autoload cookie.
|
||||
(epa-mail-minor-mode): New global minor mode.
|
||||
|
||||
* epa-file.el (epa-file-mode): New global minor mode.
|
||||
|
||||
* epa-dired.el (epa-dired-mode): New global minor mode.
|
||||
|
||||
* epa.el (epa-menu): New variable.
|
||||
(epa-menu-items): New variable.
|
||||
(epa-menu-mode): New global minor mode.
|
||||
(epa-global-minor-modes): New user option.
|
||||
(epa-mode): New global minor mode.
|
||||
|
||||
2008-02-10 Michael Albinus <michael.albinus@gmx.de>
|
||||
|
||||
* net/dbus.el: Remove `no-byte-compile' cookie.
|
||||
|
|
|
@ -82,6 +82,14 @@ If no one is selected, symmetric encryption will be performed. "))
|
|||
(setq file-list (cdr file-list)))
|
||||
(revert-buffer)))
|
||||
|
||||
;;;###autoload
|
||||
(define-minor-mode epa-dired-mode
|
||||
"Minor mode to hook EasyPG into Dired."
|
||||
:global t :init-value nil :group 'epa-dired :version "23.1"
|
||||
(remove-hook 'dired-mode-hook 'epa-dired-mode-hook)
|
||||
(if epa-dired-mode
|
||||
(add-hook 'dired-mode-hook 'epa-dired-mode-hook)))
|
||||
|
||||
(provide 'epa-dired)
|
||||
|
||||
;; arch-tag: 2025700b-48d0-4684-bc94-228ad1f8e9ff
|
||||
|
|
|
@ -314,6 +314,24 @@ If no one is selected, symmetric encryption will be performed. ")))
|
|||
(message "`epa-file' disabled"))
|
||||
(message "`epa-file' already disabled")))
|
||||
|
||||
;;;###autoload
|
||||
(define-minor-mode epa-file-mode
|
||||
"Toggle automatic file encryption and decryption.
|
||||
With prefix argument ARG, turn auto encryption on if positive, else off.
|
||||
Return the new status of auto encryption (non-nil means on)."
|
||||
:global t :init-value nil :group 'epa-file :version "23.1"
|
||||
(setq file-name-handler-alist
|
||||
(delq epa-file-handler file-name-handler-alist))
|
||||
(remove-hook 'find-file-hooks 'epa-file-find-file-hook)
|
||||
(setq auto-mode-alist (delq epa-file-auto-mode-alist-entry
|
||||
auto-mode-alist))
|
||||
(when epa-file-mode
|
||||
(setq file-name-handler-alist
|
||||
(cons epa-file-handler file-name-handler-alist))
|
||||
(add-hook 'find-file-hooks 'epa-file-find-file-hook)
|
||||
(setq auto-mode-alist (cons epa-file-auto-mode-alist-entry
|
||||
auto-mode-alist))))
|
||||
|
||||
(provide 'epa-file)
|
||||
|
||||
;; arch-tag: 5715152f-0eb1-4dbc-9008-07098775314d
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
(defvar epa-mail-mode-on-hook nil)
|
||||
(defvar epa-mail-mode-off-hook nil)
|
||||
|
||||
;;;###autoload
|
||||
(define-minor-mode epa-mail-mode
|
||||
"A minor-mode for composing encrypted/clearsigned mails."
|
||||
nil " epa-mail" epa-mail-mode-map)
|
||||
|
@ -173,6 +174,14 @@ Don't use this command in Lisp programs!"
|
|||
(interactive)
|
||||
(epa-import-armor-in-region (point-min) (point-max)))
|
||||
|
||||
;;;###autoload
|
||||
(define-minor-mode epa-mail-minor-mode
|
||||
"Minor mode to hook EasyPG into Mail mode."
|
||||
:global t :init-value nil :group 'epa-mail :version "23.1"
|
||||
(remove-hook 'mail-mode-hook 'epa-mail-mode)
|
||||
(if epa-mail-minor-mode
|
||||
(add-hook 'mail-mode-hook 'epa-mail-mode)))
|
||||
|
||||
(provide 'epa-mail)
|
||||
|
||||
;; arch-tag: a6f82b3f-d177-4a11-af95-040da55927d2
|
||||
|
|
74
lisp/epa.el
74
lisp/epa.el
|
@ -45,6 +45,14 @@ the separate window."
|
|||
:type 'integer
|
||||
:group 'epa)
|
||||
|
||||
(defcustom epa-global-minor-modes '(epa-dired-mode
|
||||
epa-file-mode
|
||||
epa-mail-minor-mode
|
||||
epa-menu-mode)
|
||||
"Globally defined minor modes to hook into other modes."
|
||||
:type '(repeat symbol)
|
||||
:group 'epa)
|
||||
|
||||
(defgroup epa-faces nil
|
||||
"Faces for epa-mode."
|
||||
:version "23.1"
|
||||
|
@ -229,6 +237,44 @@ You should bind this variable with `let', but do not set it globally.")
|
|||
(define-key keymap "q" 'delete-window)
|
||||
keymap))
|
||||
|
||||
(defvar epa-menu nil)
|
||||
|
||||
(defconst epa-menu-items
|
||||
'("EasyPG Assistant"
|
||||
("Decrypt"
|
||||
["File" epa-decrypt-file
|
||||
:help "Decrypt a file"]
|
||||
["Region" epa-decrypt-region
|
||||
:help "Decrypt the current region"])
|
||||
("Verify"
|
||||
["File" epa-verify-file
|
||||
:help "Verify digital signature of a file"]
|
||||
["Region" epa-verify-region
|
||||
:help "Verify digital signature of the current region"])
|
||||
("Sign"
|
||||
["File" epa-sign-file
|
||||
:help "Create digital signature of a file"]
|
||||
["Region" epa-sign-region
|
||||
:help "Create digital signature of the current region"])
|
||||
("Encrypt"
|
||||
["File" epa-encrypt-file
|
||||
:help "Encrypt a file"]
|
||||
["Region" epa-encrypt-region
|
||||
:help "Encrypt the current region"])
|
||||
"----"
|
||||
["Browse keyring" epa-list-keys
|
||||
:help "Browse your public keyring"]
|
||||
("Import keys"
|
||||
["File" epa-import-keys
|
||||
:help "Import public keys from a file"]
|
||||
["Region" epa-import-keys-region
|
||||
:help "Import public keys from the current region"])
|
||||
("Export key"
|
||||
["To a File" epa-export-keys
|
||||
:help "Export public keys to a file"]
|
||||
["To a Buffer" epa-insert-keys
|
||||
:help "Insert public keys after the current point"])))
|
||||
|
||||
(defvar epa-exit-buffer-function #'bury-buffer)
|
||||
|
||||
(define-widget 'epa-key 'push-button
|
||||
|
@ -372,7 +418,7 @@ If ARG is non-nil, mark the key."
|
|||
'end-open t))
|
||||
(widget-create 'epa-key :value (car keys))
|
||||
(insert "\n")
|
||||
(setq keys (cdr keys))))
|
||||
(setq keys (cdr keys))))
|
||||
(add-text-properties (point-min) (point-max)
|
||||
(list 'epa-list-keys t
|
||||
'front-sticky nil
|
||||
|
@ -1173,6 +1219,32 @@ Don't use this command in Lisp programs!"
|
|||
;; (message "Signing keys...done")))
|
||||
;; (make-obsolete 'epa-sign-keys "Do not use.")
|
||||
|
||||
;;;###autoload
|
||||
(define-minor-mode epa-menu-mode
|
||||
"Minor mode to hook EasyPG into the menu-bar."
|
||||
:global t :init-value nil :group 'epa :version "23.1"
|
||||
(unless epa-menu
|
||||
(easy-menu-define epa-menu nil "EasyPG Assistant global menu"
|
||||
epa-menu-items))
|
||||
(easy-menu-remove-item nil '("Tools") "EasyPG Assistant")
|
||||
(if epa-menu-mode
|
||||
(easy-menu-add-item nil '("Tools") epa-menu)))
|
||||
|
||||
;;;###autoload
|
||||
(define-minor-mode epa-mode
|
||||
"Minor mode to hook EasyPG into various modes.
|
||||
See `epa-global-minor-modes'."
|
||||
:global t :init-value nil :group 'epa :version "23.1"
|
||||
(let ((modes epa-global-minor-modes)
|
||||
symbol)
|
||||
(while modes
|
||||
(setq symbol (car modes))
|
||||
(if (and symbol
|
||||
(fboundp symbol))
|
||||
(funcall symbol (if epa-mode 1 0))
|
||||
(message "`%S' not found" (car modes)))
|
||||
(setq modes (cdr modes)))))
|
||||
|
||||
(provide 'epa)
|
||||
|
||||
;; arch-tag: 38d20ced-20d5-4137-b17a-f206335423d7
|
||||
|
|
|
@ -23,7 +23,14 @@
|
|||
|
||||
;;; Code:
|
||||
|
||||
(require 'epg-package-info)
|
||||
(defconst epg-package-name "epg"
|
||||
"Name of this package.")
|
||||
|
||||
(defconst epg-version-number "1.0.0"
|
||||
"Version number of this package.")
|
||||
|
||||
(defconst epg-bug-report-address "ueno@unixuser.org"
|
||||
"Report bugs to this address.")
|
||||
|
||||
(defgroup epg ()
|
||||
"The EasyPG Library"
|
||||
|
|
|
@ -1430,7 +1430,7 @@ This function is for internal use only."
|
|||
signature
|
||||
(string-to-number (match-string 4 string)))
|
||||
(epg-signature-set-pubkey-algorithm
|
||||
signature
|
||||
signature
|
||||
(string-to-number (match-string 5 string)))
|
||||
(epg-signature-set-digest-algorithm
|
||||
signature
|
||||
|
@ -1744,7 +1744,7 @@ This function is for internal use only."
|
|||
(defun epg-list-keys (context &optional name mode)
|
||||
"Return a list of epg-key objects matched with NAME.
|
||||
If MODE is nil or 'public, only public keyring should be searched.
|
||||
If MODE is t or 'secret, only secret keyring should be searched.
|
||||
If MODE is t or 'secret, only secret keyring should be searched.
|
||||
Otherwise, only public keyring should be searched and the key
|
||||
signatures should be included.
|
||||
NAME is either a string or a list of strings."
|
||||
|
|
Loading…
Add table
Reference in a new issue