[oss-gost-crypto] Модули Linux с криптографией ГОСТ

Vitaly Chikunov vt at altlinux.org
Mon Oct 8 12:09:44 MSK 2018


FYI

On Wed, Oct 03, 2018 at 05:34:23PM +0300, Vitaly Chikunov wrote:
> On Wed, Oct 03, 2018 at 01:48:01PM +0300, Dmitry Eremin-Solenikov wrote:
> > 
> > Раз уж пошел разговор про ядерные модули, сконвертировал код для
> > поддержки Linux Crypto API: https://github.com/GostCrypt/linux-crypto
> 
> К слову, моё ядро для сходных же целей
>   https://github.com/vt-alt/linux бранч tfm-streebog

Я еще больше адаптировал Streebog для апстрима:

  https://github.com/vt-alt/linux бранч streebog

1. Пофиксил жалобы checkpatch.pl, какие можно.

2. Полностью убрал ifdef __LITTLE_ENDIAN'ы и дублирование массивов с
константами -- даже с этими изменениями исходники самые большие в crypto/,
а были в два раза больше. Заменил где надо на le64_to_cpu/cpu_to_le64.
Это noop на x86, а на других архитектурах импакт зависит от наличия swab64.
(Однако, на big endian архитектурах не тестировал.)

3. Выкинул не используемый массив A[].

4. Переделал add512 на более простой код.

5. Переделал XLPS макрос на более быстрый (по тестам) код. (Пробовал
разные варианты переделки.) Bulk speed по тестам tcrypt увеличилась (на
E5630 под qemu+kvm) с 59 Mb/s до 70 Mb/s. К слову сказать, у
sha256-generic скорость 120 Mb/s, а у китайского sm3 85Mb/s.

Для желающих поэкспериментировать тесты можно запустить так:

   insmod tcrypt.ko mode=400 alg=sb256 sec=1

6. Перенес тесты из тела модуля в testmgr. (Раньше исходники можно было
легко собирать как in- так и out-of-tree, сейчас out-of-tree будет не
так удобно сделать не потеряв тесты.) streebog.h перенес в
include/crypto/.




More information about the oss-gost-crypto mailing list