On 09.06.2011 21:11, Philip Martin wrote:
Stefan Sperling<s...@elego.de>  writes:

On Thu, Jun 09, 2011 at 07:56:47PM +0200, Stefan Küng wrote:
Hi,

The callback for client certs currently has the following format:
svn_error_t* callback(svn_auth_cred_ssl_client_cert_t **cred, void
*baton, const char * realm, svn_boolean_t /*may_save*/, apr_pool_t
*pool);

As you can see, the callback expects a path to a file.

Would it be possible to extend that callback so that not a file but
the *content* of that cert file can be passed back? Maybe with two
more parameters, one the pointer to the data and the second the
length of the data in bytes.

The reason I would like this extension is that I can get the client
certificates from the Windows cert store, but there I get the
certificates in memory only. So now I have to save that memory cert
first to a file so I can pass it back in the callback.

Thoughts?

It sounds like a good thing to support.

The API would need to be rev'd of course so this would be for 1.7 only.

Maybe change svn_auth_cred_ssl_client_cert_t to contain an svn_stream_t
instead of a file name? That would solve both use cases.
TSVN could create a stream to wrap the buffer, and existing callers
(and the compat code) would wrap the file in a stream.

Just to be clear: we can't change svn_auth_cred_ssl_client_cert_t, it is
one of the things that would need to rev'd with a new definition such as
svn_auth_cred_ssl_client_cert2_t.  Then you need to rev the callback,
etc.

Yes, of course.
I looked at the code a little bit, and it seems that for this to work, at least neon would have to be patched as well. Because neon expects the certificate in a file (ne_ssl_clicert_read - haven't found a function which would do the same as ne_ssl_clicert_read but with data from memory).

So I guess even though I think this would be great to have, it just won't work for now... :(

Stefan

--
       ___
  oo  // \\      "De Chelonian Mobile"
 (_,\/ \_/ \     TortoiseSVN
   \ \_/_\_/>    The coolest Interface to (Sub)Version Control
   /_/   \_\     http://tortoisesvn.net

Reply via email to