C/C++ [C++] CryptoPP encrypt crash

Gohu

Membre Actif
Inscrit
16 Novembre 2013
Messages
222
Reactions
3
#1
Yo,

Ca fait un bail que j'essaye d'encrypter des valeurs avec cryptopp mais ca n'arrête pas de crasher de manière inexplicable. Quand c'est pas cette erreur la:
Assertion failed: (false), function deallocate, file /usr/local/include/cryptopp/secblock.h, line 151.
c'est un malloc break error

donc voici mon code :)

Code:
using namespace CryptoPP;

    byte key[ CryptoPP::AES::DEFAULT_KEYLENGTH ];
    byte iv[ CryptoPP::AES::BLOCKSIZE ];

    const char* tmp_key = m_key.data();
    for (int i = 0; i < sizeof(tmp_key); i++)
        key[i] = (byte)tmp_key[i];


    std::string plaintext = QString(m_ticket).toStdString();
    std::string ciphertext;
    std::string decryptedtext;

    CryptoPP::AES::Encryption aesEncryption(key, CryptoPP::AES::DEFAULT_KEYLENGTH);
    CryptoPP::CBC_Mode_ExternalCipher::Encryption cbcEncryption( aesEncryption, iv );

    CryptoPP::StreamTransformationFilter stfEncryptor(cbcEncryption, new CryptoPP::StringSink( ciphertext ) );
    stfEncryptor.Put( reinterpret_cast<const unsigned char*>( plaintext.c_str() ), plaintext.length() + 1 );
    stfEncryptor.MessageEnd();

    QByteArray result(ciphertext.data());

    return result;
 
A

Anonymous

Invité
#2
Salut,

Déjà j'ai l'impression qu'il y a une petite erreur d'étourderie là :
Code:
for (int i = 0; i < sizeof(tmp_key); i++)
Tu ne copie que 4 octets, du coup l'algo derrière risque de ne pas trop aimer ^^

Sinon t'as pas une backtrace pour savoir où se situe l'erreur ?
 

Gohu

Membre Actif
Inscrit
16 Novembre 2013
Messages
222
Reactions
3
#3
probleme résolu. J'avais enfait rename le nom du fichier de la lib apres l'avoir compiler comme un con donc il gueulait quand il avait pas les bon path. J'avais aussi oublié deux memset au début

Merci bien!
 
Haut Bas