次の方法で共有


CryptVerifyMessageHash 関数 (wincrypt.h)

CryptVerifyMessageHash 関数は、指定されたコンテンツのハッシュを検証します。

構文

BOOL CryptVerifyMessageHash(
  [in]                PCRYPT_HASH_MESSAGE_PARA pHashPara,
  [in]                BYTE                     *pbHashedBlob,
  [in]                DWORD                    cbHashedBlob,
  [out]               BYTE                     *pbToBeHashed,
  [in, out]           DWORD                    *pcbToBeHashed,
  [out, optional]     BYTE                     *pbComputedHash,
  [in, out, optional] DWORD                    *pcbComputedHash
);

パラメーター

[in] pHashPara

ハッシュ パラメーターを含む CRYPT_HASH_MESSAGE_PARA 構造体へのポインター。

[in] pbHashedBlob

元のコンテンツとそのハッシュを含むバッファーへのポインター。

[in] cbHashedBlob

元のハッシュ バッファーのサイズ (バイト単位)。

[out] pbToBeHashed

ハッシュされた元のコンテンツを受け取るバッファーへのポインター。

このパラメーターは、追加の処理に元のコンテンツが必要ない場合や、メモリ割り当てのために元のコンテンツのサイズを設定する場合は NULL にすることができます 。 詳細については、「不明な 長さのデータの取得」を参照してください。

[in, out] pcbToBeHashed

pbToBeHashed バッファーのサイズをバイト単位で指定する DWORD へのポインター。 関数が戻るときに、この変数には pbToBeHashed にコピーされた元のコンテンツのサイズ (バイト単位) が含まれます。 このパラメーターが NULL の場合、元のコンテンツは返されません。

メモ 返されるデータを処理する場合、アプリケーションは返されるデータの実際のサイズを使用する必要があります。 実際のサイズは、入力時に指定されたバッファーのサイズよりも若干小さくすることができます。 (入力では、バッファー サイズは通常、可能な最大の出力データがバッファーに収まるように十分な大きさで指定されます)。出力時に、このパラメーターが指す変数は、バッファーにコピーされたデータの実際のサイズを反映するように更新されます。
 

[out, optional] pbComputedHash

計算されたハッシュを受け取るバッファーへのポインター。 このパラメーターは、作成されたハッシュが追加の処理に必要ない場合や、メモリ割り当て目的で元のコンテンツのサイズを設定する場合は NULL にすることができます 。 詳細については、「不明な 長さのデータの取得」を参照してください。

[in, out, optional] pcbComputedHash

pbComputedHash バッファーのサイズをバイト単位で指定する DWORD へのポインター。 関数が戻るときに、この変数には、作成されたハッシュのサイズ (バイト単位) が含まれます。 このパラメーターが NULL の場合、ハッシュは返されません。

メモ 返されるデータを処理する場合、アプリケーションは返されるデータの実際のサイズを使用する必要があります。 実際のサイズは、入力時に指定されたバッファーのサイズよりも若干小さくすることができます。 (入力では、バッファー サイズは通常、可能な最大の出力データがバッファーに収まるように十分な大きさで指定されます)。出力時に、このパラメーターが指す変数は、バッファーにコピーされたデータの実際のサイズを反映するように更新されます。
 

戻り値

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

関数が失敗した場合、戻り値は 0 (FALSE) になります。

拡張エラー情報については、 GetLastError を呼び出します。

GetLastError 関数によって最も一般的に返されるエラー コードを次に示します。

リターン コード 説明
CRYPT_E_UNEXPECTED_MSG_TYPE
ハッシュされた暗号化メッセージではありません。
E_INVALIDARG
メッセージ エンコードの種類が無効です。 現在、PKCS_7_ASN_ENCODINGのみがサポートされています。 *pHashParacbSize が無効です。
ERROR_MORE_DATA
pbToBeHashed パラメーターで指定されたバッファーが、返されたデータを保持するのに十分な大きさでない場合、関数はERROR_MORE_DATA コードを設定し、必要なバッファー サイズをバイト単位で pcbToBeHashed が指す変数に格納します。
 
メモ 呼び出された関数 CryptCreateHashCryptHashDataおよび CryptGetHashParam からのエラーがこの関数に反映される可能性があります。

関数が失敗した場合、GetLastError は抽象構文表記 1 (ASN.1) エンコード/デコード エラーを返す可能性があります。 これらのエラーの詳細については、「 ASN.1 エンコード/デコードの戻り値」を参照してください。

 

要件

   
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー wincrypt.h
Library Crypt32.lib
[DLL] Crypt32.dll

関連項目

CryptVerifyDetachedMessageHash

簡略化されたメッセージ関数