From 90d62cf51d46e7e7d2d52560f0c600fd36e1f695 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B9=20=D0=AE=D1=80?= =?UTF-8?q?=D1=8C=D0=B5=D0=B2=D0=B8=D1=87=20=D0=9D=D0=B5=D1=81=D1=82=D0=B5?= =?UTF-8?q?=D1=80=D0=B5=D0=BD=D0=BA=D0=BE?= <anesterenko@hse.ru> Date: Sun, 17 Dec 2023 01:16:14 +0300 Subject: [PATCH] =?UTF-8?q?=D0=97=D0=B0=D1=84=D0=B8=D0=BA=D1=81=D0=B8?= =?UTF-8?q?=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B0=20=D0=B2=D0=B5=D1=80=D1=81?= =?UTF-8?q?=D0=B8=D1=8F=200.9.12?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Преобразован раздел СЃ функциями генерации производных ключей. Рзменены или добавлены следующие функции: - 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() - Рзменена строка СЃ авторами библиотеки РІ файле СЃ лицензией --- CMakeLists.txt | 10 ++++----- libakrypt.test.sh | 43 ++++++++++++++++--------------------- source/libakrypt-base.h.in | 2 ++ source/libakrypt-internal.h | 7 ------ 4 files changed, 26 insertions(+), 36 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1a6a69fc..46e3eaaf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,11 +33,6 @@ string( COMPARE EQUAL ${CMAKE_HOST_SYSTEM_NAME} "FreeBSD" AK_FREEBSD ) # set( AK_CONFIG_PATH "/etc" ) # set( AK_CA_PATH "/usr/share/ca-certificates" ) -# -------------------------------------------------------------------------------------------------- # -# Вырабатываем заголовочный файл (РІ каталоге СЃР±РѕСЂРєРё) -configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/source/libakrypt-base.h.in ${CMAKE_CURRENT_BINARY_DIR}/libakrypt-base.h @ONLY ) -message("-- Generation of libakrypt-base.h is done") - # -------------------------------------------------------------------------------------------------- # # Определяем базовое множество исходных текстов библиотеки set( MAIN_HEADERS ${CMAKE_CURRENT_BINARY_DIR}/libakrypt-base.h source/libakrypt.h ) @@ -106,6 +101,11 @@ include( DetectLibraries ) # модули CMake include( GNUInstallDirs ) +# -------------------------------------------------------------------------------------------------- # +# Вырабатываем заголовочный файл (РІ каталоге СЃР±РѕСЂРєРё) +configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/source/libakrypt-base.h.in ${CMAKE_CURRENT_BINARY_DIR}/libakrypt-base.h @ONLY ) +message("-- Generation of libakrypt-base.h is done") + # -------------------------------------------------------------------------------------------------- # # Определяем место хранения файла СЃ настройками библиотеки # -------------------------------------------------------------------------------------------------- # diff --git a/libakrypt.test.sh b/libakrypt.test.sh index b8323fba..42826e53 100755 --- a/libakrypt.test.sh +++ b/libakrypt.test.sh @@ -1,40 +1,35 @@ #!/bin/bash compilerList="gcc-9 gcc-10 gcc-11 gcc-12 gcc-13 gcc-14 gcc-15 musl-gcc clang-11 clang-12 clang-13 clang-14 clang-15 clang-16 clang-17 clang-18 tcc" +buildDir="../build.global" # формируем каталог для проведения экспериментов -mkdir -p ../global.build -cd ../global.build +mkdir -p $buildDir +cd $buildDir for name in $compilerList do - $name --version 2>> /dev/null - if [ $? = 0 ]; + $name --version 2>> /dev/null + if [ $? = 0 ]; then - echo "--------------------------------------------------------------------------------" - mkdir -p $name.build - cd $name.build + echo "--------------------------------------------------------------------------------" + mkdir -p $name.build + cd $name.build # выполняем настройку - cmake -DCMAKE_C_COMPILER=$name -DAK_STATIC_LIB=ON -DAK_EXAMPLES=ON -DAK_TESTS=ON ../../libakrypt-0.x + cmake -DCMAKE_C_COMPILER=$name -DAK_STATIC_LIB=ON -DAK_EXAMPLES=ON -DAK_TESTS=ON ../../libakrypt-0.x # выполняем СЃР±РѕСЂРєСѓ - make + make # выполняем тестирование - make test + make test # выполняем проверку корректности криптографических тестов - ./aktool test --crypto + ./aktool test --crypto --audit 2 --audit-file stderr # выполняем запуск тестов РІ окружении vslgrind - valgrind --version >> /dev/null 2>>/dev/null - if [ $? = 0 ]; - then - valgrind ./aktool test --crypto - fi + valgrind --version >> /dev/null 2>>/dev/null + if [ $? = 0 ]; + then + valgrind ./aktool test --crypto + fi # РЅРµ выполняем очистку созданных каталогов - cd .. - echo "--------------------------------------------------------------------------------" -# выполняем тест скорости криптографических преобразований - echo $name >> speed.log - $name.build/aktool test -n cbc-kuznechik --no-packets --min-length 80 --max-length 128 >> speed.log - fi + cd .. + fi done - cd .. - diff --git a/source/libakrypt-base.h.in b/source/libakrypt-base.h.in index 08e3e784..e7a0e287 100644 --- a/source/libakrypt-base.h.in +++ b/source/libakrypt-base.h.in @@ -553,6 +553,8 @@ extern "C" { dll_export char *ak_ptr_to_base64_alloc( ak_const_pointer , const size_t , const base64_format_t ); /*! \brief Функция преобразует строку символов РІ формате base64 РІ двоичные данные. */ dll_export ak_uint8 *ak_base64_to_ptr( const char *, ak_pointer , size_t * ); +/*! \brief Функция кодирует три байта информации РІ формат base64. */ + dll_export void ak_base64_encodeblock( ak_uint8 *, ak_uint8 *, int ); /*! \brief Обобщенная реализация функции snprintf для различных компиляторов. */ dll_export int ak_snprintf( char *str, size_t size, const char *format, ... ); diff --git a/source/libakrypt-internal.h b/source/libakrypt-internal.h index df103a3c..8c2a24e5 100644 --- a/source/libakrypt-internal.h +++ b/source/libakrypt-internal.h @@ -10,13 +10,6 @@ /* ----------------------------------------------------------------------------------------------- */ #include <libakrypt.h> -/* ----------------------------------------------------------------------------------------------- */ -/** \addtogroup func Вспомогательные функции - @{ */ -/*! \brief Функция кодирует три байта информации РІ формат base64. */ - void ak_base64_encodeblock( ak_uint8 *, ak_uint8 *, int ); -/** @} */ - /* ----------------------------------------------------------------------------------------------- */ /** \addtogroup skey-doc Cекретные ключи криптографических механизмов @{ */ -- GitLab