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

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

Синтаксис

PFN_CMSG_GEN_CONTENT_ENCRYPT_KEY PfnCmsgGenContentEncryptKey;

BOOL PfnCmsgGenContentEncryptKey(
  [in, out] PCMSG_CONTENT_ENCRYPT_INFO pContentEncryptInfo,
  [in]      DWORD dwFlags,
            void *pvReserved
)
{...}

Параметры

[in, out] pContentEncryptInfo

Указатель на структуру CMSG_CONTENT_ENCRYPT_INFO , содержащую ключ.

[in] dwFlags

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

pvReserved

Этот параметр зарезервирован и должен иметь значение NULL.

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

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

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

Комментарии

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

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

Значение fCNG Константа Определение
FALSE CMSG_OID_GEN_CONTENT_ENCRYPT_KEY_FUNC или CMSG_OID_CAPI1_GEN_CONTENT_ENCRYPT_KEY_FUNC "CryptMsgDllGenContentEncryptKey"
TRUE CMSG_OID_CNG_GEN_CONTENT_ENCRYPT_KEY_FUNC "CryptMsgDllCNGGenContentEncryptKey"

Требования

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