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

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

Expand imageСинтаксис

C/C++ Copy Code
 capi_result CAPI_EXTC CreatePSKFn (
   HCRYPTMODULE hModule,
   HCRYPTPROV hProv,
   const vblob *SitePSK,
   const vblob *SiteNetID,
   const vblob *SiteID,
   unsigned uFlags,
   PRIVKEY & hPriv,
   unsigned char *pcsadbSA,
   unsigned *pusadbSALen
 );

Параметры

hModule
[in] Дескриптор CSP (используется только в ядре)
hProv
[in] Дескриптор контекста провайдера (CRYPT_VERIFYCONTEXT)
SitePSK
[in] PSK узла сети
SiteNetID
[in] Идентификатор канала связи
SiteID
[in] Уникальный идентификатор узла сети (например, fingerprint сертификата, серийный номер или аппаратный адрес)
uFlags
[in] Должен быть равен 0 или P1_SETPSK_HCRYPT. В случае P1_SETPSK_HCRYPT параметр SitePSK воспринимается как HCRYPTKEY (симметричный экспортируемый ключ), параметр SiteNetID как HCRYPTPROV провайдер, на котором получен ключ HCRYPTKEY в PSK, параметр SiteID игнорируется.
hPriv
[out] Закрытый ключ сериализации/десериализации
pcsadbSA
[out] Транспортное представление открытого ключа сериализации/десериализации
pusadbSALen
[in/out] Размер транспортного представления открытого ключа сериализации/десериализации

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

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

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

CAPI_PSK_TTL_EXPIRED_ERROR Срок действия PSK истёк

CAPI_IMITA_ERROR PSK искажён (или PSK не соответствует SiteID и SiteNetID)

CAPI_PSK_ERROR PSK искажён (или PSK не соответствует SiteID и SiteNetID)

CAPI_CSP_ERROR ошибка вызова CSP


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

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

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

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

SEE ALSO

p1_SetPSKFn, getPSKnotAfterFn, genpsk