<div dir="ltr"><div class="gmail_default"><span style="font-size:small">​</span>Hi,</div><div class="gmail_default"><br></div><div class="gmail_default">I have a problem with converting my C++ library into OpenSSL v1.1.0.</div><div class="gmail_default"><br></div><div class="gmail_default">I'm using CentOS 7 and OpenSSL v1.1.0.</div><div class="gmail_default">When I'm trying to use EVP_CIPHER_CTX as an array, my code does not compile.</div><div class="gmail_default">I understand that this is caused by making the structures opaque.</div><div class="gmail_default"><br></div><div class="gmail_default">The problem is this line</div><div class="gmail_default"><br></div><div class="gmail_default">OTEXT_AES_KEY_INIT(ctx + i, pBufIdx);</div><div class="gmail_default">The operation ctx+i is not compiling. The error I'm receiving is :</div><div class="gmail_default"><br></div><div class="gmail_default">invalid use of incomplete type struct evp_cipher_ctx_st.</div><div class="gmail_default"><br></div><div class="gmail_default">​</div><div class="gmail_default">static void InitAESKey(AES_KEY_CTX* ctx, BYTE* keybytes, int numkeys)</div><div class="gmail_default">        {</div><div class="gmail_default">                BYTE* pBufIdx = keybytes;</div><div class="gmail_default">                for (int i = 0; i < numkeys; i++)</div><div class="gmail_default">                {</div><div class="gmail_default">                        OTEXT_AES_KEY_INIT(ctx + i, pBufIdx);</div><div class="gmail_default">                        pBufIdx += AES_KEY_BYTES;</div><div class="gmail_default">                }</div><div class="gmail_default">        }</div><div class="gmail_default">While OTEXT_AES_KEY_INIT is macro defined like this:</div><div class="gmail_default"><br></div><div class="gmail_default">#define AES_KEY_CTX EVP_CIPHER_CTX</div><div class="gmail_default">#define OTEXT_AES_KEY_INIT(ctx, buf) { \</div><div class="gmail_default">        EVP_CIPHER_CTX_init(ctx); \</div><div class="gmail_default">        EVP_EncryptInit_ex(ctx, EVP_aes_128_ecb(), NULL, buf, ZERO_IV); \</div><div class="gmail_default">        }</div><div class="gmail_default"><br></div><div class="gmail_default"><br></div><div class="gmail_default">​What I'm doing wrong?<span style="font-size:small">​</span></div><div class="gmail_default" style="font-size:small"><br clear="all"></div><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr">Lior           Koskas</div><div>Software Engineer</div></div></div></div></div></div>
</div>