using System;
namespace SMBLibrary.Authentication
{
[Flags]
public enum NegotiateFlags : uint
{
UnicodeEncoding = 0x00000001, // NTLMSSP_NEGOTIATE_UNICODE
OEMEncoding = 0x00000002, // NTLM_NEGOTIATE_OEM
TargetNameSupplied = 0x00000004, // NTLMSSP_REQUEST_TARGET
Sign = 0x00000010, // NTLMSSP_NEGOTIATE_SIGN
Seal = 0x00000020, // NTLMSSP_NEGOTIATE_SEAL
Datagram = 0x00000040, // NTLMSSP_NEGOTIATE_DATAGRAM
///
/// LanManagerKey and ExtendedSecurity are mutually exclusive
/// If both are set then LanManagerKey must be ignored
///
LanManagerKey = 0x00000080, // NTLMSSP_NEGOTIATE_LM_KEY
NTLMKey = 0x00000200, // NTLMSSP_NEGOTIATE_NTLM
///
/// If set, the connection SHOULD be anonymous
///
Anonymous = 0x00000800,
DomainNameSupplied = 0x00001000, // NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED
WorkstationNameSupplied = 0x00002000, // NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED
AlwaysSign = 0x00008000, // NTLMSSP_NEGOTIATE_ALWAYS_SIGN
TargetTypeDomain = 0x00010000, // NTLMSSP_TARGET_TYPE_DOMAIN
TargetTypeServer = 0x00020000, // NTLMSSP_TARGET_TYPE_SERVER
///
/// LanManagerKey and ExtendedSecurity are mutually exclusive
/// If both are set then LanManagerKey must be ignored.
/// NTLM v2 requires this flag to be set.
///
ExtendedSecurity = 0x00080000, // NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY
Identify = 0x00100000, // NTLMSSP_NEGOTIATE_IDENTIFY
RequestLMSessionKey = 0x00400000, // NTLMSSP_REQUEST_NON_NT_SESSION_KEY
TargetInfo = 0x00800000, // NTLMSSP_NEGOTIATE_TARGET_INFO
Version = 0x02000000, // NTLMSSP_NEGOTIATE_VERSION
Use128BitEncryption = 0x20000000, // NTLMSSP_NEGOTIATE_128
KeyExchange = 0x40000000, // NTLMSSP_NEGOTIATE_KEY_EXCH
Use56BitEncryption = 0x80000000, // NTLMSSP_NEGOTIATE_56
}
}