using System; namespace S22.Sasl.Mechanisms.Ntlm { /// /// The NTLM flags which are contained in a bitfield within the header of /// an NTLM message. /// [Flags] internal enum Flags { /// /// Indicates that Unicode strings are supported for use in security /// buffer data. /// NegotiateUnicode = 0x00000001, /// /// Indicates that OEM strings are supported for use in security /// buffer data. /// NegotiateOEM = 0x00000002, /// /// Requests that the server's authentication realm be included in /// the Type 2 message. /// RequestTarget = 0x00000004, /// /// Specifies that authenticated communication between the client and /// server should carry a digital signature (message integrity). /// NegotiateSign = 0x00000010, /// /// Specifies that authenticated communication between the client and /// server should be encrypted (message confidentiality). /// NegotiateSeal = 0x00000020, /// /// Indicates that datagram authentication is being used. /// NegotiateDatagramStyle = 0x00000040, /// /// Indicates that the Lan Manager Session Key should be used for signing /// and sealing authenticated communications. /// NegotiateLanManagerKey = 0x00000080, /// /// This flag's usage has not been identified. /// NegotiateNetware = 0x00000100, /// /// Indicates that NTLM authentication is being used. /// NegotiateNTLM = 0x00000200, /// /// Sent by the client in the Type 3 message to indicate that an anonymous /// context has been established. This also affects the response fields. /// NegotiateAnonymous = 0x00000800, /// /// 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. /// NegotiateDomainSupplied = 0x00001000, /// /// 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. /// NegotiateWorkstationSupplied = 0x00002000, /// /// 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. /// NegotiateLocalCall = 0x00004000, /// /// Indicates that authenticated communication between the client and /// server should be signed with a "dummy" signature. /// NegotiateAlwaysSign = 0x00008000, /// /// Sent by the server in the Type 2 message to indicate that the target /// authentication realm is a domain. /// TargetTypeDomain = 0x00010000, /// /// Sent by the server in the Type 2 message to indicate that the target /// authentication realm is a server. /// TargetTypeServer = 0x00020000, /// /// 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. /// TargetTypeShare = 0x00040000, /// /// 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. /// NegotiateNTLM2Key = 0x00080000, /// /// This flag's usage has not been identified. /// RequestInitResponse = 0x00100000, /// /// This flag's usage has not been identified. /// RequestAcceptResponse = 0x00200000, /// /// This flag's usage has not been identified. /// RequestNonNTSessionKey = 0x00400000, /// /// 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. /// NegotiateTargetInfo = 0x00800000, /// /// Indicates that 128-bit encryption is supported. /// Negotiate128 = 0x20000000, /// /// Indicates that the client will provide an encrypted master key in the /// "Session Key" field of the Type 3 message. /// NegotiateKeyExchange = 0x40000000, /// /// Indicates that 56-bit encryption is supported. /// Negotiate56 } }