view doc/misc/auth.texi @ 103273:c32ec20d0ab5

* abbrevs.texi (Abbrev Mode): abbrev-mode is an option. * backups.texi (Making Backups): backup-directory-alist and make-backup-file-name-function are options. (Auto-Saving): auto-save-list-file-prefix is an option. * buffers.texi (Killing Buffers): buffer-offer-save is an option. * display.texi (Refresh Screen): no-redraw-on-reenter is an option. (Echo Area Customization): echo-keystrokes is an option. (Selective Display): selective-display-ellipses is an option. (Temporary Displays): temp-buffer-show-function is an option. (Face Attributes): underline-minimum-offset and x-bitmap-file-path are options. (Font Selection): face-font-family-alternatives, face-font-selection-order, face-font-registry-alternatives, and scalable-fonts-allowed are options. (Fringe Indicators): indicate-buffer-boundaries is an option. (Fringe Cursors): overflow-newline-into-fringe is an option. (Scroll Bars): scroll-bar-mode is an option. * eval.texi (Eval): max-lisp-eval-depth is an option. * files.texi (Visiting Functions): find-file-hook is an option. (Directory Names): directory-abbrev-alist is an option. (Unique File Names): temporary-file-directory and small-temporary-file-directory are options. * frames.texi (Initial Parameters): initial-frame-alist, minibuffer-frame-alist and default-frame-alist are options. (Cursor Parameters): blink-cursor-alist and cursor-in-non-selected-windows ar options. (Window System Selections): selection-coding-system is an option. (Display Feature Testing): display-mm-dimensions-alist is an option. * help.texi (Help Functions): help-char and help-event-list are options. * keymaps.texi (Functions for Key Lookup): meta-prefix-char is an option. * minibuf.texi (Minibuffer History): history-length and history-delete-duplicates are options. (High-Level Completion): read-buffer-function and read-buffer-completion-ignore-case are options. (Reading File Names): read-file-name-completion-ignore-case is an option. * modes.texi (Mode Line Top): mode-line-format is an option. (Mode Line Variables): mode-line-position and mode-line-modes are options. * nonascii.texi (Text Representations): enable-multibyte-characters is an option. (Default Coding Systems): auto-coding-regexp-alist, file-coding-system-alist, auto-coding-alist and auto-coding-functions are options. (Specifying Coding Systems): inhibit-eol-conversion is an option. * os.texi (Init File): site-run-file is an option. (System Environment): mail-host-address is an option. (User Identification): user-mail-address is an option. (Terminal Output): baud-rate is an option. * positions.texi (Word Motion): words-include-escapes is an option. * searching.texi (Standard Regexps): page-delimiter, paragraph-separate, paragraph-separate and sentence-end are options. * text.texi (Margins): left-margin and fill-nobreak-predicate are options. * variables.texi (Local Variables): max-specpdl-size is an option. * windows.texi (Choosing Window): split-window-preferred-function, special-display-function and display-buffer-function are options.
author Martin Rudalics <rudalics@gmx.at>
date Thu, 21 May 2009 15:31:31 +0000
parents 3e7c6b40afdd
children b99b3dda298b
line wrap: on
line source

\input texinfo                  @c -*-texinfo-*-
@setfilename ../../info/auth
@settitle Emacs auth-source Library @value{VERSION}

@set VERSION 0.1

@copying
This file describes the Emacs auth-source library.

Copyright @copyright{} 2008, 2009 Free Software Foundation, Inc.

@quotation
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with no
Invariant Sections, with the Front-Cover texts being ``A GNU Manual,''
and with the Back-Cover Texts as in (a) below.  A copy of the license
is included in the section entitled ``GNU Free Documentation License''
in the Emacs manual.

(a) The FSF's Back-Cover Text is: ``You have the freedom to copy and
modify this GNU manual.  Buying copies from the FSF supports it in
developing GNU and promoting software freedom.''

This document is part of a collection distributed under the GNU Free
Documentation License.  If you want to distribute this document
separately from the collection, you can do so by adding a copy of the
license to the document, as described in section 6 of the license.
@end quotation
@end copying

