Функция создания закрытого и соответствующего ему открытого ключа на основе общего ключа.
Синтаксис
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, CPC_CONFIG *config );
Параметры
- 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 как HCRYPTMODULE, на котором получен HCRYPTPROV в SiteNetID.
- hPriv
-
[out] Закрытый ключ сериализации/десериализации
- pcsadbSA
-
[out] Транспортное представление открытого ключа сериализации/десериализации
- pusadbSALen
-
[in/out] Размер транспортного представления открытого ключа сериализации/десериализации
- config
-
[in] Указатель на CPC_CONFIG используемый при создании HCRYPTMODULE
Возвращаемое значение
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
Примечания
Вырабатываемые ключи используются для сериализации и десериализации IKE сессий фазы 1.
Для запроса необходимого размера буфера, указатель на выходной буфер должен быть равен 0.
Закрытый ключ сериализации/десериализации освобождается функцией DestroyPrivKeyFn.
SEE ALSO
Требования
Заголовочный файл | sadb.h |
---|---|
Библиотека | |
Минимальная версия продукта | 1.0 |