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 関数によって最も一般的に返されるエラー コードを示しています。
リターン コード | 説明 |
---|---|
|
pbDecoded パラメーターで指定されたバッファーが、返されるデータを保持するのに十分な大きさでない場合、関数はERROR_MORE_DATA コードを設定し、必要なバッファー サイズをバイト単位で pcbDecoded が指す変数に格納します。 |
|
メッセージと証明書のエンコードの種類が無効です。 現在、PKCS_7_ASN_ENCODINGとX509_ASN_ENCODING_TYPEのみがサポートされています。 *pVerifyPara の cbSize が無効です。 |
|
署名された暗号化メッセージではありません。 |
|
メッセージには、指定された dwSignerIndex の署名者または署名者がありません。 |
|
不明またはサポートされていないアルゴリズムを使用して、メッセージがハッシュされ、署名されました。 |
|
メッセージの署名が検証されませんでした。 |
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | wincrypt.h |
Library | Crypt32.lib |
[DLL] | Crypt32.dll |