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

Функция создания эфемерального закрытого и соответствующего ему открытого ключа.

Expand imageСинтаксис

C/C++ Copy Code
 capi_result CAPI_EXTC CreateEphemFn (
   HCRYPTMODULE hModule,
   HCRYPTPROV hProv,
   unsigned uFlags,
   PRIVKEY *hPriv,
   unsigned char *pcsadbSA,
   unsigned *pusadbSALen
 );

Параметры

hModule
[in] Дескриптор CSP (используется только в ядре)
hProv
[in] Дескриптор контекста провайдера, в котором будет создан закрытый ключ
uFlags
[in] Должен быть равен 0 или FLAG_SADB_DUPLICATE_EPHEM. В случае FLAG_SADB_DUPLICATE_EPHEM параметр pusadbSALen воспринимается как дублируемый PRIVKEY.
hPriv
[out] Закрытый ключ сериализации/десериализации
pcsadbSA
[out] Транспортное представление открытого ключа сериализации/десериализации
pusadbSALen
[in/out] Размер транспортного представления открытого ключа сериализации/десериализации (Закрытый ключ сериализации/десериализации при использовании FLAG_SADB_DUPLICATE_EPHEM)

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

CAPI_NOERROR Успешное завершение

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

CAPI_CSP_ERROR Криптографическая ошибка обработки входных данных


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

Вырабатываемые ключи используются для сериализации и десериализации IKE сессий фазы 1 и SPI сессий.

Для запроса необходимого размера буфера, указатель на выходной буфер должен быть равен 0.

Данная функция может быть использована для дублирования существующего закрытого ключа сериализации/десериализации (PRIVKEY) для различных дескрипторов контекста провайдера (hProv). Удобство состоит в том, что при сериализации в функции spiSerializeFn будет использовать один открытый ключ сериализации/десериализации для всех провайдеров.

Закрытый ключ сериализации/десериализации освобождается функцией DestroyPrivKeyFn.