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

Функция обратного вызова PFN_CMSG_EXPORT_KEY_TRANS шифрует и экспортирует ключ шифрования содержимого для получателя транспорта ключа в конвертированном сообщении. PFN_CMSG_EXPORT_KEY_TRANS можно установить с помощью идентификатора объектаCryptoAPI (OID). Эта функция вызывается функцией CryptMsgOpenToEncode , если ее параметру dwMsgType присвоено значение CMSG_ENVELOPED.

Синтаксис

PFN_CMSG_EXPORT_KEY_TRANS PfnCmsgExportKeyTrans;

BOOL PfnCmsgExportKeyTrans(
  [in]      PCMSG_CONTENT_ENCRYPT_INFO pContentEncryptInfo,
  [in]      PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO pKeyTransEncodeInfo,
  [in, out] PCMSG_KEY_TRANS_ENCRYPT_INFO pKeyTransEncryptInfo,
  [in]      DWORD dwFlags,
            void *pvReserved
)
{...}

Параметры

[in] pContentEncryptInfo

Указатель на структуру CMSG_CONTENT_ENCRYPT_INFO , содержащую ключ шифрования содержимого.

[in] pKeyTransEncodeInfo

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

[in, out] pKeyTransEncryptInfo

Указатель на структуру CMSG_KEY_TRANS_ENCRYPT_INFO , содержащую зашифрованный ключ шифрования содержимого.

[in] dwFlags

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

pvReserved

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

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

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

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

Комментарии

Функция PFN_CMSG_EXPORT_KEY_TRANS должна обновить элемент EncryptedKeyструктуры CMSG_KEY_TRANS_ENCRYPT_INFO , на которую указывает параметр pKeyTransEncryptInfo . Эта функция должна использовать элементы pfnAlloc и pfnFreeструктуры CMSG_CONTENT_ENCRYPT_INFO , на которую указывает параметр pContentEncryptInfo , для управления выделением памяти для зашифрованного ключа.

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

Необходимо определить различные функции обратного вызова для ключей CAPI1 и API шифрования: ключи следующего поколения (CNG). Обе функции имеют одинаковую сигнатуру, но используют разные идентификаторы OID. Вызываемая функция зависит от значения элемента fCNGструктуры CMSG_CONTENT_ENCRYPT_INFO , на которую указывает параметр pContentEncryptInfo . В следующей таблице показана связь между функцией обратного вызова и значением члена fCNG .

Значение fCNG Константа Определение
Ложь. CMSG_OID_EXPORT_KEY_TRANS_FUNC или CMSG_OID_CAPI1_EXPORT_KEY_TRANS_FUNC "CryptMsgDllExportKeyTrans"
TRUE CMSG_OID_CNG_EXPORT_KEY_TRANS_FUNC "CryptMsgDllCNGExportKeyTrans"

Требования

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