Hi,

I had a problem while I want to debug my applicaiton. I am using a 64
bit system, when compiling the library with MSVS 2008, Debug and x64,
the following Access violation occures:

First-chance exception at 0x00000001400f638a in Crypttest.exe:
0xC0000005: Access violation reading location 0xffffffffffffffff.
Unhandled exception at 0x00000001400f638a in Crypttest.exe:
0xC0000005: Access violation reading location 0xffffffffffffffff.

For compiling, I used the shipped .sln, which was converted to Studio
2008 using the wizzard. Afterwards, I built the Solution and the
cryptlib.Using the Debug mode in during x64, the executable crashes
during signing. Using Release or x86/Debug and Release, no problems
arise.

My system:
Microsft Visual Studio 2008
Windows XP 64Bit Edition
Crypto++ 5.6.0

For a better debugging purpose I extracted the following minimal
program causing the crash. Below there is also a stack trace included.

Any suggestions?

Thanks for your help,
    Sven

------------- The program which caused the crash
#include <string>

#include "../RSAToolsLib/CryptoPP/rsa.h"
#include "../RSAToolsLib/CryptoPP/osrng.h"  // PRNG
#include "../RSAToolsLib/CryptoPP/hex.h"    // Hex Encoder/Decoder
#include "../RSAToolsLib/CryptoPP/files.h"  // File Source and Sink
#include "../RSAToolsLib/CryptoPP/filters.h"

#define HANDLE_EXCEPTION( e ) std::cerr << "Error: " << e.what() <<
std::endl; exit( -1 );

void main()
{
    try{
        std::string signature;
        std::string messageToSign;

        messageToSign = "Testme";

        CryptoPP::AutoSeededRandomPool rng;

        // Specify 512 bit modulus, accept e = 17
        CryptoPP::RSAES_OAEP_SHA_Decryptor *decryptor = new
CryptoPP::RSAES_OAEP_SHA_Decryptor( rng, 4096 /*, e */ );
        CryptoPP::RSASSA_PKCS1v15_SHA_Signer *signer = new
CryptoPP::RSASSA_PKCS1v15_SHA_Signer( *decryptor );
        // crypts->mEncryptor = new CryptoPP:: RSAES_OAEP_SHA_Encryptor
( *crypts->mDecryptor );

        CryptoPP::StringSource( messageToSign, true,
            new CryptoPP::SignerFilter( rng, *signer,
                new CryptoPP::HexEncoder(
                    new CryptoPP::StringSink( signature )
                ) // HexEncoder
            ) // SignerFilter
        ); // StringSource

    }
    catch( CryptoPP::Exception& e )
    {
        HANDLE_EXCEPTION( e );
    }
}
---------------------------------------------------------------
This is the stack trace:

>       Crypttest.exe!Rijndael_Enc_AdvancedProcessBlocks()  Line 93     Asm
        Crypttest.exe!CryptoPP::Rijndael::Enc::AdvancedProcessBlocks(const
unsigned char * inBlocks=0x000000000012fc88, const unsigned char *
xorBlocks=0x0000000000000000, unsigned char *
outBlocks=0x000000000012fc88, unsigned __int64 length=16, unsigned int
flags=0)  Line 976      C++
        Crypttest.exe!CryptoPP::Rijndael::Enc::ProcessAndXorBlock(const
unsigned char * inBlock=0x000000000012fc88, const unsigned char *
xorBlock=0x0000000000000000, unsigned char *
outBlock=0x000000000012fc88)  Line 289  C++
        Crypttest.exe!CryptoPP::BlockTransformation::ProcessBlock(unsigned
char * inoutBlock=0x000000000012fc88)  Line 449 + 0x2b bytes    C++
        Crypttest.exe!
CryptoPP::RandomPool::GenerateIntoBufferedTransformation
(CryptoPP::BufferedTransformation & target={...}, const
std::basic_string<char,std::char_traits<char>,std::allocator<char> > &
channel="", unsigned __int64 size=256)  Line 52 C++
        Crypttest.exe!CryptoPP::RandomNumberGenerator::GenerateBlock
(unsigned char * output=0x000000000033a200, unsigned __int64
size=256)  Line 260 + 0x2a bytes        C++
        Crypttest.exe!CryptoPP::Integer::Randomize
(CryptoPP::RandomNumberGenerator & rng={...}, unsigned __int64
nbits=2047)  Line 3215  C++
        Crypttest.exe!CryptoPP::Integer::Randomize
(CryptoPP::RandomNumberGenerator & rng={...}, const CryptoPP::Integer
& min={...}, const CryptoPP::Integer & max={...})  Line 3232    C++
        Crypttest.exe!CryptoPP::Integer::GenerateRandomNoThrow
(CryptoPP::RandomNumberGenerator & i_rng={...}, const
CryptoPP::NameValuePairs & params={...})  Line 3346     C++
        Crypttest.exe!CryptoPP::Integer::GenerateRandom
(CryptoPP::RandomNumberGenerator & rng={...}, const
CryptoPP::NameValuePairs & params={...})  Line 250 + 0x1d bytes C++
        Crypttest.exe!CryptoPP::InvertibleRSAFunction::GenerateRandom
(CryptoPP::RandomNumberGenerator & rng={...}, const
CryptoPP::NameValuePairs & alg={...})  Line 121 C++
        Crypttest.exe!CryptoPP::InvertibleRSAFunction::Initialize
(CryptoPP::RandomNumberGenerator & rng={...}, unsigned int
keybits=4096, const CryptoPP::Integer & e={...})  Line 145 + 0xcc
bytes   C++
        Crypttest.exe!
CryptoPP::PK_FinalTemplate<CryptoPP::TF_DecryptorImpl<CryptoPP::TF_CryptoSchemeOptions<CryptoPP::TF_ES<CryptoPP::OAEP<CryptoPP::SHA1,CryptoPP::P1363_MGF1>,CryptoPP::RSA,int>,CryptoPP::RSA,CryptoPP::OAEP<CryptoPP::SHA1,CryptoPP::P1363_MGF1>
> >
>::PK_FinalTemplate<CryptoPP::TF_DecryptorImpl<CryptoPP::TF_CryptoSchemeOptions<CryptoPP::TF_ES<CryptoPP::OAEP<CryptoPP::SHA1,CryptoPP::P1363_MGF1>,CryptoPP::RSA,int>,CryptoPP::RSA,CryptoPP::OAEP<CryptoPP::SHA1,CryptoPP::P1363_MGF1>
> > ><CryptoPP::AutoSeededRandomPool,int>
(CryptoPP::AutoSeededRandomPool & v1={...}, const int & v2=4096)  Line
1566 + 0x75 bytes       C++
        Crypttest.exe!main()  Line 22 + 0x55 bytes      C++
        Crypttest.exe!__tmainCRTStartup()  Line 266 + 0x19 bytes        C
        Crypttest.exe!mainCRTStartup()  Line 182        C
        kernel32.dll!0000000077d596ac()
        [Frames below may be incorrect and/or missing, no symbols loaded for
kernel32.dll]

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

Reply via email to