X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=pgg-epg.el;h=86c61550d1d685fbd03a6139f1e2adbb61915c1d;hb=6ea4768dfc6993c0553985ee7855e8ce51f766a9;hp=6445c4c4afdf80d4cafb9128d8b65ea1f95e8302;hpb=877f297945fd69bfe97a62e6ffa5469ce39ef2fb;p=elisp%2Fepg.git diff --git a/pgg-epg.el b/pgg-epg.el index 6445c4c..86c6155 100644 --- a/pgg-epg.el +++ b/pgg-epg.el @@ -29,14 +29,14 @@ ;;; 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 @@ -80,7 +80,7 @@ passphrase cache or user." (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)) @@ -132,7 +132,8 @@ passphrase cache or user." (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 + (if (and pgg-text-mode + (fboundp 'decode-coding-string)) (setq plain (decode-coding-string plain 'raw-text))) (save-excursion (set-buffer (get-buffer-create pgg-output-buffer)) @@ -152,6 +153,9 @@ passphrase cache or user." (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) @@ -162,7 +166,7 @@ passphrase cache or user." (epg-sign-string context (buffer-substring start end) (if cleartext - 'clearsign + 'clear 'detached)) pgg-epg-secret-key-id-list nil) (error @@ -249,7 +253,7 @@ Add all public keys in region between START and END to the keyring." (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 @@ -262,6 +266,12 @@ Add all public keys in region between START and END to the keyring." "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