VerifySignature 関数 (sspi.h)

MakeSignature 関数を使用して署名されたメッセージが正しいシーケンスで受信され、変更されていないことを確認します。

構文

KSECDDDECLSPEC SECURITY_STATUS SEC_ENTRY VerifySignature(
  [in]  PCtxtHandle    phContext,
  [in]  PSecBufferDesc pMessage,
  [in]  unsigned long  MessageSeqNo,
  [out] unsigned long  *pfQOP
);

パラメーター

[in] phContext

メッセージに使用する セキュリティ コンテキスト へのハンドル。

[in] pMessage

検証するメッセージと署名を含む一連の SecBuffer 構造体を参照する SecBufferDesc 構造体へのポインター。 シグネチャは、SECBUFFER_TOKEN型の SecBuffer 構造体にあります。

[in] MessageSeqNo

トランスポート アプリケーションで予期されるシーケンス番号 (存在する場合) を指定します。 トランスポート アプリケーションがシーケンス番号を保持しない場合、このパラメーターは 0 です。

[out] pfQOP

保護の品質を示すパッケージ固有のフラグを受け取る ULONG 変数へのポインター。

一部のセキュリティ パッケージでは、このパラメーターが無視されます。

戻り値

関数がメッセージが正しいシーケンスで受信され、変更されていないことを確認した場合、戻り値はSEC_E_OK。

シグネチャの情報に従ってメッセージが正しくないと関数が判断した場合、戻り値は次のいずれかのエラー コードになります。

リターン コード 説明
SEC_E_OUT_OF_SEQUENCE
メッセージが正しい順序で受信されませんでした。
SEC_E_MESSAGE_ALTERED
メッセージが変更されました。
SEC_E_INVALID_HANDLE
phContext で指定されたコンテキスト ハンドルが無効です。
SEC_E_INVALID_TOKEN
pMessage に 有効なSECBUFFER_TOKEN バッファーが含まれていないか、バッファーが少なすぎます。
SEC_E_QOP_NOT_SUPPORTED
クライアントとサーバーの間でネゴシエートされた保護の品質には 、整合性 チェックは含まれていませんでした。

注釈

警告  

メッセージが別のバージョンの Windows で RsaSignPssSha512 アルゴリズムを使用して署名された場合、VerifySignature 関数は失敗します。 たとえば、Windows 8 で MakeSignature 関数を呼び出して署名されたメッセージは、Windows 8.1の VerifySignature 関数が失敗します。

 

要件

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

こちらもご覧ください

MakeSignature

SSPI 関数

SecBuffer