Da Co writes:
« HTML content follows »
I was not able to encrypt with these parameters set to zero. You need 16
meaningful bytes in key and IV.
Excellent, I hope you are on the way now. I think oyu were makig use of
undefined behaviour, so setting al bytes will fix that.
On Fri, Nov 1, 2013 at 7:08 AM, David Irvine,,,
<<URL:mailto:[email protected]>[email protected]> wrote:
Alok Sethi writes:
>
Hi Fraser,
Thanks for your quick reply. As per your suggestion I tried by removing
these two lines. But getting the same error message.
Also I tried to set the memory to zero as below.
memset( key, 0x01, CryptoPP::AES::DEFAULT_KEYLENGTH );
memset( iVector, 0x01, CryptoPP::AES::BLOCKSIZE );
It would be great if you could suggest any other alternative solutions.
Apart from these stack errors, what are you trying to do, it seems you are
setting key and iv to zero, is this intentional. Should you not take a key
and iv in through your parameters and set these to the size of the
constants you have to create the key ivector. If you did want to create a
key and iv of zero then set each array member to zero, but it would be
quite strange.
Apart from that you are setting one past the end of the byte array, the
end of an array size 64 is element 63.
Thanks,
Alok.
On Friday, November 1, 2013 1:23:32 AM UTC+5:30, Fraser wrote:
Hi there,
The cause of this error is where you have key[sizeof(key)] = 0; and
iVector[sizeof(iVector)] = 0; in each of your functions. You're trying
to access an element one past the end of each array.
I guess you're trying to null-terminate these arrays, but there's no
need here. In fact, it's valid for either the key or IV to contain
'0' char(s) anywhere within.
Cheers,
Fraser.
On 31/10/2013 14:03, Alok Sethi wrote:
>
> Hi,
>
> I want to encrypt and decrypt file contains using AES::CBC mode. I
tried > the following for encryption and decryption.
> It works fine but I get the below two exceptions.
>
> 1. Run-Time Check Failure #2 - Stack around the variable 'iVector'
was > corrupted.
> 2. Run-Time Check Failure #2 - Stack around the variable 'key' was
> corrupted.
>
> I don't know exactly where I am doing wrong. Please help me to fix
this > problem.
>
> To encrypt the file here is my code :-
> ==================================
> void Encrypt(string inFileName, string outFileName)
> {
>
> byte key[CryptoPP::AES::DEFAULT_KEYLENGTH];
> key[sizeof(key)] = 0;
>
> byte iVector[CryptoPP::AES::BLOCKSIZE];
> iVector[sizeof(iVector)] = 0;
>
> ifstream in(inFileName.c_str(), ios::binary);
>
> const string orgStrObj((istreambuf_iterator<char>(in)), >
istreambuf_iterator<char>());
> in.close();
>
> CryptoPP::AES::Encryption cipher(key, sizeof(key));
>
> CryptoPP::CBC_Mode_ExternalCipher::Encryption encryption(cipher,
> iVector);
> CryptoPP::StreamTransformationFilter strFilter(encryption, new
> CryptoPP::StringSink(encryptStr));
> strFilter.Put(reinterpret_cast<const byte*>(orgStrObj.c_str()),
> orgStrObj.size());
> strFilter.MessageEnd();
>
> ofstream out(outFileName.c_str(), ios::binary);
> out.write(encryptStr.c_str(), encryptStr.size());
> out.close();
> }
>
>
> To decrypt the file here is my code :-
> ================================
> void Crypto::Decrypt(string inFileName, string outFileName)
> {
> byte key[CryptoPP::AES::DEFAULT_KEYLENGTH];
> key[sizeof(key)] = 0;
>
> byte iVector[CryptoPP::AES::BLOCKSIZE];
> iVector[sizeof(iVector)] = 0;
>
> ifstream in(inFileName.c_str(), ios::binary);
>
> const string encryptStrObj((istreambuf_iterator<char>(in)), >
istreambuf_iterator<char>());
> in.close();
>
> CryptoPP::AES::Decryption cipher(key, sizeof(key));
>
> CryptoPP::CBC_Mode_ExternalCipher::Decryption decryption(cipher,
> iVector);
> CryptoPP::StreamTransformationFilter strFilter(decryption, new
> CryptoPP::StringSink(decryptStr));
> strFilter.Put(reinterpret_cast<const
byte*>(encryptStrObj.c_str()), > encryptStrObj.size());
> strFilter.MessageEnd();
>
> ofstream out(outFileName.c_str(), ios::binary);
> out.write(decryptStr.c_str(), decryptStr.size());
> out.close();
> }
> --
> --
> You received this message because you are subscribed to the
"Crypto++ > Users" Google Group.
> To unsubscribe, send an email to <URL:javascript:>cryptopp- >
<URL:mailto:[email protected]>[email protected].
> More information about Crypto++ and this group is available at >
<URL:<URL:http://www.cryptopp.com>http://www.cryptopp.com><URL:http://ww
w.cryptopp.com>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 <URL:javascript:><URL:mailto:cryptopp-
[email protected]>[email protected].
> For more options, visit >
<URL:<URL:https://groups.google.com/groups/opt_out>https://groups.google
.com/groups/opt_out><URL:https://groups.google.com/g>https://groups.goog
le.com/g > roups/opt_out.
--
--
You received this message because you are subscribed to the "Crypto++
Users" Google Group.
To unsubscribe, send an email to <URL:mailto:cryptopp-users-
[email protected]>cryptopp-users-
[email protected].
More information about Crypto++ and this group is available at
<URL:<URL:http://www.cryptopp.com>http://www.cryptopp.com><URL:http://ww
w.cryptopp.com>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 <URL:mailto:cryptopp-users
%[email protected]>cryptopp-
[email protected].
For more options, visit
<URL:<URL:https://groups.google.com/groups/opt_out>https://groups.google
.com/groups/opt_out><URL:https://groups.google.com/groups/opt_out>https:
//groups.google.com/groups/opt_out.
--
--
You received this message because you are subscribed to the "Crypto++
Users" Google Group.
To unsubscribe, send an email to <URL:mailto:cryptopp-users-
[email protected]>[email protected].
More information about Crypto++ and this group is available at
<URL:http://www.cryptopp.com>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 <URL:mailto:cryptopp-users
%[email protected]>cryptopp-
[email protected].
For more options, visit
<URL:https://groups.google.com/groups/opt_out>https://groups.google.com/gr
oups/opt_out.
--
--
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.