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

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

Expand imageСинтаксис

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

Параметры

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

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

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

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

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


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

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

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

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