<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
<META NAME="Generator" CONTENT="MS Exchange Server version 08.00.0681.000">
<TITLE>RE: "num" parameter and expected output buffer size in EVP_CipherUpdate</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->

<P DIR=LTR><SPAN LANG="fr"></SPAN><SPAN LANG="en-us"><FONT FACE="Consolas">Hi Wiktor,</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="fr"></SPAN><SPAN LANG="en-us"></SPAN></P>

<P DIR=LTR><SPAN LANG="fr"></SPAN><SPAN LANG="en-us"><FONT COLOR="#000000" FACE="Consolas">> and, more importantly,</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT COLOR="#000000" FACE="Consolas">> - given EVP_CIPHER_CTX object and the length of the input buffer, is </FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT COLOR="#000000" FACE="Consolas">></FONT></SPAN><SPAN LANG="fr"></SPAN><SPAN LANG="en-us"><FONT COLOR="#000000" FACE="Consolas"></FONT></SPAN><SPAN LANG="fr"></SPAN><SPAN LANG="en-us"> <FONT COLOR="#000000" FACE="Consolas">it possible to calculate the needed output buffer size without </FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="fr"></SPAN><SPAN LANG="en-us"><FONT COLOR="#000000" FACE="Consolas">> explicitly keeping external state?</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="fr"></SPAN><SPAN LANG="en-us"><FONT COLOR="#000000" FACE="Consolas">I may not have understood your question</FONT></SPAN><SPAN LANG="fr"></SPAN><SPAN LANG="en-us"><FONT COLOR="#000000" FACE="Consolas">, but, as stated in [1], isn't :</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="fr"><I></I></SPAN><I><SPAN LANG="en-us"><FONT COLOR="#000000" FACE="Consolas">"the amount of data written can be anything from zero bytes to (inl + cipher_block_size) bytes"</FONT></SPAN></I><SPAN LANG="fr"></SPAN><SPAN LANG="en-us"><FONT COLOR="#000000" FACE="Consolas"> (at a maximum)</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT COLOR="#000000" FACE="Consolas">what you are asking for ?</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT COLOR="#000000" FACE="Consolas">Resulting in</FONT></SPAN><SPAN LANG="fr"><I></I></SPAN><I><SPAN LANG="en-us"> <FONT COLOR="#000000" FACE="Consolas">cipher_block_size</FONT></SPAN></I><SPAN LANG="fr"></SPAN><SPAN LANG="en-us"><FONT COLOR="#000000" FACE="Consolas"> bytes</FONT></SPAN><SPAN LANG="fr"></SPAN><SPAN LANG="en-us"><FONT COLOR="#000000" FACE="Consolas"> needed (at max, may be 0) when calling</FONT></SPAN><SPAN LANG="fr"></SPAN><SPAN LANG="en-us"> <FONT FACE="Consolas">EVP_CipherFinal</FONT></SPAN><SPAN LANG="fr"></SPAN><SPAN LANG="en-us"><FONT FACE="Consolas">() ?<BR>
<BR>
>From :</FONT></SPAN><SPAN LANG="fr"> </SPAN><A HREF="https://www.openssl.org/docs/manmaster/man3/EVP_EncryptUpdate.html"><SPAN LANG="fr"><U></U></SPAN><U><SPAN LANG="en-us"><FONT COLOR="#0000FF" FACE="Consolas">https://www.openssl.org/docs/manmaster/man3/EVP_EncryptUpdate.html</FONT></SPAN></U><SPAN LANG="fr"></SPAN></A><SPAN LANG="fr"></SPAN><SPAN LANG="en-us"></SPAN></P>

<P DIR=LTR><SPAN LANG="fr"></SPAN><SPAN LANG="en-us"><FONT FACE="Consolas">“</FONT></SPAN><SPAN LANG="fr"><I></I></SPAN><I><SPAN LANG="en-us"><FONT FACE="Consolas">The encrypted final data is written to</FONT></SPAN></I><SPAN LANG="fr"><I></I></SPAN><I><SPAN LANG="en-us"> <FONT FACE="Consolas">out</FONT></SPAN></I><SPAN LANG="fr"><I></I></SPAN><I><SPAN LANG="en-us"><FONT FACE="Consolas"> which should have sufficient space for one cipher block</FONT></SPAN></I><SPAN LANG="fr"></SPAN><SPAN LANG="en-us"><FONT FACE="Consolas">”</FONT></SPAN><SPAN LANG="fr"></SPAN><SPAN LANG="en-us"><FONT FACE="Consolas">.</FONT></SPAN><SPAN LANG="fr"></SPAN><SPAN LANG="en-us"><BR>
</SPAN><SPAN LANG="fr"></SPAN><SPAN LANG="en-us"></SPAN></P>

<P DIR=LTR><SPAN LANG="fr"></SPAN><SPAN LANG="en-us"><FONT FACE="Consolas">Hope this helps,<BR>
</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="fr"></SPAN><SPAN LANG="en-us"><FONT FACE="Consolas">Regards,</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Consolas">Michel.</FONT></SPAN><SPAN LANG="fr"></SPAN><SPAN LANG="en-us"></SPAN></P>

<P DIR=LTR><SPAN LANG="fr"><I></I></SPAN><I><SPAN LANG="en-us"></SPAN></I></P>

<P DIR=LTR><SPAN LANG="fr"></SPAN><SPAN LANG="en-us"><FONT FACE="Consolas">[1]: <A HREF="https://mta.openssl.org/pipermail/openssl-users/2022-November/015623.html">https://mta.openssl.org/pipermail/openssl-users/2022-November/015623.html</A></FONT></SPAN></P>

</BODY>
</HTML>