CryptSignAndEncryptMessage 関数 (wincrypt.h)
CryptSignAndEncryptMessage 関数は、指定されたコンテンツのハッシュを作成し、ハッシュに署名し、コンテンツを暗号化し、暗号化されたコンテンツと署名されたハッシュをハッシュしてから、暗号化されたコンテンツと署名されたハッシュの両方をエンコードします。 結果は、ハッシュが最初に署名されてから暗号化された場合と同じです。
構文
BOOL CryptSignAndEncryptMessage(
[in] PCRYPT_SIGN_MESSAGE_PARA pSignPara,
[in] PCRYPT_ENCRYPT_MESSAGE_PARA pEncryptPara,
[in] DWORD cRecipientCert,
[in] PCCERT_CONTEXT [] rgpRecipientCert,
[in] const BYTE *pbToBeSignedAndEncrypted,
[in] DWORD cbToBeSignedAndEncrypted,
[out] BYTE *pbSignedAndEncryptedBlob,
[in, out] DWORD *pcbSignedAndEncryptedBlob
);
パラメーター
[in] pSignPara
シグネチャ パラメーターを含む CRYPT_SIGN_MESSAGE_PARA 構造体へのポインター。
[in] pEncryptPara
暗号化パラメーターを含む CRYPT_ENCRYPT_MESSAGE_PARA 構造体へのポインター。
[in] cRecipientCert
rgpRecipientCert 内の配列要素の数。
[in] rgpRecipientCert
CERT_CONTEXT構造体へのポインターの配列。 各構造体は、メッセージの目的の受信者の証明書です。
[in] pbToBeSignedAndEncrypted
署名および暗号化されるコンテンツを含むバッファーへのポインター。
[in] cbToBeSignedAndEncrypted
pbToBeSignedAndEncrypted バッファーのサイズ (バイト単位)。
[out] pbSignedAndEncryptedBlob
暗号化およびエンコードされたメッセージを受信するバッファーへのポインター。
このパラメーターは、メモリ割り当てのためにこの情報のサイズを設定するために NULL にすることができます 。 詳細については、「 不明な長さのデータの取得」を参照してください。
[in, out] pcbSignedAndEncryptedBlob
pbSignedAndEncryptedBlob が指すバッファーのサイズをバイト単位で指定する DWORD へのポインター。 関数が戻るとき、この変数には、*pbSignedAndEncryptedBlob にコピーされた署名済みおよび暗号化されたメッセージのサイズ (バイト単位) が含まれます。
戻り値
関数が成功した場合、戻り値は 0 以外 (TRUE) になります。
関数が失敗した場合、戻り値は 0 (FALSE) になります。
拡張エラー情報については、 GetLastError を呼び出します。
GetLastError 関数によって最も一般的に返されるエラー コードを次に示します。
リターン コード | 説明 |
---|---|
|
pbSignedAndEncryptedBlob パラメーターで指定されたバッファーが、返されるデータを保持するのに十分な大きさでない場合、関数はERROR_MORE_DATAコードを設定し、必要なバッファー サイズをバイト単位で pcbSignedAndEncryptedBlob が指す変数に格納します。 |
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | wincrypt.h |
Library | Crypt32.lib |
[DLL] | Crypt32.dll |