On Mon May 19 2008 09:35, karim Bendadda wrote:
> *Sorry for the first mail!!*
> 

Unless you can guarantee that the strings do not contain embedded zeros;
strlen() will not give the expected results.

Mike
> Hi all,
> 
>    I'm new on openssl development, so I'm sorry if that a "beginner's"
> question . I'm trying to decrypt a *base64 AES CBC* encrypted data (using
> the *AES_cbc_encrypt*). The base64 encoding/decoding works fine. the code
> below works depending on data length:
> 
>    -  The example with :
> 
> 
> data ="*This is a long very long test*" works fine, I have the good
> decrypted data.
> 
>    - The second one  "*This is a test*" doesn't work... I read somewhere
>    that's depending of data padding... Have you any idea??
> 
> 
> ......
> int main(int argc, char *argv[])
> {
>     unsigned char key[] = {0,1,2,3,4,5,6,7,8,9,0,'a','b','c','d','e'};
>     unsigned char iv[] = {0,1,2,3,4,5,6,7,8,9,0,'a','b','c','d','e'};
>     unsigned char iv1[] = {0,1,2,3,4,5,6,7,8,9,0,'a','b','c','d','e'};
> 
> 
> 
>     unsigned char* data ="This is a test";
>     //unsigned char* data ="This is a long very long test";
> 
>     unsigned char* buffer = (char *) malloc(60);
>     unsigned char* buffer1 = (char *) malloc(60);
> 
> 
>     unsigned long bufferLength= (ceil(strlen(data)/16)+1)*16;
> 
>     AES_KEY aeskeyEnc, aeskeyDec;
> 
> 
>     AES_set_encrypt_key (key, KeyLength*8, &aeskeyEnc);
>     AES_set_decrypt_key (key, KeyLength*8, &aeskeyDec);
> 
>     /*Encrypting...*/
>     AES_cbc_encrypt(data, buffer, bufferLength, &aeskeyEnc, iv,
> AES_ENCRYPT);
>     //AES_cbc_encrypt(data, buffer, strlen(data), &aeskeyEnc, iv,
> AES_ENCRYPT);
>     printf("Encrypted data: %s\n",buffer);
> 
> 
>     /*To Base64 encrypted data  */
>     char *base64Buffer = base64(buffer, strlen(buffer));
>     printf("Base64 Encrypted data: %s\n",base64Buffer);
> 
> 
>     /* Unbase64 of encrypted data*/
>     char* test_1 = strcat(base64Buffer,"\n\0");
>     char* unBase64 = unbase64(base64Buffer, strlen(base64Buffer));
> 
> 
>     /*Decypting unBase64...*/
>     AES_cbc_encrypt(unBase64, buffer1,bufferLength, &aeskeyDec, iv1,
> AES_DECRYPT);
>     //AES_cbc_encrypt(unBase64, buffer1, strlen(unBase64), &aeskeyDec, iv1,
> AES_DECRYPT);
>     printf("Decrypted data: %s \n",buffer1);
> 
> 
> 
>     return(0);
> }
> 
> 
> 
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to