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

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

Синтаксис

PFN_CMSG_CNG_IMPORT_KEY_TRANS PfnCmsgCngImportKeyTrans;

BOOL PfnCmsgCngImportKeyTrans(
  [in, out] PCMSG_CNG_CONTENT_DECRYPT_INFO pCNGContentDecryptInfo,
  [in]      PCMSG_CTRL_KEY_TRANS_DECRYPT_PARA pKeyTransDecryptPara,
  [in]      DWORD dwFlags,
            void *pvReserved
)
{...}

Параметры

[in, out] pCNGContentDecryptInfo

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

[in] pKeyTransDecryptPara

Указатель на структуру CMSG_CTRL_KEY_TRANS_DECRYPT_PARA , содержащую сведения о транспорте ключа, передаваемые функции CryptMsgControl в CMSG_CTRL_DECRYPT или CMSG_CTRL_KEY_TRANS_DECRYPT случаях. В CMSG_CTRL_DECRYPT случае CryptMsgControl преобразует структуру CMSG_CTRL_DECRYPT_PARA в структуру CMSG_CTRL_KEY_TRANS_DECRYPT_PARA .

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

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

[in] dwFlags

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

pvReserved

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

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

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

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

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

Комментарии

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

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

Константа Определение
CMSG_OID_CNG_IMPORT_KEY_TRANS_FUNC "CryptMsgDllCNGImportKeyTrans"
 

Примеры

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

Требования

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

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

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