CryptEncryptMessage 関数 (wincrypt.h)
CryptEncryptMessage 関数は、メッセージを暗号化してエンコードします。
構文
BOOL CryptEncryptMessage(
[in] PCRYPT_ENCRYPT_MESSAGE_PARA pEncryptPara,
[in] DWORD cRecipientCert,
[in] PCCERT_CONTEXT [] rgpRecipientCert,
[in] const BYTE *pbToBeEncrypted,
[in] DWORD cbToBeEncrypted,
[out] BYTE *pbEncryptedBlob,
[in, out] DWORD *pcbEncryptedBlob
);
パラメーター
[in] pEncryptPara
暗号化パラメーターを含む CRYPT_ENCRYPT_MESSAGE_PARA 構造体へのポインター。
CryptEncryptMessage 関数は、SHA2 OID、szOID_DH_SINGLE_PASS_STDDH_SHA256_KDF、szOID_DH_SINGLE_PASS_STDDH_SHA384_KDFをサポートしていません。
[in] cRecipientCert
rgpRecipientCert 配列内の要素の数。
[in] rgpRecipientCert
メッセージの目的の受信者の証明書を含む CERT_CONTEXT 構造体へのポインターの配列。
[in] pbToBeEncrypted
暗号化されるメッセージを含むバッファーへのポインター。
[in] cbToBeEncrypted
暗号化されるメッセージのサイズ (バイト単位)。
[out] pbEncryptedBlob
暗号化およびエンコードされたメッセージを受信するバッファーを含む BLOB へのポインター。
メモリ割り当てのためにこの情報のサイズを設定するには、このパラメーターを NULL にできます。 詳細については、「 不明な長さのデータの取得」を参照してください。
[in, out] pcbEncryptedBlob
pbEncryptedBlob パラメーターによって指されるバッファーのサイズをバイト単位で指定する DWORD へのポインター。 関数が戻るとき、この変数には 、pbEncryptedBlob にコピーされた暗号化およびエンコードされたメッセージのサイズ (バイト単位) が含まれます。
戻り値
関数が成功した場合、関数は 0 以外 (TRUE) を返します。
関数が失敗した場合は、0 (FALSE) を返します。 拡張エラー情報については、 GetLastError を呼び出します。
リターン コード | 説明 |
---|---|
|
pbEncryptedBlob パラメーターで指定されたバッファーが、返されるデータを保持するのに十分な大きさでない場合、関数はERROR_MORE_DATA コードを設定し、必要なバッファー サイズをバイト単位で pcbEncryptedBlob が指す変数に格納します。 |
|
メッセージ エンコードの種類が無効です。 現在、PKCS_7_ASN_ENCODINGのみがサポートされています。 *pEncryptPara の cbSize が無効です。 |
関数が失敗した場合、GetLastError は抽象構文表記 1 (ASN.1) エンコード/デコード エラーを返す可能性があります。 これらのエラーの詳細については、「 ASN.1 エンコード/デコードの戻り値」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | wincrypt.h |
Library | Crypt32.lib |
[DLL] | Crypt32.dll |