SpSealMessageFn コールバック関数 (ntsecpkg.h)

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

SpSealMessage 関数は、セキュリティ サポート プロバイダー インターフェイスEncryptMessage (General) 関数のディスパッチ関数です。

構文

SpSealMessageFn Spsealmessagefn;

NTSTATUS Spsealmessagefn(
  [in]      LSA_SEC_HANDLE ContextHandle,
  [in]      ULONG QualityOfProtection,
  [in, out] PSecBufferDesc MessageBuffers,
  [in]      ULONG MessageSequenceNumber
)
{...}

パラメーター

[in] ContextHandle

メッセージの署名に使用される セキュリティ コンテキスト のハンドル。

[in] QualityOfProtection

保護の品質を示すパッケージ固有のフラグを指定します。 SSP/AP では、このパラメーターを使用して暗号化アルゴリズムの選択を有効にすることができます。

[in, out] MessageBuffers

メッセージ バッファーを含む SecBufferDesc 構造体へのポインター。 これらのメッセージ バッファーのうち、SECBUFFER_DATA型にできるのは 1 つだけで、暗号化するメッセージが含まれています。 暗号化はインプレースで行われるため、バッファーに SECBUFFER_READONLY 属性を指定することはできません。

[in] MessageSequenceNumber

メッセージに割り当てるシーケンス番号。 シーケンス番号は省略可能であり、メッセージの損失と挿入に対する保護として使用されます。 0 の値は、シーケンス番号が使用されていないことを示します。

戻り値

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

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

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

注釈

SpSealMessage 関数を使用して送信者によって暗号化されたメッセージは、SpUnsealMessage 関数を使用して復号化されます。

SSP/AP は SpSealMessage 関数を実装する必要があります。ただし、実装に与えられる実際の名前は開発者次第です。

SpSealMessage 関数へのポインターは、SpUserModeInitialize 関数から受信したSECPKG_USER_FUNCTION_TABLE構造体で使用できます。

要件

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

こちらもご覧ください

SECPKG_USER_FUNCTION_TABLE

SpUnsealMessage

SpUserModeInitialize