On 2015.09.19 at 21:34:43 +0300, Dmitry Belyavsky wrote:
> Привет!
>
> Твою идею про паддинг я одобряю. Но на всякий случай есть еще вот такой
> флаг:
>
> /*
> * Cipher handles any and all padding logic as well as finalisation.
> */
> # define EVP_CIPH_FLAG_CUSTOM_CIPHER 0x100000
>
> Анализируется в EVP_EncryptFinal, при этом зовётся коллбек шифрования с
> нулевой длиной данных и NULL в указателе на них.
>
> Тебе точно этого не хватит?
Этого точно хватит для реализации паддинга внутри шифра.
Но в результате получится, что у нас будут два gost-cbc шифра - просто
gost-cbc и gost-cbc-with-iec9797-padding. Вот это мне не нравится.
Получается что в название шифра гвоздями забиваются три разных сущноси -
алгоритм, режим и паддинг. Это уже немножко слишком много.
(кстати, надо будет ещё тесты на паддинг написать, которые шифруют с
паддингом, а расшифровывают и так и сяк, и смотрят что паддинг правильно
добавился, и правильно снялся).