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?
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.