[openssl-project] to fully overlap or not to
Viktor Dukhovni
openssl-users at dukhovni.org
Wed Feb 28 16:37:06 UTC 2018
> On Feb 28, 2018, at 11:32 AM, Viktor Dukhovni <openssl-users at dukhovni.org> wrote:
>
>>> I'd like to request more opinions on
>>> https://github.com/openssl/openssl/pull/5427. Key dispute question is
>>> whether or not following fragment should work
>>>
>>> unsigned char *inp = buf, *out = buf;
>>>
>>> for (i = 0; i < sizeof(buf); i++) {
>>> EVP_EncryptUpdate(ctx, out, &outl, inp++, 1);
>>> out += outl;
>>> }
>>
>> This should work.
>
> On second thought, perhaps not. A block cipher cannot provide output
> synchronously on byte boundaries.
Time to stop composing email on the train... I see that the code supports
0-length output, so the block cipher can buffer internally, and periodically
output a block. So, back to the first message, it should work, with internal
input buffering in the block cipher context until a full block is obtained or
EVP_EncryptFinal() is called. Unless that has prohibitive performance impact
on existing callers.
--
Viktor.
More information about the openssl-project
mailing list