Зафиксирована версия 0.9.12
- Преобразован раздел с функциями генерации производных ключей.
  Изменены или добавлены следующие функции:
    - int ak_skey_derive_kdf256()
    - int ak_skey_derive_kdf256_from_skey()
    - ak_pointer ak_skey_new_derive_kdf256_from_skey()
    - int ak_tlstree_state_create()
    - int ak_tlstree_state_destroy()
    - int ak_skey_derive_tlstree()
    - int ak_skey_derive_tlstree_from_skey()
    - ak_pointer ak_skey_new_derive_tlstree_from_skey()
 - Встроены в общее дерево тестов криптографических преобразований:
    - ak_libakrypt_test_kdf256()
    - bool_t ak_libakrypt_test_tlstree()
 - Добавлен ряд забытых когда-то функций для кодирования/декодирования base64:
    - const char *ak_ptr_to_base64()
    - char *ak_ptr_to_base64_alloc()
    - size_t ak_ptr_to_base64_size()
    - ak_uint8 *ak_base64_to_ptr()
- Название функции ak_skey_delete_after_load() укоротилось до ak_skey_delete()
- Изменена строка с авторами библиотеки в файле с лицензией
90d62cf5

Libakrypt: аннотация

Библиотека libakrypt написана на языке Си и реализует механизмы генерации, хранения, экспорта и импорта ключевой информации, а также основные отечественные криптографические преобразования, регламентированные национальными стандартами и рекомендациями по стандартизации.

Цель разработки библиотеки заключается в создании программного модуля с открытыми исходными текстами для СКЗИ, удовлетворяющего рекомендациям по стандартизации Р 1323565.1.012-2017 «Принципы разработки и модернизации шифровальных (криптографических) средств защиты информации» по классу КС3.

Библиотека распространяется по лицензии MIT и содержит реализацию следующих криптографических преобразований.

  1. Алгоритмы блочного шифрования "Магма" и "Кузнечик", регламентированные в ГОСТ Р 34.13-1015, см. также RFC 8891 and RFC 7801;
  2. Режимы блочного шифрования ГОСТ Р 34.13-2015, включая режим выработки имитовставки;
  3. Режим шифрования ACPKM, см. рекомендации Р 1323565.1.017-2018 и RFC 8645;
  4. Режим шифрования XTS, см. IEEE 1619-2007;
  5. Режимы аутентификационного шифрования, включая режим MGM (Multilinear Galois mode), рекомендуемый в Р 1323565.026-2019, см. также RFC 9058;
  6. Функции хеширования семейства "Стрибог", стандартизированные в ГОСТ Р 34.11-2012, см. также RFC 6986;
  7. Криптографические алгоритмы из рекомендаций Р 50.1.113-2016, включая алгоритмы HMAC и KDF_GOSTR3411_2012_256, а также TLSTREE из рекомендаций Р 1323565.1.030-2019;
  8. Функция выработки ключа из пароля (PBKDF2), рекомендованная в Р 50.1.111-2016;
  9. Несколько генераторов псевдослучайных чисел, включая алгоритм рекомендованный в Р 1323565.1.006-2017;
  10. Арифметика Монтгомери для конечных простых полей;
  11. Операции в группе точек эллиптической кривой в формах Вейерштрасса и Эдвардса. Поддерживаются все эллиптические кривые, указанные в рекомендациях Р 1323565.024-2019;
  12. Процедуры выработки и проверки электронной подписи согласно ГОСТР Р 34.10-2012 и ISO/IEC 14888-3:2016;
  13. Низкоуровневые функции для работы с ASN.1 нотацией и кодирования данных в форматах DER и PEM, см. ГОСТ Р ИСО/МЭК 8825-1-2003;
  14. Функции для работы с сертфикатами форматов x509, включая форматы открытых ключей, описываемые в рекомендациях Р 1323565.023-2018 и RFC 5652;
  15. Схема Блома для выработки симметричных ключей парной связи.

Библиотека libakrypt может быть собрана различными компиляторами такими, как gcc, clang, Microsoft Visual C, TinyCC и icc. Система сборки: cmake.

Поддерживаемая архитектура: x86, x64, arm32v7, arm32v7eb, armhf, mips32r2 и mips64r2.

Библиотека может применяться в различных операционных системах: Linux, Windows и FreeBSD. Также были успешные тестовые запуски библиотеки под ReactOS, Sailfish OS и PetaLinux.

Libakrypt: сборка

Получить исходные коды библиотеки можно с помощью следующего вызова.

git clone https://git.miem.hse.ru/axelkenzo/libakrypt-0.x

Cборка библиотеки осуществляется привычным способом.

mkdir build
cd build
cmake ../libakrypt-0.x
make

После компиляции исходных текстов будут собраны две библиотеки libakrypt-base и libakrypt, а также консольная утилита aktool. Установка собранных библиотек и консольной утилиты выполняется с правами суперпользователя следующим образом.

make install

Libakrypt: документация

Документация, а также подробная инструкция по установке и сборке библиотеки, находится по адресу: http://libakrypt.ru, а также может быть найдена в подкаталоге doc дерева исходных текстов библиотеки.