|
Packit |
1fb8d4 |
/**
|
|
Packit |
1fb8d4 |
* WinPR: Windows Portable Runtime
|
|
Packit |
1fb8d4 |
* Base Security Functions
|
|
Packit |
1fb8d4 |
*
|
|
Packit |
1fb8d4 |
* Copyright 2013 Marc-Andre Moreau <marcandre.moreau@gmail.com>
|
|
Packit |
1fb8d4 |
*
|
|
Packit |
1fb8d4 |
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
Packit |
1fb8d4 |
* you may not use this file except in compliance with the License.
|
|
Packit |
1fb8d4 |
* You may obtain a copy of the License at
|
|
Packit |
1fb8d4 |
*
|
|
Packit |
1fb8d4 |
* http://www.apache.org/licenses/LICENSE-2.0
|
|
Packit |
1fb8d4 |
*
|
|
Packit |
1fb8d4 |
* Unless required by applicable law or agreed to in writing, software
|
|
Packit |
1fb8d4 |
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
Packit |
1fb8d4 |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
Packit |
1fb8d4 |
* See the License for the specific language governing permissions and
|
|
Packit |
1fb8d4 |
* limitations under the License.
|
|
Packit |
1fb8d4 |
*/
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifdef HAVE_CONFIG_H
|
|
Packit |
1fb8d4 |
#include "config.h"
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#include <winpr/crt.h>
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifdef HAVE_UNISTD_H
|
|
Packit |
1fb8d4 |
#include <unistd.h>
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#include <winpr/security.h>
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
/**
|
|
Packit |
1fb8d4 |
* api-ms-win-security-base-l1-2-0.dll:
|
|
Packit |
1fb8d4 |
*
|
|
Packit |
1fb8d4 |
* AccessCheck
|
|
Packit |
1fb8d4 |
* AccessCheckAndAuditAlarmW
|
|
Packit |
1fb8d4 |
* AccessCheckByType
|
|
Packit |
1fb8d4 |
* AccessCheckByTypeAndAuditAlarmW
|
|
Packit |
1fb8d4 |
* AccessCheckByTypeResultList
|
|
Packit |
1fb8d4 |
* AccessCheckByTypeResultListAndAuditAlarmByHandleW
|
|
Packit |
1fb8d4 |
* AccessCheckByTypeResultListAndAuditAlarmW
|
|
Packit |
1fb8d4 |
* AddAccessAllowedAce
|
|
Packit |
1fb8d4 |
* AddAccessAllowedAceEx
|
|
Packit |
1fb8d4 |
* AddAccessAllowedObjectAce
|
|
Packit |
1fb8d4 |
* AddAccessDeniedAce
|
|
Packit |
1fb8d4 |
* AddAccessDeniedAceEx
|
|
Packit |
1fb8d4 |
* AddAccessDeniedObjectAce
|
|
Packit |
1fb8d4 |
* AddAce
|
|
Packit |
1fb8d4 |
* AddAuditAccessAce
|
|
Packit |
1fb8d4 |
* AddAuditAccessAceEx
|
|
Packit |
1fb8d4 |
* AddAuditAccessObjectAce
|
|
Packit |
1fb8d4 |
* AddMandatoryAce
|
|
Packit |
1fb8d4 |
* AddResourceAttributeAce
|
|
Packit |
1fb8d4 |
* AddScopedPolicyIDAce
|
|
Packit |
1fb8d4 |
* AdjustTokenGroups
|
|
Packit |
1fb8d4 |
* AdjustTokenPrivileges
|
|
Packit |
1fb8d4 |
* AllocateAndInitializeSid
|
|
Packit |
1fb8d4 |
* AllocateLocallyUniqueId
|
|
Packit |
1fb8d4 |
* AreAllAccessesGranted
|
|
Packit |
1fb8d4 |
* AreAnyAccessesGranted
|
|
Packit |
1fb8d4 |
* CheckTokenCapability
|
|
Packit |
1fb8d4 |
* CheckTokenMembership
|
|
Packit |
1fb8d4 |
* CheckTokenMembershipEx
|
|
Packit |
1fb8d4 |
* ConvertToAutoInheritPrivateObjectSecurity
|
|
Packit |
1fb8d4 |
* CopySid
|
|
Packit |
1fb8d4 |
* CreatePrivateObjectSecurity
|
|
Packit |
1fb8d4 |
* CreatePrivateObjectSecurityEx
|
|
Packit |
1fb8d4 |
* CreatePrivateObjectSecurityWithMultipleInheritance
|
|
Packit |
1fb8d4 |
* CreateRestrictedToken
|
|
Packit |
1fb8d4 |
* CreateWellKnownSid
|
|
Packit |
1fb8d4 |
* DeleteAce
|
|
Packit |
1fb8d4 |
* DestroyPrivateObjectSecurity
|
|
Packit |
1fb8d4 |
* DuplicateToken
|
|
Packit |
1fb8d4 |
* DuplicateTokenEx
|
|
Packit |
1fb8d4 |
* EqualDomainSid
|
|
Packit |
1fb8d4 |
* EqualPrefixSid
|
|
Packit |
1fb8d4 |
* EqualSid
|
|
Packit |
1fb8d4 |
* FindFirstFreeAce
|
|
Packit |
1fb8d4 |
* FreeSid
|
|
Packit |
1fb8d4 |
* GetAce
|
|
Packit |
1fb8d4 |
* GetAclInformation
|
|
Packit |
1fb8d4 |
* GetAppContainerAce
|
|
Packit |
1fb8d4 |
* GetCachedSigningLevel
|
|
Packit |
1fb8d4 |
* GetFileSecurityW
|
|
Packit |
1fb8d4 |
* GetKernelObjectSecurity
|
|
Packit |
1fb8d4 |
* GetLengthSid
|
|
Packit |
1fb8d4 |
* GetPrivateObjectSecurity
|
|
Packit |
1fb8d4 |
* GetSidIdentifierAuthority
|
|
Packit |
1fb8d4 |
* GetSidLengthRequired
|
|
Packit |
1fb8d4 |
* GetSidSubAuthority
|
|
Packit |
1fb8d4 |
* GetSidSubAuthorityCount
|
|
Packit |
1fb8d4 |
* GetTokenInformation
|
|
Packit |
1fb8d4 |
* GetWindowsAccountDomainSid
|
|
Packit |
1fb8d4 |
* ImpersonateAnonymousToken
|
|
Packit |
1fb8d4 |
* ImpersonateLoggedOnUser
|
|
Packit |
1fb8d4 |
* ImpersonateSelf
|
|
Packit |
1fb8d4 |
* InitializeAcl
|
|
Packit |
1fb8d4 |
* InitializeSid
|
|
Packit |
1fb8d4 |
* IsTokenRestricted
|
|
Packit |
1fb8d4 |
* IsValidAcl
|
|
Packit |
1fb8d4 |
* IsValidSid
|
|
Packit |
1fb8d4 |
* IsWellKnownSid
|
|
Packit |
1fb8d4 |
* MakeAbsoluteSD
|
|
Packit |
1fb8d4 |
* MakeSelfRelativeSD
|
|
Packit |
1fb8d4 |
* MapGenericMask
|
|
Packit |
1fb8d4 |
* ObjectCloseAuditAlarmW
|
|
Packit |
1fb8d4 |
* ObjectDeleteAuditAlarmW
|
|
Packit |
1fb8d4 |
* ObjectOpenAuditAlarmW
|
|
Packit |
1fb8d4 |
* ObjectPrivilegeAuditAlarmW
|
|
Packit |
1fb8d4 |
* PrivilegeCheck
|
|
Packit |
1fb8d4 |
* PrivilegedServiceAuditAlarmW
|
|
Packit |
1fb8d4 |
* QuerySecurityAccessMask
|
|
Packit |
1fb8d4 |
* RevertToSelf
|
|
Packit |
1fb8d4 |
* SetAclInformation
|
|
Packit |
1fb8d4 |
* SetCachedSigningLevel
|
|
Packit |
1fb8d4 |
* SetFileSecurityW
|
|
Packit |
1fb8d4 |
* SetKernelObjectSecurity
|
|
Packit |
1fb8d4 |
* SetPrivateObjectSecurity
|
|
Packit |
1fb8d4 |
* SetPrivateObjectSecurityEx
|
|
Packit |
1fb8d4 |
* SetSecurityAccessMask
|
|
Packit |
1fb8d4 |
* SetTokenInformation
|
|
Packit |
1fb8d4 |
*/
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifndef _WIN32
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#include "security.h"
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
BOOL InitializeSecurityDescriptor(PSECURITY_DESCRIPTOR pSecurityDescriptor, DWORD dwRevision)
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
return TRUE;
|
|
Packit |
1fb8d4 |
}
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
DWORD GetSecurityDescriptorLength(PSECURITY_DESCRIPTOR pSecurityDescriptor)
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
return 0;
|
|
Packit |
1fb8d4 |
}
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
BOOL IsValidSecurityDescriptor(PSECURITY_DESCRIPTOR pSecurityDescriptor)
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
return TRUE;
|
|
Packit |
1fb8d4 |
}
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
BOOL GetSecurityDescriptorControl(PSECURITY_DESCRIPTOR pSecurityDescriptor,
|
|
Packit |
1fb8d4 |
PSECURITY_DESCRIPTOR_CONTROL pControl, LPDWORD lpdwRevision)
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
return TRUE;
|
|
Packit |
1fb8d4 |
}
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
BOOL SetSecurityDescriptorControl(PSECURITY_DESCRIPTOR pSecurityDescriptor,
|
|
Packit |
1fb8d4 |
SECURITY_DESCRIPTOR_CONTROL ControlBitsOfInterest, SECURITY_DESCRIPTOR_CONTROL ControlBitsToSet)
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
return TRUE;
|
|
Packit |
1fb8d4 |
}
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
BOOL GetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR pSecurityDescriptor, LPBOOL lpbDaclPresent, PACL* pDacl, LPBOOL lpbDaclDefaulted)
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
return TRUE;
|
|
Packit |
1fb8d4 |
}
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
BOOL SetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR pSecurityDescriptor, BOOL bDaclPresent, PACL pDacl, BOOL bDaclDefaulted)
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
return TRUE;
|
|
Packit |
1fb8d4 |
}
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
BOOL GetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR pSecurityDescriptor, PSID* pGroup, LPBOOL lpbGroupDefaulted)
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
return TRUE;
|
|
Packit |
1fb8d4 |
}
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
BOOL SetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR pSecurityDescriptor, PSID pGroup, BOOL bGroupDefaulted)
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
return TRUE;
|
|
Packit |
1fb8d4 |
}
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
BOOL GetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR pSecurityDescriptor, PSID* pOwner, LPBOOL lpbOwnerDefaulted)
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
return TRUE;
|
|
Packit |
1fb8d4 |
}
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
BOOL SetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR pSecurityDescriptor, PSID pOwner, BOOL bOwnerDefaulted)
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
return TRUE;
|
|
Packit |
1fb8d4 |
}
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
DWORD GetSecurityDescriptorRMControl(PSECURITY_DESCRIPTOR SecurityDescriptor, PUCHAR RMControl)
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
return 0;
|
|
Packit |
1fb8d4 |
}
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
DWORD SetSecurityDescriptorRMControl(PSECURITY_DESCRIPTOR SecurityDescriptor, PUCHAR RMControl)
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
return 0;
|
|
Packit |
1fb8d4 |
}
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
BOOL GetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR pSecurityDescriptor, LPBOOL lpbSaclPresent, PACL* pSacl, LPBOOL lpbSaclDefaulted)
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
return TRUE;
|
|
Packit |
1fb8d4 |
}
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
BOOL SetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR pSecurityDescriptor, BOOL bSaclPresent, PACL pSacl, BOOL bSaclDefaulted)
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
return TRUE;
|
|
Packit |
1fb8d4 |
}
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|