Hi,
 Yes, we have a DLL used by our products, srCryptoUtils.DLL which
links in the FIPS version of cryptopp.dll and exposes a generic API
that our server products use. We have a 64 bit configuration called
srCryptoUtils.dll used by our server products and then we rebuild it
(just under a different output name) and call it wdCryptoUtils.DLL
which is used by our WebDrive client.

 Our server service loads into memory which loads srCryptoUtils which
loads cryptopp.dll and forces the s_pNew and s_pDelete to be pushed
into our srCryptoUtils via SetNewAndDeleteFromCryptoPP(); in
srCryptoUtils we store them for use...this part works great.

 In our server product, we use NT Impersonation which is done by
calling ::LogonUser(). Internally, LogonUser() will authenticate the
user and will then do some networking stuff, such as enumerating the
Network Provider DLLs. Since our WebDrive is a network provider DLL,
it get's loaded into memory by LogonUser() (probably through a call to
LoadLibrary). When this happens, our WebDrive NP will force the
loading of wdCryptoUtils.dll which is also linked to cryptopp. a 'new'
call comes in to our wdCryptoUtils.dll before any call of
SetNewAndDeleteFromCryptoPP().

 I have also been able to reproduce this if I simply start my server
service.exe and make a call to LoadLibrary("wdCryptoUtils.dll") from
inside of my InitInstance()

Michael


-- 
You received this message because you are subscribed to the "Crypto++ Users" 
Google Group.
To unsubscribe, send an email to [email protected].
More information about Crypto++ and this group is available at 
http://www.cryptopp.com.

Reply via email to