On Thu, Mar 29, 2012 at 5:40 AM, Prashanth kumar N <
[email protected]> wrote:
> Thanks Ken for pointing out the mistake... after changing to
> AES_Decrypt(), it worked but i still see issue when i print the
> decrypted output as it has extra non-ascii characters in it.
>
> Below is the input
> unsigned char text[]="test12345678abc2";
> After decryption, i get the following string: Decrypted o/p:
> test12345678abc2Ȳu�z�B��� ��A��S��
>
You didn't encrypt the terminating NUL, so the decrypt is unterminated...
> Few questions...
>
> 1. If we use AES, will decrypted files have same number of bytes as
> encrypted file? (I assume it should be same)
> 2. When i did Google and found few examples on AES using CBC mode, many of
> them add extra buffer while decrypting ie.,
> sample eg:
> unsigned char key[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
> 10 unsigned char iv[] = {1,2,3,4,5,6,7,8};
> 11 unsigned char outbuf[1024];
> 12 unsigned char decrebuf[1024];
> 13 int outlen,outlen2, tmplen;
> 14 unsigned char text[]="test12345678abc2";
> 15 char outfile[]= "encfile";
>
> if(!EVP_EncryptUpdate(&ctx, outbuf, &outlen, intext,
> strlen(intext)))
>
> 26 {
> 27 /* Error */
> 28 printf("\n Error:EVP_EncryptUpdate ");
> 29 return 0;
> 30 }
> 31
> 32 if(!EVP_EncryptFinal_ex(&ctx, outbuf + outlen, &tmplen))
> 33 {
> 34 /* Error */
> 35 printf("\n Error: EVP_EncryptFinal_ex");
> 36 return 0;
> 37 }
>
> EVP_DecryptInit_ex(&ctx, EVP_aes_256_cbc(), NULL, key, iv);
> 45
> 46 if(!EVP_DecryptUpdate(&ctx, decrebuf, &outlen2, outbuf, outlen))
> 47 {
> 48 printf("\n Error : EVP_DecryptUpdate");
> 49 return 0;
> 50 }
>
> EVP_DecryptFinal_ex(&ctx, decrebuf + outlen2, &tmplen )
>
> Here i see even thought decrebuf is 1024, we still offset it by outlen and
> pass the address to Decrytpion function?
>
> 3. Why is it like we have to choose 1024 as array size... when i know my
> encryption text is only 16bytes. Any reasons?
>
>
> -Prashanth
>
> On Wed, Mar 28, 2012 at 7:29 PM, Ken Goldman <[email protected]> wrote:
>
>> On 3/28/2012 3:01 AM, Prashanth kumar N wrote:
>>
>>> Here is the modified program
>>> [snip]
>>>
>>> 18 AES_KEY ectx;
>>> 19 AES_KEY dectx;
>>> 20
>>> 21 AES_set_encrypt_key(key, 256, &ectx);
>>> 22 AES_encrypt(text, out, &ectx);
>>> 23
>>> 24 printf("encryp data = %s\n", out);
>>> 25
>>> 26 AES_set_encrypt_key(key, 256, &dectx);
>>>
>>
>> AES_set_decrypt_key()
>>
>> 27 AES_decrypt(out, decout, &dectx);
>>>
>>
>> ______________________________**______________________________**
>> __________
>> OpenSSL Project http://www.openssl.org
>> User Support Mailing List [email protected]
>> Automated List Manager [email protected]
>>
>
>