;ELC   
;;; Compiled
;;; in Emacs version 30.2
;;; with all optimizations.


#@29 Whether to cache passwords.#@2 #@139 How many seconds passwords are cached, or nil to disable expiring.
Whether passwords are cached at all is controlled by `password-cache'.
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\300\312\302\303\313DD\314\306\307\310\315&\207" [custom-declare-variable password-cache funcall function #[0 "\300\207" [t] 1 (#$ . 115)] (#$ . 83) :group password :type boolean password-cache-expiry #[0 "\300\207" [16] 1 (#$ . 115)] (#$ . 122) (choice (const :tag "Never" nil) (integer :tag "Seconds"))] 8)
(defvar password-data (make-hash-table :test 'equal))#@160 Obtain passphrase for KEY from time-limited passphrase cache.
Custom variables `password-cache' and `password-cache-expiry'
regulate cache behavior.

(fn KEY)
(defalias 'password-read-from-cache #[257 "\205\f \211\205\f \302	\"\207" [password-cache password-data gethash] 4 (#$ . 690)])#@41 Check if KEY is in the cache.

(fn KEY)
(defalias 'password-in-cache-p #[257 "\205 \211\205 \302	\303#\303=?\207" [password-cache password-data gethash password-cache-no-data] 5 (#$ . 984)])#@349 Read password, for use with KEY, from user, or from cache if wanted.
KEY indicate the purpose of the password, so the cache can
separate passwords.  The cache is not used if KEY is nil.
KEY is typically a string but can be anything (compared via `equal').
The variable `password-cache' control whether the cache is used.

(fn PROMPT &optional KEY)
(defalias 'password-read #[513 "\300!\206	 \301!\207" [password-read-from-cache read-passwd] 4 (#$ . 1185)])#@327 Remove password indexed by KEY from password cache.
This is typically run by a timer setup from `password-cache-add',
but can be invoked at any time to forcefully remove passwords
from the cache.  This may be useful when it has been detected
that a password is invalid, so that `password-read' query the
user again.

(fn KEY)
(defalias 'password-cache-remove #[257 "\301\"\211;\203 \302!\210\303\"\207" [password-data gethash clear-string remhash] 5 (#$ . 1650)])#@117 Add password to cache.
The password is removed by a timer after `password-cache-expiry' seconds.

(fn KEY PASSWORD)
(defalias 'password-cache-add #[514 "\203 \302	\303#\303=\203 \304\305\306$\210\307	#\305\207" [password-cache-expiry password-data gethash password-cache-no-data run-at-time nil password-cache-remove puthash] 8 (#$ . 2126)])#@27 Clear the password cache.
(defalias 'password-reset #[0 "\301!\207" [password-data clrhash] 2 (#$ . 2481) nil])
(provide 'password-cache)
