Please try explicitly opening this in binary mode in your encryption
function?
//your code
infile.open("test2.txt");
//try this
infile.open("test2.txt", ios::in | ios::binary);
On Wednesday, February 20, 2013 1:21:16 PM UTC-5, TrockFox wrote:
>
> Hello,
>
> I am new with cryptopp,i try to encrydpt and decrypt text from a file.
> I alway receive this error CryptoPP::InvalidCiphertext at memory location
> 0x0012efe4 just *after these lines* :
>
> ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
> CryptoPP::StreamTransformationFilter stfDecryptor(cbcDecryption, new
> CryptoPP::StringSink( decryptedtext ) );
> stfDecryptor.Put( reinterpret_cast<const unsigned char*>(
> ciphertext.c_str() ), ciphertext.length());
> stfDecryptor.MessageEnd();
>
> ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
>
> *The encryption/decryption code:*
>
> ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
>
> BOOL Encryption()
> {
> //
> // Key and IV setup
> //AES encryption uses a secret key of a variable length (128-bit,
> 196-bit or 256-
> //bit). This key is secretly exchanged between two parties before
> communication
> //begins. DEFAULT_KEYLENGTH= 16 bytes
> byte key[ CryptoPP::AES::DEFAULT_KEYLENGTH ], iv[
> CryptoPP::AES::BLOCKSIZE ];
> memset( key, 0x00, CryptoPP::AES::DEFAULT_KEYLENGTH );
> memset( iv, 0x00, CryptoPP::AES::BLOCKSIZE );
>
> HW_PROFILE_INFO hwProfileInfo;
> GetCurrentHwProfile(&hwProfileInfo);
>
> (hwProfileInfo.szHwProfileGuid, strlen(hwProfileInfo.szHwProfileGuid), key);
>
> (hwProfileInfo.szHwProfileGuid, strlen(hwProfileInfo.szHwProfileGuid), iv);
> //
> // String and Sink setup
> //
> string STRING;
> ifstream infile;
> infile.open ("test2.txt");
>
> getline(infile,STRING, '\0'); // Saves the line in STRING.
> char cFilm[1000];
> strcpy(cFilm,STRING.c_str());
> infile.close();
> std::string plaintext = cFilm;
> std::string ciphertext;
> std::string decryptedtext;
> //
> // Dump Plain Text
> //
> std::cout << "Plain Text (" << plaintext.size() << " bytes)" <<
> std::endl;
> std::cout << plaintext;
> std::cout << std::endl << std::endl;
> //
> // Create Cipher Text
> //
> 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();
> //
> // Dump Cipher Text
> //
> ofstream write ("test2a.txt", ios::out | ios::binary);
> int at = ciphertext.length()+ 1;
> write.write(ciphertext.c_str(),at);
> write.close();
> ciphertext.erase();
>
> remove("test2.txt");
> rename("test2a.txt","c:\\test2.txt");
> return 0;
> }
> ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
> BOOL Decryption()
> {
> //
> // Key and IV setup
> //AES encryption uses a secret key of a variable length (128-bit,
> 196-bit or 256-
> //bit). This key is secretly exchanged between two parties before
> communication
> //begins. DEFAULT_KEYLENGTH= 16 bytes
> byte key[ CryptoPP::AES::DEFAULT_KEYLENGTH ], iv[
> CryptoPP::AES::BLOCKSIZE ];
> memset( key, 0x00, CryptoPP::AES::DEFAULT_KEYLENGTH );
> memset( iv, 0x00, CryptoPP::AES::BLOCKSIZE );
>
> HW_PROFILE_INFO hwProfileInfo;
> GetCurrentHwProfile(&hwProfileInfo);
> //char* rawKey="malakagergeerwherwhewrhwehewhhwrehrewhewhrewrwhherwherwh";
> (hwProfileInfo.szHwProfileGuid, strlen(hwProfileInfo.szHwProfileGuid), key);
> //char* rawIv="malakaherwheherwheerwhewrwherwhgerwhewrhewrrwhewrhewrherw";
> (hwProfileInfo.szHwProfileGuid, strlen(hwProfileInfo.szHwProfileGuid), iv);
> //
> // String and Sink setup
> //
> string STRING2;
> ifstream infile2;
> infile2.open ("test2.txt",ios::binary);
>
> getline(infile2,STRING2, '\0'); // Saves the line in STRING.
> char cFilm2[1000];
> strcpy(cFilm2,STRING2.c_str());
> infile2.close();
>
> std::string ciphertext (cFilm2);
> std::string decryptedtext;
>
> //
> // Decrypt
> //
> CryptoPP::AES::Decryption aesDecryption(key,
> CryptoPP::AES::DEFAULT_KEYLENGTH);
> CryptoPP::CBC_Mode_ExternalCipher::Decryption cbcDecryption(
> aesDecryption, iv );
>
> CryptoPP::StreamTransformationFilter stfDecryptor(cbcDecryption, new
> CryptoPP::StringSink( decryptedtext ) );
> stfDecryptor.Put( reinterpret_cast<const unsigned char*>(
> ciphertext.c_str() ), ciphertext.length());
> stfDecryptor.MessageEnd();
>
> //
> // Dump Decrypted Text
> //
> ofstream write ("test2a.txt", ios::out | ios::binary);
> write << decryptedtext;
> write.close();
> decryptedtext.erase();
> remove("test2.txt");
> rename("test2a.txt","test2.txt");
> return 0;
> }
>
>
> ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
>
> Anyone know how to solve this??
> Thanks!
>
>
--
--
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.
---
You received this message because you are subscribed to the Google Groups
"Crypto++ Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.