comparison lispref/minibuf.texi @ 57693:ea61d9c01356

(Reading a Password): Add.
author Simon Josefsson <jas@extundo.com>
date Mon, 25 Oct 2004 14:14:05 +0000
parents 9f99ae07c452
children 7f5cac500c59 0fe073a08cef
comparison
equal deleted inserted replaced
57692:cb7894e06217 57693:ea61d9c01356
1658 @cindex passwords, reading 1658 @cindex passwords, reading
1659 1659
1660 To read a password to pass to another program, you can use the 1660 To read a password to pass to another program, you can use the
1661 function @code{read-passwd}. 1661 function @code{read-passwd}.
1662 1662
1663 @cindex password cache
1664 Passwords are sometimes needed several times throughout an Emacs
1665 session. Then it can be useful to avoid having to ask for a password
1666 more than once. Passwords are entered into the password cache using
1667 the function @code{password-cache-add}. To read a password, possibly
1668 retrieving the password from the cache without querying the user, you
1669 can use the function @code{password-read}. The two calls can be
1670 combined into the function @code{password-read-and-add} that read a
1671 password and store it in the cache.
1672
1673 Typically users do not use the same password for all services. The
1674 password cache mechanism use a @samp{key} string to differentiate
1675 among the passwords. The @samp{key} string is typically a fixed
1676 string chosen to be related to what the password is used for. For
1677 example, a password used when connecting to a @acronym{IMAP} mail
1678 server called @samp{mail.example.org}, could use a @samp{key} string
1679 of @samp{imap:mail.example.org}. You can use any string, as long as
1680 it is reasonably unique.
1681
1682 @cindex password expiry
1683 Passwords in the cache typically expire after a while (controlled by
1684 the variable @code{password-cache-expiry}), but you can force removal
1685 of a password using the function @code{password-cache-remove}. This
1686 is useful when there is a problem with the password, to avoid using
1687 the same incorrect password from the cache in the future.
1688
1663 @defun read-passwd prompt &optional confirm default 1689 @defun read-passwd prompt &optional confirm default
1664 This function reads a password, prompting with @var{prompt}. It does 1690 This function reads a password, prompting with @var{prompt}. It does
1665 not echo the password as the user types it; instead, it echoes @samp{.} 1691 not echo the password as the user types it; instead, it echoes @samp{.}
1666 for each character in the password. 1692 for each character in the password.
1667 1693
1672 1698
1673 The optional argument @var{default} specifies the default password to 1699 The optional argument @var{default} specifies the default password to
1674 return if the user enters empty input. If @var{default} is @code{nil}, 1700 return if the user enters empty input. If @var{default} is @code{nil},
1675 then @code{read-passwd} returns the null string in that case. 1701 then @code{read-passwd} returns the null string in that case.
1676 @end defun 1702 @end defun
1703
1704 @defun password-read prompt key
1705 Read a password from the user, using @code{read-passwd}, prompting
1706 with @var{prompt}. If a password has been stored in the password
1707 cache, using @code{password-cache-add} on the same @var{key}, it is
1708 returned directly, without querying the user.
1709 @end defun
1710
1711 @defun password-cache-add key password
1712 Add a password to the password cache, indexed under the given
1713 @var{key}. The password is later retrieved using @code{password-read}
1714 called with the same @var{key}.
1715 @end defun
1716
1717 @defun password-cache-remove key
1718 Remove a password from the cache, indexed under the given @var{key}.
1719 @end defun
1720
1721 @defun password-read-and-add prompt &optional key
1722 Read a password, prompting with @var{prompt}, and possibly add it to
1723 the cache, indexed using the @var{key} string. This is one-call
1724 interface to @code{password-read} and @code{password-cache-add}.
1725 @end defun
1726
1727 @defvar password-cache-expiry
1728 This variable specify for how many seconds passwords are retained in
1729 the password cache before they are expired. For high security, use a
1730 low value (below a minute). For more lax security, use a setting of
1731 @samp{14400} corresponding to half a work day (4 hours).
1732 @end defvar
1733
1734 @defvar password-cache
1735 This variable toggle whether or not the password cache is used at all.
1736 The default is non-@code{nil}, i.e., to use the cache.
1737 @end defvar
1677 1738
1678 @node Minibuffer Misc 1739 @node Minibuffer Misc
1679 @section Minibuffer Miscellany 1740 @section Minibuffer Miscellany
1680 1741
1681 This section describes some basic functions and variables related to 1742 This section describes some basic functions and variables related to