mirror of
https://github.com/FabInfra/S22.Sasl.git
synced 2025-03-12 23:01:49 +01:00
140 lines
5.0 KiB
C#
140 lines
5.0 KiB
C#
using System;
|
|
|
|
namespace S22.Sasl.Mechanisms.Ntlm {
|
|
/// <summary>
|
|
/// The NTLM flags which are contained in a bitfield within the header of
|
|
/// an NTLM message.
|
|
/// </summary>
|
|
[Flags]
|
|
internal enum Flags {
|
|
/// <summary>
|
|
/// Indicates that Unicode strings are supported for use in security
|
|
/// buffer data.
|
|
/// </summary>
|
|
NegotiateUnicode = 0x00000001,
|
|
/// <summary>
|
|
/// Indicates that OEM strings are supported for use in security
|
|
/// buffer data.
|
|
/// </summary>
|
|
NegotiateOEM = 0x00000002,
|
|
/// <summary>
|
|
/// Requests that the server's authentication realm be included in
|
|
/// the Type 2 message.
|
|
/// </summary>
|
|
RequestTarget = 0x00000004,
|
|
/// <summary>
|
|
/// Specifies that authenticated communication between the client and
|
|
/// server should carry a digital signature (message integrity).
|
|
/// </summary>
|
|
NegotiateSign = 0x00000010,
|
|
/// <summary>
|
|
/// Specifies that authenticated communication between the client and
|
|
/// server should be encrypted (message confidentiality).
|
|
/// </summary>
|
|
NegotiateSeal = 0x00000020,
|
|
/// <summary>
|
|
/// Indicates that datagram authentication is being used.
|
|
/// </summary>
|
|
NegotiateDatagramStyle = 0x00000040,
|
|
/// <summary>
|
|
/// Indicates that the Lan Manager Session Key should be used for signing
|
|
/// and sealing authenticated communications.
|
|
/// </summary>
|
|
NegotiateLanManagerKey = 0x00000080,
|
|
/// <summary>
|
|
/// This flag's usage has not been identified.
|
|
/// </summary>
|
|
NegotiateNetware = 0x00000100,
|
|
/// <summary>
|
|
/// Indicates that NTLM authentication is being used.
|
|
/// </summary>
|
|
NegotiateNTLM = 0x00000200,
|
|
/// <summary>
|
|
/// Sent by the client in the Type 3 message to indicate that an anonymous
|
|
/// context has been established. This also affects the response fields.
|
|
/// </summary>
|
|
NegotiateAnonymous = 0x00000800,
|
|
/// <summary>
|
|
/// Sent by the client in the Type 1 message to indicate that the name of
|
|
/// the domain in which the client workstation has membership is included
|
|
/// in the message. This is used by the server to determine whether the
|
|
/// client is eligible for local authentication.
|
|
/// </summary>
|
|
NegotiateDomainSupplied = 0x00001000,
|
|
/// <summary>
|
|
/// Sent by the client in the Type 1 message to indicate that the client
|
|
/// workstation's name is included in the message. This is used by the
|
|
/// server to determine whether the client is eligible for local
|
|
/// authentication.
|
|
/// </summary>
|
|
NegotiateWorkstationSupplied = 0x00002000,
|
|
/// <summary>
|
|
/// Sent by the server to indicate that the server and client are on the
|
|
/// same machine. Implies that the client may use the established local
|
|
/// credentials for authentication instead of calculating a response to
|
|
/// the challenge.
|
|
/// </summary>
|
|
NegotiateLocalCall = 0x00004000,
|
|
/// <summary>
|
|
/// Indicates that authenticated communication between the client and
|
|
/// server should be signed with a "dummy" signature.
|
|
/// </summary>
|
|
NegotiateAlwaysSign = 0x00008000,
|
|
/// <summary>
|
|
/// Sent by the server in the Type 2 message to indicate that the target
|
|
/// authentication realm is a domain.
|
|
/// </summary>
|
|
TargetTypeDomain = 0x00010000,
|
|
/// <summary>
|
|
/// Sent by the server in the Type 2 message to indicate that the target
|
|
/// authentication realm is a server.
|
|
/// </summary>
|
|
TargetTypeServer = 0x00020000,
|
|
/// <summary>
|
|
/// Sent by the server in the Type 2 message to indicate that the target
|
|
/// authentication realm is a share. Presumably, this is for share-level
|
|
/// authentication. Usage is unclear.
|
|
/// </summary>
|
|
TargetTypeShare = 0x00040000,
|
|
/// <summary>
|
|
/// Indicates that the NTLM2 signing and sealing scheme should be used for
|
|
/// protecting authenticated communications. Note that this refers to a
|
|
/// particular session security scheme, and is not related to the use of
|
|
/// NTLMv2 authentication. This flag can, however, have an effect on the
|
|
/// response calculations.
|
|
/// </summary>
|
|
NegotiateNTLM2Key = 0x00080000,
|
|
/// <summary>
|
|
/// This flag's usage has not been identified.
|
|
/// </summary>
|
|
RequestInitResponse = 0x00100000,
|
|
/// <summary>
|
|
/// This flag's usage has not been identified.
|
|
/// </summary>
|
|
RequestAcceptResponse = 0x00200000,
|
|
/// <summary>
|
|
/// This flag's usage has not been identified.
|
|
/// </summary>
|
|
RequestNonNTSessionKey = 0x00400000,
|
|
/// <summary>
|
|
/// Sent by the server in the Type 2 message to indicate that it is including
|
|
/// a Target Information block in the message. The Target Information block
|
|
/// is used in the calculation of the NTLMv2 response.
|
|
/// </summary>
|
|
NegotiateTargetInfo = 0x00800000,
|
|
/// <summary>
|
|
/// Indicates that 128-bit encryption is supported.
|
|
/// </summary>
|
|
Negotiate128 = 0x20000000,
|
|
/// <summary>
|
|
/// Indicates that the client will provide an encrypted master key in the
|
|
/// "Session Key" field of the Type 3 message.
|
|
/// </summary>
|
|
NegotiateKeyExchange = 0x40000000,
|
|
/// <summary>
|
|
/// Indicates that 56-bit encryption is supported.
|
|
/// </summary>
|
|
Negotiate56
|
|
}
|
|
}
|