I also face the same problem with the same compiler as well.

Debugger told me dlltest failed because AutoSeededX917RNG<AES> commits
an access violation exception, which results in the crash of
X917RNG_KnownAnswerTest, inside its default constructor.

Further investigation shows that the actual problem comes from sse2-
asm code of the new implementation of CryptoPP::AES but I'm still
unable to figure out what's wrong.

So here are some workarounds you can consider until someone can
actually fix it:

a. Using another compiler to build CryptoPP (MSVC90 or even non-SP1
MSVC80 for example). I'm the one who think this may be a compiler bug
because: [1] release-shared variant still works well; [2] All DLLs I
built using gcc do not produce this problem with SSE2.

b. Building debug-shared CryptoPP library without SSE2. The easiest
way is to modify config.h as below:

#ifndef CRYPTOPP_CONFIG_H
#define CRYPTOPP_CONFIG_H
...
...
#ifdef CRYPTOPP_EXPORTS
#       define CRYPTOPP_IS_DLL
#       define CRYPTOPP_DLL __declspec(dllexport)
#elif defined(CRYPTOPP_IMPORTS)
#       define CRYPTOPP_IS_DLL
#       define CRYPTOPP_DLL __declspec(dllimport)
#else
#       define CRYPTOPP_DLL
#endif

//Add the following lines to config.h
//Begin additional lines
#if (defined(_MSC_VER) && (_MSC_VER == 1400)) \  //MSVC80
        && defined(_DEBUG) \ //debug build
        && defined(CRYPTOPP_IS_DLL) \ //shared library
        && (CRYPTOPP_VERSION >= 560) //CryptoPP 5.5.2 and earlier doesnt
suffer from this problem

#       ifndef CRYPTOPP_DISABLE_SSE2
#               define CRYPTOPP_DISABLE_SSE2
#       endif

#       if CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE
#               undef CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE
#               define CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE 0
#       endif

#       if CRYPTOPP_BOOL_SSE2_INTRINSICS_AVAILABLE
#               undef CRYPTOPP_BOOL_SSE2_INTRINSICS_AVAILABLE
#               define CRYPTOPP_BOOL_SSE2_INTRINSICS_AVAILABLE 0
#       endif

#endif /* _MSC_VER == 1400 && _DEBUG && CRYPTOPP_IS_DLL &&
CRYPTOPP_VERSION >= 560 */
//End additional lines
...
...
#endif /* CRYPTOPP_CONFIG_H */

c. Try an alternative (OpenSSL for example).

Hope this will help.

Regards,
An


On May 4, 9:08 pm, Luca Cappa <[email protected]> wrote:
> Yes, i would have liked it was so easy. The crash happens before
> reaching the main function.
>
> Luca
>
> On Fri, May 1, 2009 at 12:09 AM, Roderick Ford <[email protected]> 
> wrote:
> >> You are probably going to have to try to get more out ot the stack
> >> trace...try to set breakpoints at suspicious locations (lots of them) and
> >> start it.  All the breakpoints that trigger are before the error, and all
> >> the ones after it are behind the problem.  So then you can track it down
> >> further, until you isolate the problem.  Good Luck!!
--~--~---------~--~----~------------~-------~--~----~
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