Развернуть все
Свернуть все

Функция CreateEphemFn

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

Синтаксис

C/C++
 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