svn_auth.h File Reference

Subversion's authentication system. More...

#include <apr_pools.h>
#include "svn_types.h"

Go to the source code of this file.

Data Structures

struct  svn_auth_provider_t
 The main authentication "provider" vtable. More...
struct  svn_auth_provider_object_t
 A provider object, ready to be put into an array and given to svn_auth_open(). More...
struct  svn_auth_cred_simple_t
 SVN_AUTH_CRED_SIMPLE credentials. More...
struct  svn_auth_cred_username_t
 SVN_AUTH_CRED_USERNAME credentials. More...
struct  svn_auth_cred_ssl_client_cert_t
 SVN_AUTH_CRED_SSL_CLIENT_CERT credentials. More...
struct  svn_auth_cred_ssl_client_cert_pw_t
 SVN_AUTH_CRED_SSL_CLIENT_CERT_PW credentials. More...
struct  svn_auth_ssl_server_cert_info_t
 SSL server certificate information used by SVN_AUTH_CRED_SSL_SERVER_TRUST providers. More...
struct  svn_auth_cred_ssl_server_trust_t
 SVN_AUTH_CRED_SSL_SERVER_TRUST credentials. More...

SSL server certificate failure bits

Note:
These values are stored in the on disk auth cache by the SSL server certificate auth provider, so the meaning of these bits must not be changed.


#define SVN_AUTH_SSL_NOTYETVALID   0x00000001
 Certificate is not yet valid.
#define SVN_AUTH_SSL_EXPIRED   0x00000002
 Certificate has expired.
#define SVN_AUTH_SSL_CNMISMATCH   0x00000004
 Certificate's CN (hostname) does not match the remote hostname.
