> 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                    openssl-users@openssl.org
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to