diff --git a/SMBLibrary/Client/SMB1Client.cs b/SMBLibrary/Client/SMB1Client.cs
index ebf5872..b7a6b62 100644
--- a/SMBLibrary/Client/SMB1Client.cs
+++ b/SMBLibrary/Client/SMB1Client.cs
@@ -154,7 +154,7 @@ namespace SMBLibrary.Client
SessionSetupAndXRequest request = new SessionSetupAndXRequest();
request.MaxBufferSize = MaxBufferSize;
request.MaxMpxCount = MaxMpxCount;
- request.Capabilities = ServerCapabilities.Unicode | ServerCapabilities.NTStatusCode;
+ request.Capabilities = Capabilities.Unicode | Capabilities.NTStatusCode;
request.AccountName = userName;
request.PrimaryDomain = domainName;
byte[] clientChallenge = new byte[8];
@@ -195,7 +195,7 @@ namespace SMBLibrary.Client
SessionSetupAndXRequestExtended request = new SessionSetupAndXRequestExtended();
request.MaxBufferSize = MaxBufferSize;
request.MaxMpxCount = MaxMpxCount;
- request.Capabilities = ServerCapabilities.Unicode | ServerCapabilities.NTStatusCode;
+ request.Capabilities = Capabilities.Unicode | Capabilities.NTStatusCode;
request.SecurityBlob = NTLMAuthenticationHelper.GetNegotiateMessage(m_securityBlob, domainName, authenticationMethod);
TrySendMessage(request);
@@ -209,7 +209,7 @@ namespace SMBLibrary.Client
request = new SessionSetupAndXRequestExtended();
request.MaxBufferSize = MaxBufferSize;
request.MaxMpxCount = MaxMpxCount;
- request.Capabilities = ServerCapabilities.Unicode | ServerCapabilities.NTStatusCode | ServerCapabilities.ExtendedSecurity;
+ request.Capabilities = Capabilities.Unicode | Capabilities.NTStatusCode | Capabilities.ExtendedSecurity;
request.SecurityBlob = NTLMAuthenticationHelper.GetAuthenticateMessage(response.SecurityBlob, domainName, userName, password, authenticationMethod, out m_sessionKey);
TrySendMessage(request);
diff --git a/SMBLibrary/SMB1/Commands/NegotiateResponse.cs b/SMBLibrary/SMB1/Commands/NegotiateResponse.cs
index 203b065..f80b73b 100644
--- a/SMBLibrary/SMB1/Commands/NegotiateResponse.cs
+++ b/SMBLibrary/SMB1/Commands/NegotiateResponse.cs
@@ -25,7 +25,7 @@ namespace SMBLibrary.SMB1
public uint MaxBufferSize;
public uint MaxRawSize;
public uint SessionKey;
- public ServerCapabilities Capabilities;
+ public Capabilities Capabilities;
public DateTime SystemTime;
public short ServerTimeZone;
private byte ChallengeLength;
@@ -50,7 +50,7 @@ namespace SMBLibrary.SMB1
MaxBufferSize = LittleEndianConverter.ToUInt32(this.SMBParameters, 7);
MaxRawSize = LittleEndianConverter.ToUInt32(this.SMBParameters, 11);
SessionKey = LittleEndianConverter.ToUInt32(this.SMBParameters, 15);
- Capabilities = (ServerCapabilities)LittleEndianConverter.ToUInt32(this.SMBParameters, 19);
+ Capabilities = (Capabilities)LittleEndianConverter.ToUInt32(this.SMBParameters, 19);
SystemTime = FileTimeHelper.ReadFileTime(this.SMBParameters, 23);
ServerTimeZone = LittleEndianConverter.ToInt16(this.SMBParameters, 31);
ChallengeLength = ByteReader.ReadByte(this.SMBParameters, 33);
diff --git a/SMBLibrary/SMB1/Commands/NegotiateResponseExtended.cs b/SMBLibrary/SMB1/Commands/NegotiateResponseExtended.cs
index 84ecdd1..298401d 100644
--- a/SMBLibrary/SMB1/Commands/NegotiateResponseExtended.cs
+++ b/SMBLibrary/SMB1/Commands/NegotiateResponseExtended.cs
@@ -25,7 +25,7 @@ namespace SMBLibrary.SMB1
public uint MaxBufferSize;
public uint MaxRawSize;
public uint SessionKey;
- public ServerCapabilities Capabilities;
+ public Capabilities Capabilities;
public DateTime SystemTime;
public short ServerTimeZone;
private byte ChallengeLength; // MUST be set to 0
@@ -47,7 +47,7 @@ namespace SMBLibrary.SMB1
MaxBufferSize = LittleEndianConverter.ToUInt32(this.SMBParameters, 7);
MaxRawSize = LittleEndianConverter.ToUInt32(this.SMBParameters, 11);
SessionKey = LittleEndianConverter.ToUInt32(this.SMBParameters, 15);
- Capabilities = (ServerCapabilities)LittleEndianConverter.ToUInt32(this.SMBParameters, 19);
+ Capabilities = (Capabilities)LittleEndianConverter.ToUInt32(this.SMBParameters, 19);
SystemTime = FileTimeHelper.ReadFileTime(this.SMBParameters, 23);
ServerTimeZone = LittleEndianConverter.ToInt16(this.SMBParameters, 31);
ChallengeLength = ByteReader.ReadByte(this.SMBParameters, 33);
diff --git a/SMBLibrary/SMB1/Commands/SMB1Command.cs b/SMBLibrary/SMB1/Commands/SMB1Command.cs
index 8f2b4ed..03580b5 100644
--- a/SMBLibrary/SMB1/Commands/SMB1Command.cs
+++ b/SMBLibrary/SMB1/Commands/SMB1Command.cs
@@ -370,8 +370,8 @@ namespace SMBLibrary.SMB1
// Both NegotiateResponse and NegotiateResponseExtended have WordCount set to 17
if (wordCount * 2 == NegotiateResponse.ParametersLength)
{
- ServerCapabilities capabilities = (ServerCapabilities)LittleEndianConverter.ToUInt32(buffer, offset + 20);
- if ((capabilities & ServerCapabilities.ExtendedSecurity) > 0)
+ Capabilities capabilities = (Capabilities)LittleEndianConverter.ToUInt32(buffer, offset + 20);
+ if ((capabilities & Capabilities.ExtendedSecurity) > 0)
{
return new NegotiateResponseExtended(buffer, offset);
}
diff --git a/SMBLibrary/SMB1/Commands/SessionSetupAndXRequest.cs b/SMBLibrary/SMB1/Commands/SessionSetupAndXRequest.cs
index 3ef324d..777bd9b 100644
--- a/SMBLibrary/SMB1/Commands/SessionSetupAndXRequest.cs
+++ b/SMBLibrary/SMB1/Commands/SessionSetupAndXRequest.cs
@@ -25,7 +25,7 @@ namespace SMBLibrary.SMB1
private ushort OEMPasswordLength;
private ushort UnicodePasswordLength;
public uint Reserved;
- public ServerCapabilities Capabilities;
+ public Capabilities Capabilities;
// Data:
public byte[] OEMPassword;
public byte[] UnicodePassword;
@@ -52,7 +52,7 @@ namespace SMBLibrary.SMB1
OEMPasswordLength = LittleEndianConverter.ToUInt16(this.SMBParameters, 14);
UnicodePasswordLength = LittleEndianConverter.ToUInt16(this.SMBParameters, 16);
Reserved = LittleEndianConverter.ToUInt32(this.SMBParameters, 18);
- Capabilities = (ServerCapabilities)LittleEndianConverter.ToUInt32(this.SMBParameters, 22);
+ Capabilities = (Capabilities)LittleEndianConverter.ToUInt32(this.SMBParameters, 22);
OEMPassword = ByteReader.ReadBytes(this.SMBData, 0, OEMPasswordLength);
UnicodePassword = ByteReader.ReadBytes(this.SMBData, OEMPasswordLength, UnicodePasswordLength);
@@ -73,7 +73,7 @@ namespace SMBLibrary.SMB1
public override byte[] GetBytes(bool isUnicode)
{
- Capabilities &= ~ServerCapabilities.ExtendedSecurity;
+ Capabilities &= ~Capabilities.ExtendedSecurity;
OEMPasswordLength = (ushort)OEMPassword.Length;
UnicodePasswordLength = (ushort)UnicodePassword.Length;
diff --git a/SMBLibrary/SMB1/Commands/SessionSetupAndXRequestExtended.cs b/SMBLibrary/SMB1/Commands/SessionSetupAndXRequestExtended.cs
index 47de5e7..adf170e 100644
--- a/SMBLibrary/SMB1/Commands/SessionSetupAndXRequestExtended.cs
+++ b/SMBLibrary/SMB1/Commands/SessionSetupAndXRequestExtended.cs
@@ -24,7 +24,7 @@ namespace SMBLibrary.SMB1
public uint SessionKey;
private ushort SecurityBlobLength;
public uint Reserved;
- public ServerCapabilities Capabilities;
+ public Capabilities Capabilities;
// Data:
public byte[] SecurityBlob;
public string NativeOS; // SMB_STRING (If Unicode, this field MUST be aligned to start on a 2-byte boundary from the start of the SMB header)
@@ -44,7 +44,7 @@ namespace SMBLibrary.SMB1
SessionKey = LittleEndianConverter.ToUInt32(this.SMBParameters, 10);
SecurityBlobLength = LittleEndianConverter.ToUInt16(this.SMBParameters, 14);
Reserved = LittleEndianConverter.ToUInt32(this.SMBParameters, 16);
- Capabilities = (ServerCapabilities)LittleEndianConverter.ToUInt32(this.SMBParameters, 20);
+ Capabilities = (Capabilities)LittleEndianConverter.ToUInt32(this.SMBParameters, 20);
SecurityBlob = ByteReader.ReadBytes(this.SMBData, 0, SecurityBlobLength);
@@ -62,7 +62,7 @@ namespace SMBLibrary.SMB1
public override byte[] GetBytes(bool isUnicode)
{
- Capabilities |= ServerCapabilities.ExtendedSecurity;
+ Capabilities |= Capabilities.ExtendedSecurity;
SecurityBlobLength = (ushort)SecurityBlob.Length;
this.SMBParameters = new byte[ParametersLength];
diff --git a/SMBLibrary/SMB1/Enums/Negotiate/ServerCapabilities.cs b/SMBLibrary/SMB1/Enums/Negotiate/Capabilities.cs
similarity index 94%
rename from SMBLibrary/SMB1/Enums/Negotiate/ServerCapabilities.cs
rename to SMBLibrary/SMB1/Enums/Negotiate/Capabilities.cs
index 88c5526..6f60a8f 100644
--- a/SMBLibrary/SMB1/Enums/Negotiate/ServerCapabilities.cs
+++ b/SMBLibrary/SMB1/Enums/Negotiate/Capabilities.cs
@@ -3,7 +3,7 @@ using System;
namespace SMBLibrary.SMB1
{
[Flags]
- public enum ServerCapabilities : uint
+ public enum Capabilities : uint
{
RawMode = 0x00000001, // CAP_RAW_MODE
MPXMode = 0x00000002, // SMB_COM_READ_MPX
diff --git a/SMBLibrary/SMBLibrary.csproj b/SMBLibrary/SMBLibrary.csproj
index ea03ce6..8d45326 100644
--- a/SMBLibrary/SMBLibrary.csproj
+++ b/SMBLibrary/SMBLibrary.csproj
@@ -366,8 +366,8 @@
+
-
diff --git a/SMBLibrary/Server/SMB1/NegotiateHelper.cs b/SMBLibrary/Server/SMB1/NegotiateHelper.cs
index 5125565..cd8777d 100644
--- a/SMBLibrary/Server/SMB1/NegotiateHelper.cs
+++ b/SMBLibrary/Server/SMB1/NegotiateHelper.cs
@@ -29,13 +29,13 @@ namespace SMBLibrary.Server.SMB1
response.MaxNumberVcs = 1;
response.MaxBufferSize = 16644;
response.MaxRawSize = 65536;
- response.Capabilities = ServerCapabilities.Unicode |
- ServerCapabilities.LargeFiles |
- ServerCapabilities.NTSMB |
- ServerCapabilities.NTStatusCode |
- ServerCapabilities.NTFind |
- ServerCapabilities.LargeRead |
- ServerCapabilities.LargeWrite;
+ response.Capabilities = Capabilities.Unicode |
+ Capabilities.LargeFiles |
+ Capabilities.NTSMB |
+ Capabilities.NTStatusCode |
+ Capabilities.NTFind |
+ Capabilities.LargeRead |
+ Capabilities.LargeWrite;
response.SystemTime = DateTime.UtcNow;
response.ServerTimeZone = (short)-TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now).TotalMinutes;
NegotiateMessage negotiateMessage = CreateNegotiateMessage();
@@ -60,14 +60,14 @@ namespace SMBLibrary.Server.SMB1
response.MaxNumberVcs = 1;
response.MaxBufferSize = 16644;
response.MaxRawSize = 65536;
- response.Capabilities = ServerCapabilities.Unicode |
- ServerCapabilities.LargeFiles |
- ServerCapabilities.NTSMB |
- ServerCapabilities.NTStatusCode |
- ServerCapabilities.NTFind |
- ServerCapabilities.LargeRead |
- ServerCapabilities.LargeWrite |
- ServerCapabilities.ExtendedSecurity;
+ response.Capabilities = Capabilities.Unicode |
+ Capabilities.LargeFiles |
+ Capabilities.NTSMB |
+ Capabilities.NTStatusCode |
+ Capabilities.NTFind |
+ Capabilities.LargeRead |
+ Capabilities.LargeWrite |
+ Capabilities.ExtendedSecurity;
response.SystemTime = DateTime.UtcNow;
response.ServerTimeZone = (short)-TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now).TotalMinutes;
response.ServerGuid = serverGuid;
diff --git a/SMBLibrary/Server/SMB1/SessionSetupHelper.cs b/SMBLibrary/Server/SMB1/SessionSetupHelper.cs
index 7bbdb2a..e790b97 100644
--- a/SMBLibrary/Server/SMB1/SessionSetupHelper.cs
+++ b/SMBLibrary/Server/SMB1/SessionSetupHelper.cs
@@ -58,11 +58,11 @@ namespace SMBLibrary.Server.SMB1
header.UID = session.UserID;
response.PrimaryDomain = request.PrimaryDomain;
- if ((request.Capabilities & ServerCapabilities.LargeRead) > 0)
+ if ((request.Capabilities & Capabilities.LargeRead) > 0)
{
state.LargeRead = true;
}
- if ((request.Capabilities & ServerCapabilities.LargeWrite) > 0)
+ if ((request.Capabilities & Capabilities.LargeWrite) > 0)
{
state.LargeWrite = true;
}