Функция создания эфемерального закрытого ключа и транспортного представления соответствующего ему открытого ключа.
Синтаксис
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 Криптографическая ошибка обработки входных данных
Примечания
Вырабатываемые ключи используются для сериализации и десериализации IKE сессий фазы 1 и SPI сессий.
Для запроса необходимого размера буфера, указатель на выходной буфер должен быть равен 0.
Данная функция может быть использована для дублирования существующего закрытого ключа сериализации/десериализации (PRIVKEY) для различных дескрипторов контекста провайдера (hProv). Удобство состоит в том, что при сериализации в функции spiSerializeFn будет использовать один открытый ключ сериализации/десериализации для всех провайдеров.
Закрытый ключ сериализации/десериализации освобождается функцией DestroyPrivKeyFn.
Требования
Заголовочный файл | sadb.h |
---|---|
Библиотека | |
Минимальная версия продукта | 1.0 |