функция обратного вызова PFN_CMSG_CNG_IMPORT_KEY_AGREE (wincrypt.h)

Функция обратного вызова PFN_CMSG_CNG_IMPORT_KEY_AGREE расшифровывает ключ шифрования содержимого (CEK), предназначенный для получателя соглашения о ключе. PFN_CMSG_CNG_IMPORT_KEY_AGREE можно установить с помощью API шифрования: идентификатор объекта (OID) следующего поколения (CNG).

Синтаксис

PFN_CMSG_CNG_IMPORT_KEY_AGREE PfnCmsgCngImportKeyAgree;

BOOL PfnCmsgCngImportKeyAgree(
  [in, out] PCMSG_CNG_CONTENT_DECRYPT_INFO pCNGContentDecryptInfo,
  [in]      PCMSG_CTRL_KEY_AGREE_DECRYPT_PARA pKeyAgreeDecryptPara,
  [in]      DWORD dwFlags,
            void *pvReserved
)
{...}

Параметры

[in, out] pCNGContentDecryptInfo

Указатель на структуру CMSG_CNG_CONTENT_DECRYPT_INFO , обновляемую с помощью расшифрованных байтов CEK. Этот параметр содержит ключ, используемый для расшифровки CEK. Следующий параметр pKeyTransDecryptPara содержит байты CEK для расшифровки.

[in] pKeyAgreeDecryptPara

Указатель на структуру CMSG_CTRL_KEY_AGREE_DECRYPT_PARA , которая содержит сведения о соглашении ключа, передаваемые функции CryptMsgControl в CMSG_CTRL_KEY_AGREE_DECRYPT случае.

Элемент EncryptedKey элемента pKeyAgree содержит байты CEK для расшифровки. Поскольку структура CMSG_CTRL_KEY_AGREE_DECRYPT_PARA может содержать вариант HCRYPTPROV , ее член hNCryptKey не должен использоваться для расшифровки EncryptedKey. Вместо этого необходимо использовать элемент hNCryptKey , указанный в параметре pCNGContentDecryptInfo .

Эта функция не должна обновлять элементы структуры CMSG_CTRL_KEY_AGREE_DECRYPT_PARA .

[in] dwFlags

Этот параметр зарезервирован. Присвойте ему значение 0.

pvReserved

Этот параметр зарезервирован. Присвойте ему значение NULL.

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

Если функция выполнена успешно, возвращаемое значение не равно нулю (TRUE).

Если функция завершается ошибкой, возвращаемое значение равно нулю (FALSE). Для получения дополнительных сведений об ошибке вызовите Метод GetLastError.

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

Комментарии

Функция CryptMsgControl вызывает эту функцию для следующих операций, заданных параметром dwCtrlType :

CMSG_CTRL_KEY_AGREE_DECRYPT Для развертывания этой функции обратного вызова можно использовать функции поддержки OID . Для этой цели Wincrypt.h определяет следующую константу.

Константа Определение
CMSG_OID_CNG_IMPORT_KEY_AGREE_FUNC "CryptMsgDllCNGImportKeyAgree"
 

Примеры

Пример развертывания функции обратного вызова с возможностью установки OID см. в разделе Расширение функциональных возможностей CryptoAPI.

Требования

   
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header wincrypt.h

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

Декодирование конвертированных данных