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


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

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

Синтаксис

PFN_CMSG_IMPORT_KEY_AGREE PfnCmsgImportKeyAgree;

BOOL PfnCmsgImportKeyAgree(
  [in]  PCRYPT_ALGORITHM_IDENTIFIER pContentEncryptionAlgorithm,
  [in]  PCMSG_CTRL_KEY_AGREE_DECRYPT_PARA pKeyAgreeDecryptPara,
  [in]  DWORD dwFlags,
        void *pvReserved,
  [out] HCRYPTKEY *phContentEncryptKey
)
{...}

Параметры

[in] pContentEncryptionAlgorithm

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

[in] pKeyAgreeDecryptPara

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

[in] dwFlags

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

pvReserved

Этот параметр зарезервирован и должен быть null.

[out] phContentEncryptKey

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

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

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

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

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

Замечания

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

Постоянный Определение
CMSG_OID_IMPORT_KEY_AGREE_FUNC или CMSG_OID_CAPI1_IMPORT_KEY_AGREE_FUNC "CryptMsgDllImportKeyAgree"

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows XP [только классические приложения]
минимальный поддерживаемый сервер Windows Server 2003 [только классические приложения]
целевая платформа Виндоус
заголовка wincrypt.h