mirror of
https://github.com/TalAloni/SMBLibrary.git
synced 2025-08-13 18:59:18 +02:00
Add access denied ace support (#236)
Co-authored-by: Mohammed Aharrabi <AIM@gtt.fr>
This commit is contained in:
parent
f3883fa8f5
commit
b988c3feb0
2 changed files with 50 additions and 0 deletions
|
@ -30,6 +30,8 @@ namespace SMBLibrary
|
||||||
{
|
{
|
||||||
case AceType.ACCESS_ALLOWED_ACE_TYPE:
|
case AceType.ACCESS_ALLOWED_ACE_TYPE:
|
||||||
return new AccessAllowedACE(buffer, offset);
|
return new AccessAllowedACE(buffer, offset);
|
||||||
|
case AceType.ACCESS_DENIED_ACE_TYPE:
|
||||||
|
return new AccessDeniedACE(buffer, offset);
|
||||||
default:
|
default:
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,48 @@
|
||||||
|
/* Copyright (C) 2014-2017 Tal Aloni <tal.aloni.il@gmail.com>. All rights reserved.
|
||||||
|
*
|
||||||
|
* You can redistribute this program and/or modify it under the terms of
|
||||||
|
* the GNU Lesser Public License as published by the Free Software Foundation,
|
||||||
|
* either version 3 of the License, or (at your option) any later version.
|
||||||
|
*/
|
||||||
|
using Utilities;
|
||||||
|
|
||||||
|
namespace SMBLibrary
|
||||||
|
{
|
||||||
|
public class AccessDeniedACE : ACE
|
||||||
|
{
|
||||||
|
public const int FixedLength = 8;
|
||||||
|
|
||||||
|
public AceHeader Header;
|
||||||
|
public AccessMask Mask;
|
||||||
|
public SID Sid;
|
||||||
|
|
||||||
|
public AccessDeniedACE()
|
||||||
|
{
|
||||||
|
Header = new AceHeader();
|
||||||
|
Header.AceType = AceType.ACCESS_DENIED_ACE_TYPE;
|
||||||
|
}
|
||||||
|
|
||||||
|
public AccessDeniedACE(byte[] buffer, int offset)
|
||||||
|
{
|
||||||
|
Header = new AceHeader(buffer, offset + 0);
|
||||||
|
Mask = (AccessMask)LittleEndianConverter.ToUInt32(buffer, offset + 4);
|
||||||
|
Sid = new SID(buffer, offset + 8);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void WriteBytes(byte[] buffer, ref int offset)
|
||||||
|
{
|
||||||
|
Header.AceSize = (ushort)this.Length;
|
||||||
|
Header.WriteBytes(buffer, ref offset);
|
||||||
|
LittleEndianWriter.WriteUInt32(buffer, ref offset, (uint)Mask);
|
||||||
|
Sid.WriteBytes(buffer, ref offset);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override int Length
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return FixedLength + Sid.Length;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue