> The decrypt program:
>
> unsigned char *DecryptTest(unsigned char *in, int inl, unsigned
> char *key, unsigned char *iv, int * outl)
> {
> int ret;
> EVP_CIPHER_CTX ctx;
> EVP_CIPHER_CTX_init(&ctx);
>
> ret = EVP_DecryptInit_ex(&ctx, EVP_aes_128_cbc(), 0, key, iv);
> if(!ret) abort();
> cout<<"EVP_CIPHER_CTX_block_size:
> "<<EVP_CIPHER_CTX_block_size(&ctx)<<endl; // 16
> cout<<"EVP_CIPHER_CTX_key_length:
> "<<EVP_CIPHER_CTX_key_length(&ctx)<<endl; // 16
> cout<<"EVP_CIPHER_CTX_iv_length:
> "<<EVP_CIPHER_CTX_iv_length(&ctx)<<endl; // 16 here
You forgot to turn off padding. The padding modes for encryption and
decryption need to be the same.
> char Plaintext[]="Single block msg";
This is a 17-byte string.
> out = EncryptTest((unsigned char*)Plaintext,
> sizeof(Plaintext), key,iv, &outl);
sizeof(Plaintext) == 17
DS
______________________________________________________________________
OpenSSL Project http://www.openssl.org
User Support Mailing List [email protected]
Automated List Manager [EMAIL PROTECTED]