[openssl-users] Problems with man page code example at EVP_EncryptInit

Sam Habiel sam.habiel at gmail.com
Wed Sep 5 14:18:06 UTC 2018


I had to double check something--I was wrong about something--&outlen
is not incremented inside of openssl--so you have to keep another
variable to which you add outlen and use that to set the read/write
pointer in outbuf.

--Sam
On Wed, Sep 5, 2018 at 10:04 AM Sam Habiel <sam.habiel at gmail.com> wrote:
>
> First time poster. I hope I am writing to the right place.
>
> Example for "General encryption and decryption function example using
> FILE I/O and AES128 with a 128-bit key" has two errors. I spent a lot
> of time trying to figure out what I did wrong for a while...
>
> 1. ctx is already a pointer; it does not need to be indirected to get
> the pointer.
>
>         EVP_CipherInit_ex(&ctx, EVP_aes_128_cbc(), NULL, NULL, NULL,
> do_encrypt);
>
> should say:
>
>         EVP_CipherInit_ex(ctx, EVP_aes_128_cbc(), NULL, NULL, NULL, do_encrypt);
>
> 2. ciphertext length is not used to update write position:
>
>                 if(!EVP_CipherUpdate(ctx, outbuf, &outlen, inbuf, inlen))
> and
>
>         if(!EVP_CipherFinal_ex(ctx, outbuf, &outlen))
>
> should say (what worked for me):
>
>                 if(!EVP_CipherUpdate(ctx, outbuf + outlen, &outlen,
> inbuf, inlen))
>
> and
>         if(!EVP_CipherFinal_ex(ctx, outbuf + outlen, &outlen))
>
> It would be nice if there is a complete example that compiles and has
> a main() to run it.
>
> --Sam


More information about the openssl-users mailing list