Поделиться через


Функция NCryptSecretAgreement (ncrypt.h)

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

Синтаксис

SECURITY_STATUS NCryptSecretAgreement(
  [in]  NCRYPT_KEY_HANDLE    hPrivKey,
  [in]  NCRYPT_KEY_HANDLE    hPubKey,
  [out] NCRYPT_SECRET_HANDLE *phAgreedSecret,
  [in]  DWORD                dwFlags
);

Параметры

[in] hPrivKey

Дескриптор закрытого ключа , используемого для создания значения секретного соглашения. Этот ключ и ключ hPubKey должны поступать от одного поставщика хранилища ключей.

[in] hPubKey

Дескриптор открытого ключа , используемый для создания значения секретного соглашения. Этот ключ и ключ hPrivKey должны поступать от одного поставщика хранилища ключей.

[out] phAgreedSecret

Указатель на переменную NCRYPT_SECRET_HANDLE , которая получает дескриптор, представляющий значение соглашения секрета. Если этот дескриптор больше не нужен, отпустите его, передав его в функцию NCryptFreeObject .

[in] dwFlags

Флаги, изменяющие поведение функции. Это может быть ноль или сочетание одного или нескольких из следующих значений. Набор допустимых флагов зависит от каждого поставщика хранилища ключей. Следующий флаг применяется ко всем поставщикам.

Значение Значение
NCRYPT_SILENT_FLAG
Запрашивает, чтобы поставщик служб ключей (KSP) не отображал пользовательский интерфейс. Если поставщик должен отобразить пользовательский интерфейс для работы, вызов завершается ошибкой и KSP должен задать код ошибки NTE_SILENT_CONTEXT в качестве последней ошибки.

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

Возвращает код состояния, указывающий на успешное или неудачное выполнение функции.

Возможные коды возврата включают, помимо прочего, следующие.

Код возврата Описание
ERROR_SUCCESS
Функция выполнена успешно.
NTE_INVALID_HANDLE
Недопустимый параметр hPrivKey или hPubKey .
NTE_INVALID_PARAMETER
Один или несколько параметров являются недопустимыми.
NTE_NO_MEMORY
Произошел сбой выделения памяти.

Комментарии

Служба не должна вызывать эту функцию из функции StartService. Если служба вызывает эту функцию из функции StartService, может возникнуть взаимоблокировка, и служба может перестать отвечать на запросы.

Требования

Требование Значение
Минимальная версия клиента Windows Vista [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2008 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header ncrypt.h
Библиотека Ncrypt.lib
DLL Ncrypt.dll

См. также раздел

NCryptFreeObject