CryptHashMessage 関数 (wincrypt.h)
CryptHashMessage 関数は、メッセージのハッシュを作成します。
構文
BOOL CryptHashMessage(
[in] PCRYPT_HASH_MESSAGE_PARA pHashPara,
[in] BOOL fDetachedHash,
[in] DWORD cToBeHashed,
[in] const BYTE * [] rgpbToBeHashed,
[in] DWORD [] rgcbToBeHashed,
[out] BYTE *pbHashedBlob,
[in, out] DWORD *pcbHashedBlob,
[out, optional] BYTE *pbComputedHash,
[in, out, optional] DWORD *pcbComputedHash
);
パラメーター
[in] pHashPara
ハッシュ パラメーターを含む CRYPT_HASH_MESSAGE_PARA 構造体へのポインター。
[in] fDetachedHash
このパラメーターが TRUE に設定されている場合、 pbHashedBlob では pbComputedHash のみがエンコード されます。 それ以外の場合は、 rgpbToBeHashed と pbComputedHash の 両方がエンコードされます。
[in] cToBeHashed
rgpbToBeHashed および rgcbToBeHashed 内の配列要素の数。 fDetachedHash が TRUE に設定されていない限り、このパラメーターは 1 つしか指定できません。
[in] rgpbToBeHashed
ハッシュする内容を含むバッファーへのポインターの配列。
[in] rgcbToBeHashed
rgpbToBeHashed が指すバッファーのサイズ (バイト単位) の配列。
[out] pbHashedBlob
送信用にエンコードされたハッシュされたメッセージを受信するバッファーへのポインター。
このパラメーターは、追加の処理にハッシュされたメッセージが必要ない場合、またはメモリ割り当てのためにハッシュされたメッセージのサイズを設定する場合は NULL にすることができます 。 このパラメーターが NULL の場合、ハッシュされたメッセージは返されません。 詳細については、「 不明な長さのデータの取得」を参照してください。
[in, out] pcbHashedBlob
pbHashedBlob パラメーターによって指されるバッファーのサイズをバイト単位で指定する DWORD へのポインター。 関数が戻るとき、この変数には、 pbHashedBlob にコピーされた復号化されたメッセージのサイズ (バイト単位) が含まれます。 このパラメーターは DWORD のアドレスである必要があり、 NULL ではないか、バッファーの長さは返されません。
[out, optional] pbComputedHash
新しく作成されたハッシュ値を受け取るバッファーへのポインター。 このパラメーターは、新しく作成されたハッシュが追加の処理に必要ない場合、またはメモリ割り当てのためにハッシュのサイズを設定する場合は NULL にすることができます 。 詳細については、「 不明な長さのデータの取得」を参照してください。
[in, out, optional] pcbComputedHash
pbComputedHash パラメーターによって指されるバッファーのサイズをバイト単位で指定する DWORD へのポインター。 関数が戻ると、この DWORD には、 pbComputedHash にコピーされた新しく作成されたハッシュのサイズ (バイト単位) が含まれます。
戻り値
関数が成功した場合、関数は 0 以外 (TRUE) を返します。
関数が失敗した場合は、0 (FALSE) を返します。 拡張エラー情報については、 GetLastError を呼び出します。
リターン コード | 説明 |
---|---|
|
メッセージ エンコードの種類が無効です。 現在、PKCS_7_ASN_ENCODINGのみがサポートされています。 *pHashPara の cbSize が無効です。 |
|
pbHashedBlob パラメーターで指定されたバッファーが、返されたデータを保持するのに十分な大きさでない場合、関数はERROR_MORE_DATAコードを設定し、必要なバッファー サイズをバイト単位で pbHashedBlob が指す変数に格納します。 |
関数が失敗した場合、GetLastError は抽象構文表記 1 (ASN.1) エンコード/デコード エラーを返す可能性があります。 これらのエラーの詳細については、「 ASN.1 エンコード/デコードの戻り値」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | wincrypt.h |
Library | Crypt32.lib |
[DLL] | Crypt32.dll |