CryptoAPI

Vladimir Vukicevic vladimir at ximian.com
Mon Sep 3 16:03:32 CDT 2001


Hi,

On Fri, 2001-08-17 at 07:23, Travis Michielsen wrote:
> I was going to start implementing the Cypto API (in advapi32.dll) over the 
> next few weeks.  As of yet these functions are no more than stubs.  However, 
> I am finding increased use of this API as more applications becomed 
> networkable and relying more heavily on internet connections.
> 
> I was hoping to implement these functions by using the OpenSSL library 
> (if/when available).  This library seems to have similar capabilities.

I had recently thought to start implementing CryptoAPI as well, when
someone pointed out your message to me.  Have you made any progress?  I
had planned to implement it as a single monolithic replacement that
provided the most common cryptography providers (at least inititally),
using libgcrypt.  libgcrypt is the back-end library under GnuPG;
unfortunately, it is currently under the GPL, so there would be issues
with shipping it with wine.  I'm not sure what the chances are of
getting libgcrypt relicensed under the LGPL -- it's a very nice library.
(www.gnupg.org, from CVS)

However, OpenSSL's license is incompatible with the GPL, hence any GPL'd
applications that wish to use an OpenSSL-backed CryptoAPI implementation
would be unable to do so.

> Another question is about design.  M$ seems to split the cryptographic 
> software into different dlls (rsabase.dll, rsasig.dll, dssbase.dll, etc.). 
> Should I do this as well so that, applications can use the native dlls if 
> necessary or should I simply implement it entirely though advapi32.dll which 
> and avoid the need to create several new (and very small) dlls under wine?  
> Because most of the code is already in another library (OpenSSL) creating 
> extra dlls seems abit unnecessary.

Doing this in terms of separate DLL's would most likely be ideal, but in
terms of getting something working short-term, it might be good to just
do a straight one-dll binding of RSA, DSS, and whatever else OpenSSL
supports...

	- Vlad






More information about the wine-devel mailing list