次の方法で共有


PFN_CMSG_CNG_IMPORT_KEY_AGREE コールバック関数 (wincrypt.h)

PFN_CMSG_CNG_IMPORT_KEY_AGREEコールバック関数は、キー 契約の受信者を対象としたコンテンツ暗号化キー (CEK) を復号化します。 PFN_CMSG_CNG_IMPORT_KEY_AGREE は、Cryptography API: Next Generation (CNG) オブジェクト識別子 (OID) を使用してインストールできます。

構文

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

復号化された CEK バイトで更新される CMSG_CNG_CONTENT_DECRYPT_INFO 構造体へのポインター。 このパラメーターには、CEK の暗号化を解除するために使用されるキーが含まれています。 次の pKeyTransDecryptPara パラメーターには、復号化する CEK バイトが含まれています。

[in] pKeyAgreeDecryptPara

CMSG_CTRL_KEY_AGREE_DECRYPTの場合に CryptMsgControl 関数に渡されるキー アグリーメント情報を含むCMSG_CTRL_KEY_AGREE_DECRYPT_PARA構造体へのポインター。

pKeyAgree メンバーの EncryptedKey メンバーには、復号化する CEK バイトが含まれています。 CMSG_CTRL_KEY_AGREE_DECRYPT_PARA構造体には HCRYPTPROV の選択肢が含まれている可能性があるため、その hNCryptKey メンバーを使用して EncryptedKey の暗号化を解除することはできません。 代わりに、pCNGContentDecryptInfo パラメーターで指定された hNCryptKey メンバーを使用する必要があります。

この関数は 、CMSG_CTRL_KEY_AGREE_DECRYPT_PARA 構造体のメンバーを更新することはできません。

[in] dwFlags

このパラメーターは予約されています。 0 に設定します。

pvReserved

このパラメーターは予約されています。 NULL に設定 します

戻り値

関数が成功した場合、戻り値は 0 以外 (TRUE) になります

関数が失敗した場合、戻り値は 0 (FALSE) になります。 拡張エラー情報については、 GetLastError を呼び出します。

このコールバック関数がキー暗号化アルゴリズムをサポートしていない場合は、 FALSE を 返し、ERROR_NOT_SUPPORTEDを使用して SetLastError を 呼び出す必要があります。

解説

CryptMsgControl 関数は、dwCtrlType パラメーターで指定された次の操作に対してこの関数を呼び出します。

CMSG_CTRL_KEY_AGREE_DECRYPTOID サポート関数を使用して、このコールバック関数を展開できます。 Wincrypt.h は、この目的のために次の定数を定義します。

常時 定義
CMSG_OID_CNG_IMPORT_KEY_AGREE_FUNC "CryptMsgDllCNGImportKeyAgree"
 

OID インストール可能なコールバック関数を展開する例については、「 CryptoAPI 機能の拡張」を参照してください。

要件

   
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー wincrypt.h

関連項目

エンベロープ データのデコード