次の方法で共有


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

PFN_CMSG_CNG_IMPORT_KEY_TRANSコールバック関数は、キー トランスポート受信者を対象とするコンテンツ暗号化キー (CEK) をインポートおよび復号化します。 PFN_CMSG_CNG_IMPORT_KEY_TRANS は、Cryptography API: Next Generation (CNG) オブジェクト識別子 (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

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

[in] pKeyTransDecryptPara

CMSG_CTRL_DECRYPTまたはCMSG_CTRL_KEY_TRANS_DECRYPTケースで CryptMsgControl 関数に渡されるキー トランスポート情報を含むCMSG_CTRL_KEY_TRANS_DECRYPT_PARA構造体へのポインター。 CMSG_CTRL_DECRYPTの場合、CryptMsgControl は、CMSG_CTRL_DECRYPT_PARA構造体をCMSG_CTRL_KEY_TRANS_DECRYPT_PARA構造体に変換します。

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

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

[in] dwFlags

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

pvReserved

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

戻り値

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

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

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

注釈

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

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

常時 定義
CMSG_OID_CNG_IMPORT_KEY_TRANS_FUNC "CryptMsgDllCNGImportKeyTrans"
 

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

要件

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

こちらもご覧ください

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