Checkout
rhuijben
committed
on 16 Nov 08
To complete issue #2489, implement secure client certificate passphrase
caching for Windows CryptoAPI.

* subversion/include/private/svn_au… Show more
To complete issue #2489, implement secure client certificate passphrase

caching for Windows CryptoAPI.

* subversion/include/private/svn_auth_private.h

 (svn_auth__ssl_client_cert_pw_file_save_creds_helper): Update documentation

   to note that it is used by the windows cryptoapi store.

 (svn_auth__ssl_client_cert_pw_get): Add passphrase getter for use by the

   Windows crypto provider.

 (svn_auth__ssl_client_cert_pw_set): Add passphrase setter for use by the

   Windows crypto provider.

* subversion/include/svn_auth.h

 (svn_auth_get_windows_ssl_client_cert_pw_provider): Add Windows Crypto api

   ssl client certificate passphrase provider.

* subversion/libsvn_subr/auth.c

 (svn_auth_get_platform_specific_provider): Handle requests for windows

   ssl_client_cert_pw.

* subversion/libsvn_subr/cmdline.c

 (svn_cmdline_create_auth_baton): Register Windows Crypto api ssl client

   certificate passphrase provider in the auth batton.

* subversion/libsvn_subr/ssl_client_cert_pw_providers.c

 (simple_passphrase_get): Renamed to ...

 (svn_auth__ssl_client_cert_pw_get): .... and remove static to allow reuse

   by the Windows Crypto api implementation.

 (simple_passphrase_set): Renamed to ...

 svn_auth__ssl_client_cert_pw_set): ... and remove static to allow reuse

   by the Windows Crypto api implementation.

 (svn_auth__ssl_client_cert_pw_file_save_creds_helper): Mark that passphrases

   saved by the Windows Crypto api are encrypted to remove the confirmation

   prompt.

 (ssl_client_cert_pw_file_first_credentials,

  ssl_client_cert_pw_file_save_credentials): Update references to

   simple_passphrase_*.

* subversion/libsvn_subr/win32_crypto.c

 (windows_ssl_client_cert_pw_encrypter,

  windows_ssl_client_cert_pw_decrypter,

  windows_ssl_client_cert_pw_first_creds,

  windows_ssl_client_cert_pw_save_creds,

  windows_ssl_client_cert_pw_provider): Add ssl client certificate passphrase

   provider, forwarding caching and save requests to the file provider like

   the simple provider.

 (svn_auth_get_windows_ssl_client_cert_pw_provider): Add registration function

   for the Windows Crypto api ssl client certificate passphrase provider.

* subversion/tests/libsvn_subr/auth-test.c

 (test_platform_specific_auth_providers): Test registration of the CryptoApi

   provider via svn_auth_get_platform_specific_provider.

Show less