Marek Marcola wrote:
Hello,
Im trying to encrypt/decrypt a string using openssl.
The program works fine for encryption but fails(not always) for
decryption. This happens in EVP_CipherFinal_ex() call.
I'm a bit confused with this random behavior. I've attached the code.
Can anybody point me out what I'm doing wrong here?
unsigned char key[] = "0123456789";
unsigned char iv[] = "12345671";
EVP_CIPHER_CTX_init(&ctx);
/*EVP_CipherInit_ex(&ctx, EVP_rc2(), NULL, NULL, NULL,
do_encrypt);*/
/*EVP_CipherInit_ex(&ctx, EVP_rc2_cbc(), NULL, NULL, NULL,
do_encrypt);*/
/*EVP_CipherInit_ex(&ctx, EVP_des_ede3_cbc(), NULL, NULL, NULL,
do_encrypt);*/
EVP_CipherInit_ex(&ctx, EVP_aes_128_cbc(), NULL, NULL, NULL,
do_encrypt);
EVP_CIPHER_CTX_set_key_length(&ctx, 10);
EVP_CipherInit_ex(&ctx, NULL, NULL, key, iv, do_encrypt);
Key and initialization vector for block ciphers (AES,DES in CBC mode)
should be fixed size:
aes128: key: 16, iv: 16
3des: key: 24, iv: 8
If you provide small buffers, some data from the end of buffer
will be used and depending on this random data you may have
decryption success or error.
For EVP_CIPHER_CTX_set_key_length() to work, cipher must have ability
to set variable key length. Check error code when using this function.
Best regards,
Thanks Marek. That really helped.
Do u have any references that I can find the key and IV size for
different ciphers supported by openssl.
Cheers,
Kaushalye
______________________________________________________________________
OpenSSL Project http://www.openssl.org
User Support Mailing List openssl-users@openssl.org
Automated List Manager [EMAIL PROTECTED]