[openssl-users] Decrypting an OpenSSL encrypt AES256-CBC data

Jakob Bohm jb-openssl at wisemo.com
Sat Dec 29 12:54:03 UTC 2018

On 29/12/2018 13:41, Ertan Küçükoglu wrote:
> Hello,
> Windows program does not know length of data. I would like to use some 
> kind of standard method and use exact method on Windows to decrypt.
> I think my problem is really that I do not know what "padding" is used 
> by default. I have found below function. However, there is no detailed 
> explanation about it in here: 
> https://www.openssl.org/docs/man1.0.2/crypto/EVP_CIPHER_CTX_set_padding.html
> int EVP_CIPHER_CTX_set_padding(EVP_CIPHER_CTX *x, int padding);
> I wanted to learn what values can "padding" parameter be. I understand 
> I can set it to zero ( 0 ) for disabling padding. This is not what I 
> want because my plain text length is not confirmed  to be multiply of 
> 16 bytes.
> I can use PKCS#7 to decrypt on Windows so I would like to encrypt 
> using that padding. Just do not know what value to pass in above 
> function now.

PKCS#7 also known as CMS or (in OpenSSL) SMIME, doesn't just pad. It
generates a random key and encrypts it with the recipients key (usually
a public key from a certificate, but there may be a symmetric variant).

Thus to do PKCS#7 with OpenSSL, you need to use the "openssl cms" command
line or the corresponding functions.

> Michael Wojcik <Michael.Wojcik at microfocus.com 
> <mailto:Michael.Wojcik at microfocus.com>>, 28 Ara 2018 Cum, 21:16 
> tarihinde şunu yazdı:
>     > From: openssl-users [mailto:openssl-users-bounces at openssl.org
>     <mailto:openssl-users-bounces at openssl.org>] On Behalf Of Ertan
>     Küçükoglu
>     > Sent: Thursday, December 27, 2018 16:03
>     > A- I tried to directly decrypt (no padding applied) and I get my
>     plain text plus
>     > some additional invisible characters at the end. I am told it
>     maybe a "padding"
>     > issue, my problem, during decryption.
>     How does the Windows program know how long the decrypted data is?
>     It sounds to me like the problem is simply that your Windows code
>     is decrypting the data correctly, then reading past it into
>     garbage left at the end of the buffer.
>     If the messages are of fixed length, only use that many bytes from
>     the decryption output. If they're of variable length, then the
>     sender will have to tell the receiver how long they are. There are
>     many ways of doing that; you haven't told us enough about your
>     protocol to know which would be appropriate in your case.


Jakob Bohm, CIO, Partner, WiseMo A/S.  https://www.wisemo.com
Transformervej 29, 2860 Søborg, Denmark.  Direct +45 31 13 16 10
This public discussion message is non-binding and may contain errors.
WiseMo - Remote Service Management for PCs, Phones and Embedded

More information about the openssl-users mailing list