#define SVN_AUTH_SSL_UNKNOWNCA   0x00000008
 Certificate authority is unknown (i.e.
#define SVN_AUTH_SSL_OTHER   0x40000000
 Other failure.

Default credentials defines

Any 'default' credentials that came in through the application itself, (e.g. --username and --password options). Property values are const char *.

#define SVN_AUTH_PARAM_DEFAULT_USERNAME   SVN_AUTH_PARAM_PREFIX "username"
#define SVN_AUTH_PARAM_DEFAULT_PASSWORD   SVN_AUTH_PARAM_PREFIX "password"

Defines

#define SVN_AUTH_CRED_SIMPLE   "svn.simple"
 Simple username/password pair credential kind.
#define SVN_AUTH_CRED_USERNAME   "svn.username"
 Username credential kind.
#define SVN_AUTH_CRED_SSL_CLIENT_CERT   "svn.ssl.client-cert"
 SSL client certificate credential type.
#define SVN_AUTH_CRED_SSL_CLIENT_CERT_PW   "svn.ssl.client-passphrase"
 SSL client certificate passphrase credential type.
#define SVN_AUTH_CRED_SSL_SERVER_TRUST   "svn.ssl.server"
 SSL server verification credential type.
#define SVN_AUTH_PARAM_PREFIX   "svn:auth:"
 The auth-hash prefix indicating that the parameter is global.
#define SVN_AUTH_PARAM_NON_INTERACTIVE   SVN_AUTH_PARAM_PREFIX "non-interactive"
 The application doesn't want any providers to prompt users.
#define SVN_AUTH_PARAM_DONT_STORE_PASSWORDS
 The application doesn't want any providers to save passwords to disk.
#define SVN_AUTH_PARAM_NO_AUTH_CACHE   SVN_AUTH_PARAM_PREFIX "no-auth-cache"
 The application doesn't want any providers to save credentials to disk.
#define SVN_AUTH_PARAM_SSL_SERVER_FAILURES
 The following property is for SSL server cert providers.
#define SVN_AUTH_PARAM_SSL_SERVER_CERT_INFO
 The following property is for SSL server cert providers.
#define SVN_AUTH_PARAM_CONFIG   SVN_AUTH_PARAM_PREFIX "config"
 Some providers need access to the svn_config_t configuration.
#define SVN_AUTH_PARAM_SERVER_GROUP   SVN_AUTH_PARAM_PREFIX "server-group"
 The current server group.
#define SVN_AUTH_PARAM_CONFIG_DIR   SVN_AUTH_PARAM_PREFIX "config-dir"
 A configuration directory that overrides the default ~/.subversion.

Typedefs

typedef svn_auth_baton_t svn_auth_baton_t
 The type of a Subversion authentication object.
typedef svn_auth_iterstate_t svn_auth_iterstate_t
 The type of a Subversion authentication-iteration object.
typedef svn_error_t *(*) svn_auth_simple_prompt_func_t (svn_auth_cred_simple_t **cred, void *baton, const char *realm, const char *username, svn_boolean_t may_save, apr_pool_t *pool)
 Set *cred by prompting the user, allocating *cred in pool.
typedef svn_error_t *(*) svn_auth_username_prompt_func_t (svn_auth_cred_username_t **cred, void *baton, const char *realm, svn_boolean_t may_save, apr_pool_t *pool)
 Set *cred by prompting the user, allocating *cred in pool.
typedef svn_error_t *(*) svn_auth_ssl_server_trust_prompt_func_t (svn_auth_cred_ssl_server_trust_t **cred, void *baton, const char *realm, apr_uint32_t failures, const svn_auth_ssl_server_cert_info_t *cert_info, svn_boolean_t may_save, apr_pool_t *pool)
 Set *cred by prompting the user, allocating *cred in pool.
typedef svn_error_t *(*) svn_auth_ssl_client_cert_prompt_func_t (svn_auth_cred_ssl_client_cert_t **cred, void *baton, const char *realm, svn_boolean_t may_save, apr_pool_t *pool)
 Set *cred by prompting the user, allocating *cred in pool.
typedef svn_error_t *(*) svn_auth_ssl_client_cert_pw_prompt_func_t (svn_auth_cred_ssl_client_cert_pw_t **cred, void *baton, const char *realm, svn_boolean_t may_save, apr_pool_t *pool)
 Set *cred by prompting the user, allocating *cred in pool.

Functions

svn_auth_ssl_server_cert_info_tsvn_auth_ssl_server_cert_info_dup (const svn_auth_ssl_server_cert_info_t *info, apr_pool_t *pool)
 Return a deep copy of info, allocated in pool.
void svn_auth_open (svn_auth_baton_t **auth_baton, apr_array_header_t *providers, apr_pool_t *pool)
 Initialize an authentication system.
void svn_auth_set_parameter (svn_auth_baton_t *auth_baton, const char *name, const void *value)
 Set an authentication run-time parameter.
const void * svn_auth_get_parameter (svn_auth_baton_t *auth_baton, const char *name)
 Get an authentication run-time parameter.
svn_error_tsvn_auth_first_credentials (void **credentials, svn_auth_iterstate_t **state, const char *cred_kind, const char *realmstring, svn_auth_baton_t *auth_baton, apr_pool_t *pool)
 Get an initial set of credentials.
svn_error_tsvn_auth_next_credentials (void **credentials, svn_auth_iterstate_t *state, apr_pool_t *pool)
 Get another set of credentials, assuming previous ones failed to authenticate.
svn_error_tsvn_auth_save_credentials (svn_auth_iterstate_t *state, apr_pool_t *pool)
 Save a set of credentials.
void svn_auth_get_simple_prompt_provider (svn_auth_provider_object_t **provider, svn_auth_simple_prompt_func_t prompt_func, void *prompt_baton, int retry_limit, apr_pool_t *pool)
 Create and return *provider, an authentication provider of type svn_auth_cred_simple_t that gets information by prompting the user with prompt_func and prompt_baton.
void svn_auth_get_username_prompt_provider (svn_auth_provider_object_t **provider, svn_auth_username_prompt_func_t prompt_func, void *prompt_baton, int retry_limit, apr_pool_t *pool)
 Create and return *provider, an authentication provider of type svn_auth_cred_username_t that gets information by prompting the user with prompt_func and prompt_baton.
void svn_auth_get_simple_provider (svn_auth_provider_object_t **provider, apr_pool_t *pool)
 Create and return *provider, an authentication provider of type svn_auth_cred_simple_t that gets/sets information from the user's ~/.subversion configuration directory.
void svn_auth_get_windows_simple_provider (svn_auth_provider_object_t **provider, apr_pool_t *pool)
 Create and return *provider, an authentication provider of type svn_auth_cred_simple_t that gets/sets information from the user's ~/.subversion configuration directory.
void svn_auth_get_keychain_simple_provider (svn_auth_provider_object_t **provider, apr_pool_t *pool)
 Create and return *provider, an authentication provider of type svn_auth_cred_simple_t that gets/sets information from the user's ~/.subversion configuration directory.
void svn_auth_get_username_provider (svn_auth_provider_object_t **provider, apr_pool_t *pool)
 Create and return *provider, an authentication provider of type svn_auth_cred_username_t that gets/sets information from a user's ~/.subversion configuration directory.
void svn_auth_get_ssl_server_trust_file_provider (svn_auth_provider_object_t **provider, apr_pool_t *pool)
 Create and return *provider, an authentication provider of type svn_auth_cred_ssl_server_trust_t, allocated in pool.
void svn_auth_get_windows_ssl_server_trust_provider (svn_auth_provider_object_t **provider, apr_pool_t *pool)
 Create and return *provider, an authentication provider of type svn_auth_cred_ssl_server_trust_t, allocated in pool.
void svn_auth_get_ssl_client_cert_file_provider (svn_auth_provider_object_t **provider, apr_pool_t *pool)
 Create and return *provider, an authentication provider of type svn_auth_cred_ssl_client_cert_t, allocated in pool.
void svn_auth_get_ssl_client_cert_pw_file_provider (svn_auth_provider_object_t **provider, apr_pool_t *pool)
 Create and return *provider, an authentication provider of type svn_auth_cred_ssl_client_cert_pw_t, allocated in pool.
void svn_auth_get_ssl_server_trust_prompt_provider (svn_auth_provider_object_t **provider, svn_auth_ssl_server_trust_prompt_func_t prompt_func, void *prompt_baton, apr_pool_t *pool)
 Create and return *provider, an authentication provider of type svn_auth_cred_ssl_server_trust_t, allocated in pool.
void svn_auth_get_ssl_client_cert_prompt_provider (svn_auth_provider_object_t **provider, svn_auth_ssl_client_cert_prompt_func_t prompt_func, void *prompt_baton, int retry_limit, apr_pool_t *pool)
 Create and return *provider, an authentication provider of type svn_auth_cred_ssl_client_cert_t, allocated in pool.
void svn_auth_get_ssl_client_cert_pw_prompt_provider (svn_auth_provider_object_t **provider, svn_auth_ssl_client_cert_pw_prompt_func_t prompt_func, void *prompt_baton, int retry_limit, apr_pool_t *pool)
 Create and return *provider, an authentication provider of type svn_auth_cred_ssl_client_cert_pw_t, allocated in pool.


Detailed Description

Subversion's authentication system.

Definition in file svn_auth.h.


Function Documentation

void svn_auth_get_keychain_simple_provider ( svn_auth_provider_object_t **  provider,
apr_pool_t *  pool 
)

Create and return *provider, an authentication provider of type svn_auth_cred_simple_t that gets/sets information from the user's ~/.subversion configuration directory.

Allocate *provider in pool.

This is like svn_client_get_simple_provider(), except that the password is stored in the Mac OS KeyChain.

Since:
New in 1.4
Note:
This function is only available on Mac OS 10.2 and higher.

void svn_auth_get_simple_prompt_provider ( svn_auth_provider_object_t **  provider,
svn_auth_simple_prompt_func_t  prompt_func,
void *  prompt_baton,
int  retry_limit,
apr_pool_t *  pool 
)

Create and return *provider, an authentication provider of type svn_auth_cred_simple_t that gets information by prompting the user with prompt_func and prompt_baton.

Allocate *provider in pool.

If both SVN_AUTH_PARAM_DEFAULT_USERNAME and SVN_AUTH_PARAM_DEFAULT_PASSWORD are defined as runtime parameters in the auth_baton, then *provider will return the default arguments when svn_auth_first_credentials() is called. If svn_auth_first_credentials() fails, then *provider will re-prompt retry_limit times (via svn_auth_next_credentials()).

Since:
New in 1.4.

void svn_auth_get_simple_provider ( svn_auth_provider_object_t **  provider,
apr_pool_t *  pool 
)

Create and return *provider, an authentication provider of type svn_auth_cred_simple_t that gets/sets information from the user's ~/.subversion configuration directory.

Allocate *provider in pool.

If a default username or password is available, *provider will honor them as well, and return them when svn_auth_first_credentials() is called. (see SVN_AUTH_PARAM_DEFAULT_USERNAME and SVN_AUTH_PARAM_DEFAULT_PASSWORD).

Since:
New in 1.4.

void svn_auth_get_ssl_client_cert_file_provider ( svn_auth_provider_object_t **  provider,
apr_pool_t *  pool 
)

Create and return *provider, an authentication provider of type svn_auth_cred_ssl_client_cert_t, allocated in pool.

*provider retrieves its credentials from the configuration mechanism. The returned credential is used to load the appropriate client certificate for authentication when requested by a server.

Since:
New in 1.4.

void svn_auth_get_ssl_client_cert_prompt_provider ( svn_auth_provider_object_t **  provider,
svn_auth_ssl_client_cert_prompt_func_t  prompt_func,
void *  prompt_baton,
int  retry_limit,
apr_pool_t *  pool 
)

Create and return *provider, an authentication provider of type svn_auth_cred_ssl_client_cert_t, allocated in pool.

*provider retrieves its credentials by using the prompt_func and prompt_baton. The returned credential is used to load the appropriate client certificate for authentication when requested by a server. The prompt will be retried retry_limit times.

Since:
New in 1.4.

void svn_auth_get_ssl_client_cert_pw_file_provider ( svn_auth_provider_object_t **  provider,
apr_pool_t *  pool 
)

Create and return *provider, an authentication provider of type svn_auth_cred_ssl_client_cert_pw_t, allocated in pool.

*provider retrieves its credentials from the configuration mechanism. The returned credential is used when a loaded client certificate is protected by a passphrase.

Since:
New in 1.4.

void svn_auth_get_ssl_client_cert_pw_prompt_provider ( svn_auth_provider_object_t **  provider,
svn_auth_ssl_client_cert_pw_prompt_func_t  prompt_func,
void *  prompt_baton,
int  retry_limit,
apr_pool_t *  pool 
)

Create and return *provider, an authentication provider of type svn_auth_cred_ssl_client_cert_pw_t, allocated in pool.

*provider retrieves its credentials by using the prompt_func and prompt_baton. The returned credential is used when a loaded client certificate is protected by a passphrase. The prompt will be retried retry_limit times.

Since:
New in 1.4.

void svn_auth_get_ssl_server_trust_file_provider ( svn_auth_provider_object_t **  provider,
apr_pool_t *  pool 
)

Create and return *provider, an authentication provider of type svn_auth_cred_ssl_server_trust_t, allocated in pool.

*provider retrieves its credentials from the configuration mechanism. The returned credential is used to override SSL security on an error.

Since:
New in 1.4.

void svn_auth_get_ssl_server_trust_prompt_provider ( svn_auth_provider_object_t **  provider,
svn_auth_ssl_server_trust_prompt_func_t  prompt_func,
void *  prompt_baton,
apr_pool_t *  pool 
)

Create and return *provider, an authentication provider of type svn_auth_cred_ssl_server_trust_t, allocated in pool.

*provider retrieves its credentials by using the prompt_func and prompt_baton. The returned credential is used to override SSL security on an error.

Since:
New in 1.4.

void svn_auth_get_username_prompt_provider ( svn_auth_provider_object_t **  provider,
svn_auth_username_prompt_func_t  prompt_func,
void *  prompt_baton,
int  retry_limit,
apr_pool_t *  pool 
)

Create and return *provider, an authentication provider of type svn_auth_cred_username_t that gets information by prompting the user with prompt_func and prompt_baton.

Allocate *provider in pool.

If SVN_AUTH_PARAM_DEFAULT_USERNAME is defined as a runtime parameter in the auth_baton, then *provider will return the default argument when svn_auth_first_credentials() is called. If svn_auth_first_credentials() fails, then *provider will re-prompt retry_limit times (via svn_auth_next_credentials()).

Since:
New in 1.4.

void svn_auth_get_username_provider ( svn_auth_provider_object_t **  provider,
apr_pool_t *  pool 
)

Create and return *provider, an authentication provider of type svn_auth_cred_username_t that gets/sets information from a user's ~/.subversion configuration directory.

Allocate *provider in pool.

If a default username is available, *provider will honor it, and return it when svn_auth_first_credentials() is called. (See SVN_AUTH_PARAM_DEFAULT_USERNAME.)

Since:
New in 1.4.

void svn_auth_get_windows_simple_provider ( svn_auth_provider_object_t **  provider,
apr_pool_t *  pool 
)

Create and return *provider, an authentication provider of type svn_auth_cred_simple_t that gets/sets information from the user's ~/.subversion configuration directory.

Allocate *provider in pool.

This is like svn_client_get_simple_provider(), except that, when running on Window 2000 or newer (or any other Windows version that includes the CryptoAPI), the provider encrypts the password before storing it to disk. On earlier versions of Windows, the provider does nothing.

Since:
New in 1.4.
Note:
This function is only available on Windows.

An administrative password reset may invalidate the account's secret key. This function will detect that situation and behave as if the password were not cached at all.

void svn_auth_get_windows_ssl_server_trust_provider ( svn_auth_provider_object_t **  provider,
apr_pool_t *  pool 
)

Create and return *provider, an authentication provider of type svn_auth_cred_ssl_server_trust_t, allocated in pool.

This provider automatically validates ssl server certificates with the CryptoApi, like Internet Explorer and the Windows network API do. This allows the rollout of root certificates via Windows Domain policies, instead of Subversion specific configuration.

Since:
New in 1.5.
Note:
This function is only available on Windows.


Generated on Wed Oct 22 14:54:29 2008 for Subversion by  doxygen 1.4.7