eter, pass NULL for @a value. */ void svn_auth_set_parameter(svn_auth_baton_t *auth_baton, const char *name, const void *value); /** Get an authentication run-time parameter. * * Return a value for run-time parameter @a name from @a auth_baton. * Return NULL if the parameter doesn't exist. */ const void * svn_auth_get_parameter(svn_auth_baton_t *auth_baton, const char *name); /** Universal run-time parameters, made available to all providers. If you are writing a new provider, then to be a "good citizen", you should notice these global parameters! Note that these run-time params should be treated as read-only by providers; the application is responsible for placing them into the auth_baton hash. */ /** The auth-hash prefix indicating that the parameter is global. */ #define SVN_AUTH_PARAM_PREFIX "svn:auth:" /** * @name Default credentials defines * Property values are const char *. * @{ */ /** Default username provided by the application itself (e.g. --username) */ #define SVN_AUTH_PARAM_DEFAULT_USERNAME SVN_AUTH_PARAM_PREFIX "username" /** Default password provided by the application itself (e.g. --password) */ #define SVN_AUTH_PARAM_DEFAULT_PASSWORD SVN_AUTH_PARAM_PREFIX "password" /** @} */ /** @brief The application doesn't want any providers to prompt * users. Property value is irrelevant; only property's existence * matters. */ #define SVN_AUTH_PARAM_NON_INTERACTIVE SVN_AUTH_PARAM_PREFIX "non-interactive" /** @brief The application doesn't want any providers to save passwords * to disk. Property value is irrelevant; only property's existence * matters. */ #define SVN_AUTH_PARAM_DONT_STORE_PASSWORDS SVN_AUTH_PARAM_PREFIX \ "dont-store-passwords" /** @brief Indicates whether providers may save passwords to disk in * plaintext. Property value can be either SVN_CONFIG_TRUE, * SVN_CONFIG_FALSE, or SVN_CONFIG_ASK. * @since New in 1.6. */ #define SVN_AUTH_PARAM_STORE_PLAINTEXT_PASSWORDS SVN_AUTH_PARAM_PREFIX \ "store-plaintext-passwords" /** @brief The application doesn't want any providers to save passphrase * to disk. Property value is irrelevant; only property's existence * matters. * @since New in 1.6. */ #define SVN_AUTH_PARAM_DONT_STORE_SSL_CLIENT_CERT_PP \ SVN_AUTH_PARAM_PREFIX "dont-store-ssl-client-cert-pp" /** @brief Indicates whether providers may save passphrase to disk in * plaintext. Property value can be either SVN_CONFIG_TRUE, * SVN_CONFIG_FALSE, or SVN_CONFIG_ASK. * @since New in 1.6. */ #define SVN_AUTH_PARAM_STORE_SSL_CLIENT_CERT_PP_PLAINTEXT \ SVN_AUTH_PARAM_PREFIX "store-ssl-client-cert-pp-plaintext" /** @brief The application doesn't want any providers to save credentials * to disk. Property value is irrelevant; only property's existence * matters. */ #define SVN_AUTH_PARAM_NO_AUTH_CACHE SVN_AUTH_PARAM_PREFIX "no-auth-cache" /** @brief The following property is for SSL server cert providers. This * provides a pointer to an @c apr_uint32_t containing the failures * detected by the certificate validator. */ #define SVN_AUTH_PARAM_SSL_SERVER_FAILURES SVN_AUTH_PARAM_PREFIX \ "ssl:failures" /** @brief The following property is for SSL server cert providers. This * provides the cert info (svn_auth_ssl_server_cert_info_t). */ #define SVN_AUTH_PARAM_SSL_SERVER_CERT_INFO SVN_AUTH_PARAM_PREFIX \ "ssl:cert-info" /** This provides a pointer to a @c svn_config_t containting the config * category. */ #define SVN_AUTH_PARAM_CONFIG_CATEGORY_CONFIG SVN_AUTH_PARAM_PREFIX \ "config-category-config" /** This provides a pointer to a @c svn_config_t containting the servers * category. */ #define SVN_AUTH_PARAM_CONFIG_CATEGORY_SERVERS SVN_AUTH_PARAM_PREFIX \ "config-category-servers" /** @deprecated Provided for backward compatibility with the 1.5 API. */ #define SVN_AUTH_PARAM_CONFIG SVN_AUTH_PARAM_CONFIG_CATEGORY_SERVERS /** The current server group. */ #define SVN_AUTH_PARAM_SERVER_GROUP SVN_AUTH_PARAM_PREFIX "server-group" /** @brief A configuration directory that overrides the default * ~/.subversion. */ #define SVN_AUTH_PARAM_CONFIG_DIR SVN_AUTH_PARAM_PREFIX "config-dir" /** Get an initial set of credentials. * * Ask @a auth_baton to set @a *credentials to a set of credentials * defined by @a cred_kind and valid within @a realmstring, or NULL if * no credentials are available. Otherwise, return an iteration state * in @a *state, so that the caller can call * svn_auth_next_credentials(), in case the first set of credentials * fails to authenticate. * * Use @a pool to allocate @a *state, and for temporary allocation. * Note that @a *credentials will be allocated in @a auth_baton's pool. */ svn_error_t * svn_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 another set of credentials, assuming previous ones failed to * authenticate. * * Use @a state to fetch a different set of @a *credentials, as a * follow-up to svn_auth_first_credentials() or * svn_auth_next_credentials(). If no more credentials are available, * set @a *credentials to NULL. * * Note that @a *credentials will be allocated in @c auth_baton's pool. */ svn_error_t * svn_auth_next_credentials(void **credentials, svn_auth_iterstate_t *state, apr_pool_t *pool); /** Save a set of credentials. * * Ask @a state to store the most recently returned credentials, * presumably because they successfully authenticated. * All allocations should be done in @a pool. * * If no credentials were ever returned, do nothing. */ svn_error_t * svn_auth_save_credentials(svn_auth_iterstate_t *state, apr_pool_t *pool); /** Forget a set (or all) memory-cached credentials. * * Remove references (if any) in @a auth_baton to credentials cached * therein. If @a cred_kind and @a realmstring are non-NULL, forget * only the credentials associated with those credential types and * realm. Otherwise @a cred_kind and @a realmstring must both be * NULL, and this function will forget all credentials cached within * @a auth_baton. * * @note This function does not affect persisted authentication * credential storage at all. It is merely a way to cause Subversion * to forget about credentials already fetched from a provider, * forcing them to be fetched again later should they be required. * * @since New in 1.8. */ svn_error_t * svn_auth_forget_credentials(svn_auth_baton_t *auth_baton, const char *cred_kind, const char *realmstring, apr_pool_t *pool); /** @} */ /** Set @a *provider to an authentication provider of type * svn_auth_cred_simple_t that gets information by prompting the user * with @a prompt_func and @a prompt_baton. Allocate @a *provider in * @a pool. * * If both @c SVN_AUTH_PARAM_DEFAULT_USERNAME and * @c SVN_AUTH_PARAM_DEFAULT_PASSWORD are defined as runtime * parameters in the @c auth_baton, then @a *provider will return the * default arguments when svn_auth_first_credentials() is called. If * svn_auth_first_credentials() fails, then @a *provider will * re-prompt @a retry_limit times (via svn_auth_next_credentials()). * For infinite retries, set @a retry_limit to value less than 0. * * @since New in 1.4. */ 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); /** Set @a *provider to an authentication provider of type @c * svn_auth_cred_username_t that gets information by prompting the * user with @a prompt_func and @a prompt_baton. Allocate @a *provider * in @a pool. * * If @c SVN_AUTH_PARAM_DEFAULT_USERNAME is defined as a runtime * parameter in the @c auth_baton, then @a *provider will return the * default argument when svn_auth_first_credentials() is called. If * svn_auth_first_credentials() fails, then @a *provider will * re-prompt @a retry_limit times (via svn_auth_next_credentials()). * For infinite retries, set @a retry_limit to value less than 0. * * @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); /** Set @a *provider to an authentication provider of type @c * svn_auth_cred_simple_t that gets/sets information from the user's * ~/.subversion configuration directory. * * If the provider is going to save the password unencrypted, it calls @a * plaintext_prompt_func, passing @a prompt_baton, before saving the * password. * * If @a plaintext_prompt_func is NULL it is not called and the answer is * assumed to be TRUE. This matches the deprecated behaviour of storing * unencrypted passwords by default, and is only done this way for backward * compatibility reasons. * Client developers are highly encouraged to provide this callback * to ensure their users are made aware of the fact that their password * is going to be stored unencrypted. In the future, providers may * default to not storing the password unencrypted if this callback is NULL. * * Clients can however set the callback to NULL and set * SVN_AUTH_PARAM_STORE_PLAINTEXT_PASSWORDS to SVN_CONFIG_FALSE or * SVN_CONFIG_TRUE to enforce a certain behaviour. * * Allocate @a *provider in @a pool. * * If a default username or password is available, @a *provider will * honor them as well, and return them when * svn_auth_first_credentials() is called. (see @c * SVN_AUTH_PARAM_DEFAULT_USERNAME and @c * SVN_AUTH_PARAM_DEFAULT_PASSWORD). * * @since New in 1.6. */ void svn_auth_get_simple_provider2( svn_auth_provider_object_t **provider, svn_auth_plaintext_prompt_func_t plaintext_prompt_func, void *prompt_baton, apr_pool_t *pool); /** Like svn_auth_get_simple_provider2, but without the ability to * call the svn_auth_plaintext_prompt_func_t callback, and the provider * always assumes that it is allowed to store the password in plaintext. * * @deprecated Provided for backwards compatibility with the 1.5 API. * @since New in 1.4. */ SVN_DEPRECATED void svn_auth_get_simple_provider(svn_auth_provider_object_t **provider, apr_pool_t *pool); /** Set @a *provider to an authentication provider of type @c * svn_auth_provider_object_t, or return @c NULL if the provider is not * available for the requested platform or the requested provider is unknown. * * Valid @a provider_name values are: "gnome_keyring", "keychain", "kwallet", * "gpg_agent", and "windows". * * Valid @a provider_type values are: "simple", "ssl_client_cert_pw" and * "ssl_server_trust". * * Allocate @a *provider in @a pool. * * What actually happens is we invoke the appropriate provider function to * supply the @a provider, like so: * * svn_auth_get___provider(@a provider, @a pool); * * @since New in 1.6. */ svn_error_t * svn_auth_get_platform_specific_provider( svn_auth_provider_object_t **provider, const char *provider_name, const char *provider_type, apr_pool_t *pool); /** Set @a *providers to an array of svn_auth_provider_object_t * * objects. * Only client authentication providers available for the current platform are * returned. Order of the platform-specific authentication providers is * determined by the 'password-stores' configuration option which is retrieved * from @a config. @a config can be NULL. * * Create and allocate @a *providers in @a pool. * * Default order of the platform-specific authentication providers: * 1. gnome-keyring * 2. kwallet * 3. keychain * 4. gpg-agent * 5. windows-cryptoapi * * @since New in 1.6. */ svn_error_t * svn_auth_get_platform_specific_client_providers( apr_array_header_t **providers, svn_config_t *config, apr_pool_t *pool); #if (defined(WIN32) && !defined(__MINGW32__)) || defined(DOXYGEN) /** * Set @a *provider to an authentication provider of type @c * svn_auth_cred_simple_t that gets/sets information from the user's * ~/.subversion configuration directory. Allocate @a *provider in * @a pool. * * This is like svn_auth_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. * * @note 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. * @deprecated Provided for backwards compatibility with the 1.8 API. Use * svn_auth_get_platform_specific_provider with provider_name of "windows" * and provider_type of "simple". */ SVN_DEPRECATED void svn_auth_get_windows_simple_provider(svn_auth_provider_object_t **provider, apr_pool_t *pool); /** * Set @a *provider to an authentication provider of type @c * svn_auth_cred_ssl_client_cert_pw_t that gets/sets information from the * user's ~/.subversion configuration directory. Allocate @a *provider in * @a pool. * * This is like svn_auth_get_ssl_client_cert_pw_file_provider(), except that * when running on Window 2000 or newer, the provider encrypts the password * before storing it to disk. On earlier versions of Windows, the provider * does nothing. * * @since New in 1.6 * @note This function is only available on Windows. * * @note 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. * @deprecated Provided for backwards compatibility with the 1.8 API. * Use svn_auth_get_platform_specific_provider with provider_name * of "windows" and provider_type of "ssl_client_cert_pw". */ SVN_DEPRECATED void svn_auth_get_windows_ssl_client_cert_pw_provider( svn_auth_provider_object_t **provider, apr_pool_t *pool); /** * Set @a *provider to an authentication provider of type @c * svn_auth_cred_ssl_server_trust_t, allocated in @a 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. * @deprecated Provided for backwards compatibility with the 1.8 API. * Use svn_auth_get_platform_specific_provider with provider_name * of "windows" and provider_type of "ssl_server_trust". */ SVN_DEPRECATED void svn_auth_get_windows_ssl_server_trust_provider( svn_auth_provider_object_t **provider, apr_pool_t *pool); #endif /* WIN32 && !__MINGW32__ || DOXYGEN */ #if defined(DARWIN) || defined(DOXYGEN) /** * Set @a *provider to an authentication provider of type @c * svn_auth_cred_simple_t that gets/sets information from the user's * ~/.subversion configuration directory. Allocate @a *provider in * @a pool. * * This is like svn_auth_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. * @deprecated Provided for backwards compatibility with the 1.8 API. * Use svn_auth_get_platform_specific_provider with provider_name * of "keychain" and provider_type of "simple". */ SVN_DEPRECATED void svn_auth_get_keychain_simple_provider(svn_auth_provider_object_t **provider, apr_pool_t *pool); /** * Set @a *provider to an authentication provider of type @c * svn_auth_cred_ssl_client_cert_pw_t that gets/sets information from the * user's ~/.subversion configuration directory. Allocate @a *provider in * @a pool. * * This is like svn_auth_get_ssl_client_cert_pw_file_provider(), except * that the password is stored in the Mac OS KeyChain. * * @since New in 1.6 * @note This function is only available on Mac OS 10.2 and higher. * @deprecated Provided for backwards compatibility with the 1.8 API. * Use svn_auth_get_platform_specific_provider with provider_name * of "keychain" and provider_type of "ssl_client_cert_pw". */ SVN_DEPRECATED void svn_auth_get_keychain_ssl_client_cert_pw_provider( svn_auth_provider_object_t **provider, apr_pool_t *pool); #endif /* DARWIN || DOXYGEN */ /* Note that the gnome keyring unlock prompt related items below must be * declared for all platforms in order to allow SWIG interfaces to be * used regardless of the platform. */ /** A type of callback function for obtaining the GNOME Keyring password. * * In this callback, the client should ask the user for default keyring * @a keyring_name password. * * The answer is returned in @a *keyring_password. * @a baton is an implementation-specific closure. * All allocations should be done in @a pool. * * @since New in 1.6 */ typedef svn_error_t *(*svn_auth_gnome_keyring_unlock_prompt_func_t)( char **keyring_password, const char *keyring_name, void *baton, apr_pool_t *pool); /** libsvn_auth_gnome_keyring-specific run-time parameters. */ /** @brief The pointer to function which prompts user for GNOME Keyring * password. * The type of this pointer should be svn_auth_gnome_keyring_unlock_prompt_func_t. * @deprecated Only used by old libgnome-keyring implementation. */ #define SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_FUNC "gnome-keyring-unlock-prompt-func" /** @brief The baton which is passed to * @c *SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_FUNC. * @deprecated Only used by old libgnome-keyring implementation. */ #define SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_BATON "gnome-keyring-unlock-prompt-baton" #if (!defined(DARWIN) && !defined(WIN32)) || defined(DOXYGEN) /** * Get libsvn_auth_gnome_keyring version information. * * @since New in 1.6 */ const svn_version_t * svn_auth_gnome_keyring_version(void); /** * Set @a *provider to an authentication provider of type @c * svn_auth_cred_simple_t that gets/sets information from the user's * ~/.subversion configuration directory. * * This is like svn_client_get_simple_provider(), except that the * password is stored in GNOME Keyring. * * If the GNOME Keyring is locked the old libgnome-keyring provider calls * @c *SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_FUNC in order to unlock * the keyring. * * @c SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_BATON is passed to * @c *SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_FUNC. * * Allocate @a *provider in @a pool. * * @since New in 1.6 * @note This function actually works only on systems with * libsvn_auth_gnome_keyring and GNOME Keyring installed. * @deprecated Provided for backwards compatibility with the 1.8 API. * Use svn_auth_get_platform_specific_provider with provider_name * of "gnome_keyring" and provider_type of "simple". */ SVN_DEPRECATED void svn_auth_get_gnome_keyring_simple_provider( svn_auth_provider_object_t **provider, apr_pool_t *pool); /** * Set @a *provider to an authentication provider of type @c * svn_auth_cred_ssl_client_cert_pw_t that gets/sets information from the * user's ~/.subversion configuration directory. * * This is like svn_client_get_ssl_client_cert_pw_file_provider(), except * that the password is stored in GNOME Keyring. * * If the GNOME Keyring is locked the provider calls * @c *SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_FUNC in order to unlock * the keyring. * * @c SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_BATON is passed to * @c *SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_FUNC. * * Allocate @a *provider in @a pool. * * @since New in 1.6 * @note This function actually works only on systems with * libsvn_auth_gnome_keyring and GNOME Keyring installed. * @deprecated Provided for backwards compatibility with the 1.8 API. * Use svn_auth_get_platform_specific_provider with provider_name * of "gnome_keyring" and provider_type of "ssl_client_cert_pw". */ SVN_DEPRECATED void svn_auth_get_gnome_keyring_ssl_client_cert_pw_provider( svn_auth_provider_object_t **provider, apr_pool_t *pool); /** * Get libsvn_auth_kwallet version information. * * @since New in 1.6 */ const svn_version_t * svn_auth_kwallet_version(void); /** * Set @a *provider to an authentication provider of type @c * svn_auth_cred_simple_t that gets/sets information from the user's * ~/.subversion configuration directory. Allocate @a *provider in * @a pool. * * This is like svn_client_get_simple_provider(), except that the * password is stored in KWallet. * * @since New in 1.6 * @note This function actually works only on systems with libsvn_auth_kwallet * and KWallet installed. * @deprecated Provided for backwards compatibility with the 1.8 API. * Use svn_auth_get_platform_specific_provider with provider_name * of "kwallet" and provider_type of "simple". */ SVN_DEPRECATED void svn_auth_get_kwallet_simple_provider(svn_auth_provider_object_t **provider, apr_pool_t *pool); /** * Set @a *provider to an authentication provider of type @c * svn_auth_cred_ssl_client_cert_pw_t that gets/sets information from the * user's ~/.subversion configuration directory. Allocate @a *provider in * @a pool. * * This is like svn_client_get_ssl_client_cert_pw_file_provider(), except * that the password is stored in KWallet. * * @since New in 1.6 * @note This function actually works only on systems with libsvn_auth_kwallet * and KWallet installed. * @deprecated Provided for backwards compatibility with the 1.8 API. * Use svn_auth_get_platform_specific_provider with provider_name * of "kwallet" and provider_type of "ssl_client_cert_pw". */ SVN_DEPRECATED void svn_auth_get_kwallet_ssl_client_cert_pw_provider( svn_auth_provider_object_t **provider, apr_pool_t *pool); #endif /* (!DARWIN && !WIN32) || DOXYGEN */ #if !defined(WIN32) || defined(DOXYGEN) /** * Set @a *provider to an authentication provider of type @c * svn_auth_cred_simple_t that gets/sets information from the user's * ~/.subversion configuration directory. * * This is like svn_client_get_simple_provider(), except that the * password is obtained from gpg_agent, which will keep it in * a memory cache. * * Allocate @a *provider in @a pool. * * @since New in 1.8 * @note This function actually works only on systems with * GNU Privacy Guard installed. * @deprecated Provided for backwards compatibility with the 1.8 API. * Use svn_auth_get_platform_specific_provider with provider_name * of "gpg_agent" and provider_type of "simple". */ SVN_DEPRECATED void svn_auth_get_gpg_agent_simple_provider (svn_auth_provider_object_t **provider, apr_pool_t *pool); #endif /* !defined(WIN32) || defined(DOXYGEN) */ /** Set @a *provider to an authentication provider of type @c * svn_auth_cred_username_t that gets/sets information from a user's * ~/.subversion configuration directory. Allocate @a *provider in * @a pool. * * If a default username is available, @a *provider will honor it, * and return it when svn_auth_first_credentials() is called. (See * @c SVN_AUTH_PARAM_DEFAULT_USERNAME.) * * @since New in 1.4. */ void svn_auth_get_username_provider(svn_auth_provider_object_t **provider, apr_pool_t *pool); /** Set @a *provider to an authentication provider of type @c * svn_auth_cred_ssl_server_trust_t, allocated in @a pool. * * @a *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_file_provider( svn_auth_provider_object_t **provider, apr_pool_t *pool); /** Set @a *provider to an authentication provider of type @c * svn_auth_cred_ssl_client_cert_t, allocated in @a pool. * * @a *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_file_provider( svn_auth_provider_object_t **provider, apr_pool_t *pool); /** Set @a *provider to an authentication provider of type @c * svn_auth_cred_ssl_client_cert_pw_t that gets/sets information from the user's * ~/.subversion configuration directory. * * If the provider is going to save the passphrase unencrypted, * it calls @a plaintext_passphrase_prompt_func, passing @a * prompt_baton, before saving the passphrase. * * If @a plaintext_passphrase_prompt_func is NULL it is not called * and the passphrase is not stored in plaintext. * Client developers are highly encouraged to provide this callback * to ensure their users are made aware of the fact that their passphrase * is going to be stored unencrypted. * * Clients can however set the callback to NULL and set * SVN_AUTH_PARAM_STORE_SSL_CLIENT_CERT_PP_PLAINTEXT to SVN_CONFIG_FALSE or * SVN_CONFIG_TRUE to enforce a certain behaviour. * * Allocate @a *provider in @a pool. * * @since New in 1.6. */ void svn_auth_get_ssl_client_cert_pw_file_provider2( svn_auth_provider_object_t **provider, svn_auth_plaintext_passphrase_prompt_func_t plaintext_passphrase_prompt_func, void *prompt_baton, apr_pool_t *pool); /** Like svn_auth_get_ssl_client_cert_pw_file_provider2, but without * the ability to call the svn_auth_plaintext_passphrase_prompt_func_t * callback, and the provider always assumes that it is not allowed * to store the passphrase in plaintext. * * @deprecated Provided for backwards compatibility with the 1.5 API. * @since New in 1.4. */ SVN_DEPRECATED void svn_auth_get_ssl_client_cert_pw_file_provider( svn_auth_provider_object_t **provider, apr_pool_t *pool); /** Set @a *provider to an authentication provider of type @c * svn_auth_cred_ssl_server_trust_t, allocated in @a pool. * * @a *provider retrieves its credentials by using the @a prompt_func * and @a prompt_baton. 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); /** Set @a *provider to an authentication provider of type @c * svn_auth_cred_ssl_client_cert_t, allocated in @a pool. * * @a *provider retrieves its credentials by using the @a prompt_func * and @a 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 @a retry_limit times. For * infinite retries, set @a retry_limit to value less than 0. * * @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); /** Set @a *provider to an authentication provider of type @c * svn_auth_cred_ssl_client_cert_pw_t, allocated in @a pool. * * @a *provider retrieves its credentials by using the @a prompt_func * and @a prompt_baton. The returned credential is used when a loaded * client certificate is protected by a passphrase. The prompt will * be retried @a retry_limit times. For infinite retries, set * @a retry_limit to value less than 0. * * @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); #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* SVN_AUTH_H */