CryptVerifyMessageSignatureWithKey 関数 (wincrypt.h)

CryptVerifyMessageSignatureWithKey 関数は、指定された公開キー情報を使用して署名されたメッセージの署名を検証します。

構文

BOOL CryptVerifyMessageSignatureWithKey(
  [in]      PCRYPT_KEY_VERIFY_MESSAGE_PARA pVerifyPara,
  [in]      PCERT_PUBLIC_KEY_INFO          pPublicKeyInfo,
  [in]      const BYTE                     *pbSignedBlob,
  [in]      DWORD                          cbSignedBlob,
  [out]     BYTE                           *pbDecoded,
  [in, out] DWORD                          *pcbDecoded
);

パラメーター

[in] pVerifyPara

検証パラメーターを含む CRYPT_KEY_VERIFY_MESSAGE_PARA 構造体へのポインター。

[in] pPublicKeyInfo

署名された メッセージの検証 に使用される公開キーを含むCERT_PUBLIC_KEY_INFO構造体へのポインター。 NULL の場合、署名は検証されません。

[in] pbSignedBlob

署名されたメッセージを含むバッファーへのポインター。

[in] cbSignedBlob

署名されたメッセージ バッファーのサイズ (バイト単位)。

[out] pbDecoded

デコードされたメッセージを受信するバッファーへのポインター。

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

[in, out] pcbDecoded

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

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

戻り値

関数が成功した場合、関数は 0 以外の値を返します。

関数が失敗すると、0 が返されます。 拡張エラー情報については、 GetLastError を呼び出します。

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

リターン コード 説明
ERROR_MORE_DATA
pbDecoded パラメーターで指定されたバッファーが、返されるデータを保持するのに十分な大きさでない場合、関数はERROR_MORE_DATA コードを設定し、必要なバッファー サイズをバイト単位で pcbDecoded が指す変数に格納します。
E_INVALIDARG
メッセージと証明書のエンコードの種類が無効です。 現在、PKCS_7_ASN_ENCODINGとX509_ASN_ENCODING_TYPEのみがサポートされています。 *pVerifyParacbSize が無効です。
CRYPT_E_UNEXPECTED_MSG_TYPE
署名された暗号化メッセージではありません。
CRYPT_E_NO_SIGNER
メッセージには、指定された dwSignerIndex の署名者または署名者がありません。
NTE_BAD_ALGID
不明またはサポートされていないアルゴリズムを使用して、メッセージがハッシュされ、署名されました。
NTE_BAD_SIGNATURE
メッセージの署名が検証されませんでした。

要件

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