> 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]