@dircategory Emacs
@direntry
* Auth-source: (auth).   The Emacs auth-source library.
@end direntry

@titlepage
@title Emacs auth-source Library
@author by Ted Zlatanov
@page
@vskip 0pt plus 1filll
@insertcopying
@end titlepage

@contents

@ifnottex
@node Top
@top Emacs auth-source
This manual describes the Emacs auth-source library.

It is a way for multiple applications to share a single configuration
(in Emacs and in files) for user convenience.

@insertcopying

@menu
* Overview::                    Overview of the auth-source library.
* Help for users::              
* Help for developers::         
* Index::                       
* Function Index::              
* Variable Index::              
@end menu
@end ifnottex

@node Overview
@chapter Overview

To be done.

@node Help for users
@chapter Help for users

If you have problems with the port, turn up @code{gnus-verbose} and
see what port the library is checking.  Ditto for any other
problems, your first step is to see what's being checked.

Setup:

@lisp
(require 'auth-source)
(customize-variable 'auth-sources) ;; optional, do it once
@end lisp

@defvar auth-sources

The @var{auth-sources} variable tells the auth-source library where
your netrc files live for a particular host and protocol.  While you
can get fancy, the default and simplest configuration is:

@lisp
(setq auth-sources '((:source "~/.authinfo.gpg" :host t :protocol t)))
@end lisp

By adding multiple entries to that list with a particular host or
protocol, you can have specific netrc files for that host or protocol.

@end defvar


``Netrc'' files are a de facto standard.  They look like this:
@example
machine mymachine login myloginname password mypassword port myport
@end example

The port is optional.  If it's missing, auth-source will assume any
port is OK.  Actually the port is a protocol name or a port number so
you can have separate entries for port 143 and for protocol ``imap''
if you fancy that.

If you don't customize @var{auth-sources}, you'll have to live with
the defaults: any host and any port are looked up in the netrc
file @code{~/.authinfo.gpg}.  This is an encrypted file if and only if
you set up EPA, which is strongly recommended.

@lisp
(require 'epa-file)
(epa-file-enable)
(setq epa-file-cache-passphrase-for-symmetric-encryption t) ; VERY important
@end lisp

For url-auth authentication (HTTP/HTTPS), you need to put this in your
netrc file:

@example
machine yourmachine.com:80 port http login testuser password testpass
@end example

This will match any realm and authentication method (basic or
digest).  If you want finer controls, explore the url-auth source
code and variables.

For Tramp authentication, use:

@example
machine yourmachine.com port scp login testuser password testpass
@end example

Note that the port denotes the Tramp connection method.  When you
don't use a port entry, you match any Tramp method, as explained
earlier.

@node Help for developers
@chapter Help for developers

The auth-source library only has one function for external use.

@defun auth-source-user-or-password mode host port

Retrieve appropriate authentication tokens, determined by @var{mode},
for host @var{host} and @var{port}.  If @code{gnus-verbose} is 9 or
higher, debugging messages will be printed.

If @var{mode} is a list of strings, the function will return a list of
strings or @code{nil} objects.  If it's a string, the function will
return a string or a @code{nil} object.  Currently only the modes
``login'' and ``password'' are recognized but more may be added in the
future.

@var{host} is a string containing the host name.

@var{port} contains the protocol name (e.g. ``imap'') or
a port number.  It must be a string, corresponding to the port in the
users' netrc files.

@example
;; IMAP example
(setq auth (auth-source-user-or-password
            '("login" "password")
            "anyhostnamehere"
            "imap"))
(nth 0 auth) ; the login name
(nth 1 auth) ; the password
@end example

@end defun

@node Index
@chapter Index
@printindex cp

@node Function Index
@chapter Function Index
@printindex fn

@node Variable Index
@chapter Variable Index
@printindex vr

@bye

@c End:

@ignore
   arch-tag: 7b835fd3-473f-40fc-9776-1c4e49d26c94
@end ignore