-;;; pgg-epg.el --- Gnus/PGG backend of EasyPG.
+;;; pgg-epg.el --- Gnus' PGG backend of EasyPG.
;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
;; 2005, 2006 Free Software Foundation, Inc.
;; Copyright (C) 2006 Daiki Ueno
;; Author: Daiki Ueno <ueno@unixuser.org>
-;; Keywords: PGP, GnuPG
+;; Keywords: PGP, GnuPG, Gnus
;; This file is part of EasyPG.
;;; Code:
-(require 'epg)
+(require 'epa)
(eval-when-compile (require 'pgg))
(defvar pgg-epg-secret-key-id-list nil)
(defun pgg-epg-passphrase-callback (context key-id ignore)
(if (eq key-id 'SYM)
- (epg-passphrase-callback-function context key-id nil)
+ (epa-passphrase-callback-function context key-id nil)
(let* ((entry (assoc key-id epg-user-id-alist))
(passphrase
(pgg-read-passphrase
(buffer-substring start end)
(mapcar
(lambda (recipient)
- (car (epg-list-keys recipient)))
+ (car (epg-list-keys context recipient)))
(if pgg-encrypt-for-me
(cons pgg-default-user-id recipients)
recipients))
(set-buffer (get-buffer-create pgg-errors-buffer))
(erase-buffer))
(condition-case error
- (setq plain (epg-decrypt-string context (buffer-substring start end))
+ (setq plain
+ (epg-decrypt-string context (buffer-substring start end))
pgg-epg-secret-key-id-list nil)
(error
(while pgg-epg-secret-key-id-list
(pgg-remove-passphrase-from-cache (car pgg-epg-secret-key-id-list))
(setq pgg-epg-secret-key-id-list (cdr pgg-epg-secret-key-id-list)))
(signal (car error) (cdr error))))
+ (if pgg-text-mode
+ (setq plain (decode-coding-string plain 'raw-text)))
(save-excursion
(set-buffer (get-buffer-create pgg-output-buffer))
(insert plain))
(epg-context-set-armor context t)
(epg-context-set-textmode context pgg-text-mode)
(epg-context-set-passphrase-callback context #'pgg-epg-passphrase-callback)
+ (epg-context-set-signers
+ context
+ (list (car (epg-list-keys context pgg-default-user-id t))))
(save-excursion
(set-buffer (get-buffer-create pgg-output-buffer))
(erase-buffer)
(epg-sign-string context
(buffer-substring start end)
(if cleartext
- 'clearsign
+ 'clear
'detached))
pgg-epg-secret-key-id-list nil)
(error
(fprint (epg-signature-fingerprint (car pgg-epg-signatures)))
(trust-good-enough-p
(memq (epg-signature-validity (car pgg-epg-signatures))
- '(marginal fully ultimate))))
+ '(marginal full ultimate))))
(cond ((and signer fprint)
(concat (cdr signer)
(unless trust-good-enough-p
"From unknown user")))
"From unknown user"))
+(defun pgg-epg-lookup-key (string &optional type)
+ "Search keys associated with STRING."
+ (mapcar (lambda (key)
+ (epg-sub-key-id (car (epg-key-sub-key-list key))))
+ (epg-list-keys (epg-make-context) string (not (null type)))))
+
(provide 'pgg-epg)
;;; pgg-epg.el ends here