Function: mml-secure-select-preferred-keys

mml-secure-select-preferred-keys is a byte-compiled function defined in mml-sec.el.gz.

Signature

(mml-secure-select-preferred-keys CONTEXT NAMES USAGE)

Documentation

Return list of preferred keys in CONTEXT for NAMES and USAGE.

This inspects the keyrings to find keys for each name in NAMES. If several keys are found for a name, mml-secure-select-keys is used to look for customized preferences or have the user select preferable ones. When mml-secure-fail-when-key-problem is t, fail with an error in case of missing, outdated, or multiple keys.

Source Code

;; Defined in /usr/src/emacs/lisp/gnus/mml-sec.el.gz
(defun mml-secure-select-preferred-keys (context names usage)
  "Return list of preferred keys in CONTEXT for NAMES and USAGE.
This inspects the keyrings to find keys for each name in NAMES.  If several
keys are found for a name, `mml-secure-select-keys' is used to look for
customized preferences or have the user select preferable ones.
When `mml-secure-fail-when-key-problem' is t, fail with an error in
case of missing, outdated, or multiple keys."
  ;; Loosely based on code appearing inside mml2015-epg-sign and
  ;; mml2015-epg-encrypt.
  (apply
   #'nconc
   (mapcar
    (lambda (name)
      (let* ((keys (mml-secure-find-usable-keys context name usage))
	     (keyno (length keys)))
	(cond ((= 0 keyno)
	       (when (or mml-secure-fail-when-key-problem
			 (not (y-or-n-p
			       (format "No %s key for %s; skip it? "
				       usage name))))
		 (error "No %s key for %s" usage name)))
	      ((= 1 keyno) keys)
	      (t (mml-secure-select-keys context name keys usage)))))
    names)))