Заголовочный файл: esp_gost.h
Библиотека: esp_gost.o (linux), cpesp_api.dll, cpesp_drv.sys (windows)

Функция инициализации библиотеки ESP.

Expand imageСинтаксис

C/C++ Copy Code
 capi_result CAPI_EXTC cpesp_init_gost (
   esp_gost_handle h,
   const struct esp_gost_in *in,
   unsigned uFlags,
   struct esp_gost_out *out
 );

Параметры

h
[out] Дескриптор библиотеки ESP, заполняется таблицей функций ESP_GOST при успешном вызове
in
[in] Указатель на структуру esp_gost_in, которая должна быть заполнена
uFlags
[in] Зарезервировано для будущего использования. Должен быть равен 0
out
[out] Указатель на структуру esp_gost_out, которая будет заполнена при успешном вызове

Возвращаемое значение

CAPI_NOERROR Успешное завершение (дескриптор библиотеки ESP заполнен таблицей функций ESP_GOST)

CAPI_CALL_ERROR Неверные входные аргументы

CAPI_NOT_ENOUGH_SPACE Размер буфера h недостаточен (см. requiredMem в esp_gost_out)

CAPI_INTERNAL_ERROR Внутренняя ошибка библиотеки


Expand imageПримечания

Типичная инициализация библиотеки ESP происходит с помощью вызова функции cpesp_init_gost 2 раза: на первом вызове, функция определяет потребности в памяти для работы. На втором вызове, получив требуемую память, выполняет инициализацию библиотеки.

Потребности памяти в пулах CSP уровня ядра ОС при работе с реализацией ESP:

  • MP_PRIME_M, MP_SEC_M и MP_BIG не более 2048*<Количество SPI> + 1048576;

  • MP_WORK не более 65536*<Количество SPI> + 5242880;

  • MP_WORK_M не более 131072;

Таким образом, при инициализации LFMM рекомендуется:

  • PoolSizes[MP_PRIME_M] += 2*1024 * (MAX_SESSIONS) + 1024*1024;

  • PoolSizes[MP_SEC_M] += 2*1024 * (MAX_SESSIONS) + 1024*1024;

  • PoolSizes[MP_BIG] += 2*1024 * (MAX_SESSIONS) + 1024*1024;

  • PoolSizes[MP_WORK] += 64*1024 * (MAX_SESSIONS) + 5*1024*1024;

  • PoolSizes[MP_WORK_M] += 128*1024;

Использование дескрипторов реализацией ESP в ядре ОС:

  • Каждый SPI использует не более 20 дескрипторов;

  • Каждый PRIVKEY использует не более 10 дескрипторов;

Таким образом, если значение по умолчанию (1000000 (~50000 сессий)) не подходит, следует самостоятельно инициализировать переменную CPC_CONFIG.MaxHandles.