Function: mml-secure-select-keys
mml-secure-select-keys is a byte-compiled function defined in
mml-sec.el.gz.
Signature
(mml-secure-select-keys CONTEXT NAME KEYS USAGE)
Documentation
In CONTEXT for NAME select among KEYS for USAGE.
KEYS should be a list with multiple entries.
NAME is normalized first as customized keys are inspected.
When mml-secure-fail-when-key-problem is t, fail with an error in case of
outdated or multiple keys.
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/mml-sec.el.gz
(defun mml-secure-select-keys (context name keys usage)
"In CONTEXT for NAME select among KEYS for USAGE.
KEYS should be a list with multiple entries.
NAME is normalized first as customized keys are inspected.
When `mml-secure-fail-when-key-problem' is t, fail with an error in case of
outdated or multiple keys."
(let* ((nname (mml-secure-normalize-cust-name name))
(fprs (mml-secure-cust-fpr-lookup context usage nname))
(usable-fprs (mapcar #'mml-secure-fingerprint keys)))
(if fprs
(if (gnus-subsetp fprs usable-fprs)
(mml-secure-filter-keys keys fprs)
(mml-secure-cust-remove-keys context usage nname)
(let ((diff (gnus-setdiff fprs usable-fprs)))
(if mml-secure-fail-when-key-problem
(error "Customization of %s keys for %s outdated" usage nname)
(mml-secure-select-keys-1
context nname keys usage (format "\
Customized keys
(%s)
for %s not available any more.
Select anew. "
diff nname)))))
(if mml-secure-fail-when-key-problem
(error "Multiple %s keys for %s" usage nname)
(mml-secure-select-keys-1
context nname keys usage (format "\
Multiple %s keys for:
%s
Select preferred one(s). "
usage nname))))))