Win32 API 日本語リファレンス
ホーム › Security.Authentication.Identity › SpSealMessageFn

SpSealMessageFn

コールバック

シグネチャ

NTSTATUS SpSealMessageFn(
    UINT_PTR ContextHandle,
    DWORD QualityOfProtection,
    SecBufferDesc* MessageBuffers,
    DWORD MessageSequenceNumber
);

パラメーター

フィールド型説明
ContextHandleUINT_PTRメッセージの署名に使用する セキュリティコンテキスト のハンドル。
QualityOfProtectionDWORD保護の品質を示す、パッケージ固有のフラグを指定します。SSP/AP は、このパラメーターを使用して暗号アルゴリズムの選択をサポートできます。
MessageBuffersSecBufferDesc*メッセージバッファーを格納する SecBufferDesc 構造体へのポインター。これらのメッセージバッファーのうち SECBUFFER_DATA 型にできるのは 1 つだけであり、そのバッファーには暗号化するメッセージが格納されます。暗号化はその場で行われるため、このバッファーに SECBUFFER_READONLY 属性を設定することはできません。
MessageSequenceNumberDWORDメッセージに割り当てるシーケンス番号。シーケンス番号は省略可能であり、メッセージの消失や挿入に対する保護として使用されます。値が 0 の場合は、シーケンス番号を使用しないことを示します。

公式ドキュメント

クライアントとサーバーの間で交換されるメッセージを暗号化します。

SpSealMessage 関数は、 Security Support Provider Interface の EncryptMessage (General) 関数のディスパッチ関数です。

戻り値

関数が成功した場合は、STATUS_SUCCESS を返します。

関数が失敗した場合は、失敗した理由を示す NTSTATUS コードを返します。次の表に、一般的な失敗の理由と、関数が返すべきエラーコードを示します。

戻り値 説明
STATUS_INVALID_HANDLE
コンテキストが見つからなかったか、メッセージの整合性用に構成されていませんでした。
STATUS_INVALID_PARAMETER
署名バッファーが見つからなかったか、小さすぎました。

解説(Remarks)

送信側が SpSealMessage 関数を使用して暗号化したメッセージは、 SpUnsealMessage 関数を使用して復号します。

SSP/AP は SpSealMessage 関数を実装する必要がありますが、実装に付ける実際の名前は開発者が決定します。

SpSealMessage 関数へのポインターは、 SpUserModeInitialize 関数から受け取る SECPKG_USER_FUNCTION_TABLE 構造体で入手できます。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)