Function: epa-search-keys
epa-search-keys is an autoloaded, interactive and byte-compiled
function defined in epa-ks.el.gz.
Signature
(epa-search-keys QUERY EXACT)
Documentation
Ask a keyserver for all keys matching QUERY.
The keyserver to be used is specified by epa-keyserver.
If EXACT is non-nil (interactively, prefix argument), require exact matches.
Note that the request may fail if the query is not specific enough, since keyservers have strict timeout settings.
Probably introduced at or before Emacs version 28.1.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/epa-ks.el.gz
;;;###autoload
(defun epa-search-keys (query exact)
"Ask a keyserver for all keys matching QUERY.
The keyserver to be used is specified by `epa-keyserver'.
If EXACT is non-nil (interactively, prefix argument), require
exact matches.
Note that the request may fail if the query is not specific
enough, since keyservers have strict timeout settings."
(interactive (list (read-string "Search for: ")
current-prefix-arg))
(when (string-empty-p query)
(user-error "No query"))
(let ((buf (get-buffer-create "*Key search*")))
(with-current-buffer buf
(let ((inhibit-read-only t))
(erase-buffer))
(epa-ks-search-mode))
(url-retrieve
(epa-ks--query-url query exact)
(lambda (status)
(when (plist-get status :error)
(when buf
(kill-buffer buf))
(error "Request failed: %s"
(caddr (assq (caddr (plist-get status :error))
url-http-codes))))
(goto-char (point-min))
(while (search-forward "\r\n" nil t)
(replace-match "\n" t t))
(goto-char (point-min))
(re-search-forward "\n\n")
(let (keys)
(save-match-data
(setq keys (epa-ks--parse-buffer))
(kill-buffer (current-buffer)))
(when buf
(epa-ks--display-keys buf keys) keys))))
(pop-to-buffer buf)
(setq epa-ks-last-query (list query exact)))
(message "Searching keys..."))