diff --git a/reactos/lib/advapi32/advapi32.def b/reactos/lib/advapi32/advapi32.def index d9a1b44ef24..6291466e219 100644 --- a/reactos/lib/advapi32/advapi32.def +++ b/reactos/lib/advapi32/advapi32.def @@ -32,7 +32,7 @@ AddAce@20 AddAuditAccessAce@24 AddAuditAccessAceEx@28 AddAuditAccessObjectAce@36 -;AddUsersToEncryptedFile@8 +AddUsersToEncryptedFile@8 AdjustTokenGroups@24 AdjustTokenPrivileges@24 AllocateAndInitializeSid@44 @@ -85,7 +85,7 @@ ControlServiceEx@16 ;ConvertSecurityDescriptorToAccessNamedW=ConvertSecurityDescriptorToAccessW@28 ;ConvertSecurityDescriptorToAccessW@28 ;ConvertSecurityDescriptorToStringSecurityDescriptorA@20 -;ConvertSecurityDescriptorToStringSecurityDescriptorW@20 +ConvertSecurityDescriptorToStringSecurityDescriptorW@20 ConvertSidToStringSidA@8 ConvertSidToStringSidW@8 ;ConvertStringSDToSDDomainA@24 @@ -95,7 +95,7 @@ ConvertSidToStringSidW@8 ConvertStringSecurityDescriptorToSecurityDescriptorA@16 ConvertStringSecurityDescriptorToSecurityDescriptorW@16 ;ConvertStringSidToSidA@8 -;ConvertStringSidToSidW@8 +ConvertStringSidToSidW@8 ConvertToAutoInheritPrivateObjectSecurity@24 CopySid@12 ;CreateCodeAuthzLevel@20 @@ -106,7 +106,7 @@ CreateProcessAsUserA@44 ;CreateProcessAsUserSecure CreateProcessAsUserW@44 ;CreateProcessWithLogonW -;CreateRestrictedToken@36 +CreateRestrictedToken@36 CreateServiceA@52 CreateServiceW@52 ;CreateTraceInstanceId@8 @@ -154,7 +154,7 @@ CryptEncrypt@28 ;CryptEnumProviderTypesA@24 ;CryptEnumProviderTypesW@24 ;CryptEnumProvidersA@24 -;CryptEnumProvidersW@24 +CryptEnumProvidersW@24 CryptExportKey@24 CryptGenKey@16 CryptGenRandom@12 @@ -179,8 +179,8 @@ CryptSignHashA@24 ;CryptSignHashW@24 CryptVerifySignatureA@24 CryptVerifySignatureW@24 -;DecryptFileA@8 -;DecryptFileW@8 +DecryptFileA@8 +DecryptFileW@8 DeleteAce@8 DeleteService@4 DeregisterEventSource@4 @@ -208,10 +208,10 @@ DuplicateTokenEx@24 ;ElfReportEventA@48 ;ElfReportEventW@48 ;EnableTrace -;EncryptFileA -;EncryptFileW +EncryptFileA@4 +EncryptFileW@4 ;EncryptedFileKeyInfo -;EncryptionDisable +EncryptionDisable@8 EnumDependentServicesA@24 EnumDependentServicesW@24 EnumServiceGroupW@36 @@ -223,13 +223,13 @@ EnumServicesStatusW@32 EqualDomainSid@12 EqualPrefixSid@8 EqualSid@8 -;FileEncryptionStatusA -;FileEncryptionStatusW +FileEncryptionStatusA@8 +FileEncryptionStatusW@8 FindFirstFreeAce@8 ;FlushTraceA ;FlushTraceW ;FreeEncryptedFileKeyInfo -;FreeEncryptionCertificateHashList +FreeEncryptionCertificateHashList@4 FreeInheritedFromArray@12 FreeSid@4 ;GetAccessPermissionsForObjectA @@ -237,11 +237,11 @@ FreeSid@4 GetAce@12 GetAclInformation@16 ;GetAuditedPermissionsFromAclA@16 -;GetAuditedPermissionsFromAclW@16 +GetAuditedPermissionsFromAclW@16 GetCurrentHwProfileA@4 GetCurrentHwProfileW@4 ;GetEffectiveRightsFromAclA@12 -;GetEffectiveRightsFromAclW@12 +GetEffectiveRightsFromAclW@12 ;GetEventLogInformation GetExplicitEntriesFromAclA@12=ADVAPI32.GetExplicitEntriesFromAclW GetExplicitEntriesFromAclW@12 @@ -343,7 +343,7 @@ LookupPrivilegeValueA@12 LookupPrivilegeValueW@12 ;LookupSecurityDescriptorPartsA@28 ;LookupSecurityDescriptorPartsW@28 -;LsaAddAccountRights@16 +LsaAddAccountRights@16 ;LsaAddPrivilegesToAccount@8 ;LsaClearAuditLog@4 LsaClose@4 @@ -353,9 +353,9 @@ LsaClose@4 ;LsaCreateTrustedDomainEx ;LsaDelete@4 ;LsaDeleteTrustedDomain@8 -;LsaEnumerateAccountRights@16 +LsaEnumerateAccountRights@16 ;LsaEnumerateAccounts@20 -;LsaEnumerateAccountsWithUserRight@16 +LsaEnumerateAccountsWithUserRight@16 ;LsaEnumeratePrivileges@20 ;LsaEnumeratePrivilegesOfAccount@8 ;LsaEnumerateTrustedDomains@20 @@ -390,10 +390,10 @@ LsaQueryInformationPolicy@12 ;LsaQuerySecurityObject@12 ;LsaQueryTrustedDomainInfo@16 ;LsaQueryTrustedDomainInfoByName -;LsaRemoveAccountRights@20 +LsaRemoveAccountRights@20 ;LsaRemovePrivilegesFromAccount@12 LsaRetrievePrivateData@12 -;LsaSetInformationPolicy@12 +LsaSetInformationPolicy@12 ;LsaSetForestTrustInformation ;LsaSetInformationPolicy ;LsaSetInformationTrustedDomain@12 @@ -448,7 +448,7 @@ PrivilegedServiceAuditAlarmW@20 ;ProvAccessRightsToNTAccessMask ; ? ;QueryAllTracesA ;QueryAllTracesW -;QueryRecoveryAgentsOnEncryptedFile +QueryRecoveryAgentsOnEncryptedFile@8 ;QueryServiceConfig2A ;QueryServiceConfig2W QueryServiceConfigA@16 @@ -460,7 +460,7 @@ QueryServiceStatus@8 QueryServiceStatusEx@20 ;QueryTraceA ;QueryTraceW -;QueryUsersOnEncryptedFile +QueryUsersOnEncryptedFile@8 ;QueryWindows31FilesMigration@4 ;ReadEncryptedFileRaw ReadEventLogA@28 @@ -539,7 +539,7 @@ RegisterServiceCtrlHandlerW@8 ;RegisterTraceGuidsA ;RegisterTraceGuidsW ;RemoveTraceCallback -;RemoveUsersFromEncryptedFile +RemoveUsersFromEncryptedFile@8 ReportEventA@36 ReportEventW@36 RevertToSelf@0 diff --git a/reactos/lib/advapi32/crypt/crypt.c b/reactos/lib/advapi32/crypt/crypt.c index 7e396353892..35918ec160f 100644 --- a/reactos/lib/advapi32/crypt/crypt.c +++ b/reactos/lib/advapi32/crypt/crypt.c @@ -27,6 +27,7 @@ #include #include "crypt.h" +#include #define NDEBUG #include @@ -1935,3 +1936,98 @@ NTSTATUS WINAPI SystemFunction041(PVOID memory, ULONG length, ULONG flags) /* R DPRINT1("(%p, %lx, %lx): stub [RtlDecryptMemory]\n", memory, length, flags); return STATUS_SUCCESS; } + + +/* + * @unimplemented + */ +DWORD WINAPI AddUsersToEncryptedFile ( + LPCWSTR lpcwstr, + PENCRYPTION_CERTIFICATE_LIST pencryption_certificate_list + ) +{ + DPRINT1("%s() not implemented!\n", __FUNCTION__); + return ERROR_CALL_NOT_IMPLEMENTED; +} + +/* + * @unimplemented + */ +DWORD WINAPI RemoveUsersFromEncryptedFile ( + LPCWSTR lpcwstr, + PENCRYPTION_CERTIFICATE_HASH_LIST pencryption_certificate_hash_list + ) +{ + DPRINT1("%s() not implemented!\n", __FUNCTION__); + return ERROR_CALL_NOT_IMPLEMENTED; +} + +/* + * @unimplemented + */ +BOOL WINAPI EncryptionDisable ( + LPCWSTR, + BOOL + ); + +/* + * @unimplemented + */ +BOOL WINAPI FileEncryptionStatusW ( + LPCWSTR lpcwstr, + LPDWORD lpdword + ) +{ + DPRINT1("%s() not implemented!\n", __FUNCTION__); + return ERROR_CALL_NOT_IMPLEMENTED; +} + + +/* + * @unimplemented + */ +BOOL WINAPI FileEncryptionStatusA ( + LPCSTR lpcstr, + LPDWORD lpdword + ) +{ + DPRINT1("%s() not implemented!\n", __FUNCTION__); + return ERROR_CALL_NOT_IMPLEMENTED; +} + +/* + * @unimplemented + */ +DWORD WINAPI QueryUsersOnEncryptedFile ( + LPCWSTR lpctstr, + PENCRYPTION_CERTIFICATE_HASH_LIST* pencryption_certificate_hash_list + ) +{ + DPRINT1("%s() not implemented!\n", __FUNCTION__); + return ERROR_CALL_NOT_IMPLEMENTED; +} + + +/* + * @unimplemented + */ +void WINAPI FreeEncryptionCertificateHashList ( + PENCRYPTION_CERTIFICATE_HASH_LIST pencryption_certificate_hash_list + ) +{ + DPRINT1("%s() not implemented!\n", __FUNCTION__); + return; +} + + +/* + * @unimplemented + */ +DWORD WINAPI QueryRecoveryAgentsOnEncryptedFile ( + LPCWSTR lpctstr, + PENCRYPTION_CERTIFICATE_HASH_LIST* pencryption_certificate_hash_list + ) +{ + DPRINT1("%s() not implemented!\n", __FUNCTION__); + return ERROR_CALL_NOT_IMPLEMENTED; +} diff --git a/reactos/lib/advapi32/sec/ac.c b/reactos/lib/advapi32/sec/ac.c index 8654c6015bb..41021d385a4 100644 --- a/reactos/lib/advapi32/sec/ac.c +++ b/reactos/lib/advapi32/sec/ac.c @@ -692,5 +692,36 @@ GetExplicitEntriesFromAclW( return ErrorCode; } +/* + * @unimplemented + */ +DWORD +STDCALL +GetEffectiveRightsFromAclW( + PACL pacl, + PTRUSTEE_W ptrustee_w, + PACCESS_MASK paccess_mask + ) +{ + DPRINT1("%s() not implemented!\n", __FUNCTION__); + return ERROR_CALL_NOT_IMPLEMENTED; +} + + +/* + * @unimplemented + */ +DWORD +STDCALL +GetAuditedPermissionsFromAclW( + PACL pacl, + PTRUSTEE_W ptrustee_w, + PACCESS_MASK paccess_mask, + PACCESS_MASK paccess_mask2 + ) +{ + DPRINT1("%s() not implemented!\n", __FUNCTION__); + return ERROR_CALL_NOT_IMPLEMENTED; +} /* EOF */ diff --git a/reactos/lib/advapi32/sec/sec.c b/reactos/lib/advapi32/sec/sec.c index ec21752f688..1b5b7dd5c42 100644 --- a/reactos/lib/advapi32/sec/sec.c +++ b/reactos/lib/advapi32/sec/sec.c @@ -498,4 +498,40 @@ BuildSecurityDescriptorA(IN PTRUSTEE_A pOwner OPTIONAL, } +/* + * @unimplemented + */ +BOOL WINAPI DecryptFileW(LPCWSTR lpFileName, DWORD dwReserved) +{ + DPRINT1("%s() not implemented!\n", __FUNCTION__); + return ERROR_CALL_NOT_IMPLEMENTED; +} + +/* + * @unimplemented + */ +BOOL WINAPI DecryptFileA(LPCSTR lpFileName, DWORD dwReserved) +{ + DPRINT1("%s() not implemented!\n", __FUNCTION__); + return ERROR_CALL_NOT_IMPLEMENTED; +} + +/* + * @unimplemented + */ +BOOL WINAPI EncryptFileW(LPCWSTR lpFileName) +{ + DPRINT1("%s() not implemented!\n", __FUNCTION__); + return ERROR_CALL_NOT_IMPLEMENTED; +} + +/* + * @unimplemented + */ +BOOL WINAPI EncryptFileA(LPCSTR lpFileName) +{ + DPRINT1("%s() not implemented!\n", __FUNCTION__); + return ERROR_CALL_NOT_IMPLEMENTED; +} + /* EOF */ diff --git a/reactos/lib/kernel32/misc/stubs.c b/reactos/lib/kernel32/misc/stubs.c index 29fba24115d..042ecfc63bc 100644 --- a/reactos/lib/kernel32/misc/stubs.c +++ b/reactos/lib/kernel32/misc/stubs.c @@ -592,17 +592,6 @@ GetDevicePowerState( return 0; } -/* - * @unimplemented - */ -VOID -STDCALL -GetNativeSystemInfo( - LPSYSTEM_INFO lpSystemInfo - ) -{ - STUB; -} /* * @unimplemented @@ -720,7 +709,8 @@ IsWow64Process( ) { STUB; - return 0; + *Wow64Process = FALSE; + return TRUE; } /* diff --git a/reactos/lib/kernel32/misc/sysinfo.c b/reactos/lib/kernel32/misc/sysinfo.c index 4542e45d696..94303d127ba 100644 --- a/reactos/lib/kernel32/misc/sysinfo.c +++ b/reactos/lib/kernel32/misc/sysinfo.c @@ -198,4 +198,20 @@ GetSystemRegistryQuota(PDWORD pdwQuotaAllowed, return FALSE; } +/* + * @implemented + */ +VOID +STDCALL +GetNativeSystemInfo( + LPSYSTEM_INFO lpSystemInfo + ) +{ + //FIXME: GetNativeSystemInfo should return always the real Hardware Processorarchitecture + // in case a Program is running in 32bit Mode on AMD64 + // GetSystemInfo should return PROCESSOR_ARCHITECTURE_INTEL and + // GetNativeSystemInfo should return PROCESSOR_ARCHITECTURE_AMD64 + GetSystemInfo(lpSystemInfo); +} + /* EOF */ diff --git a/reactos/lib/secur32/secext.c b/reactos/lib/secur32/secext.c new file mode 100644 index 00000000000..9e3850b874f --- /dev/null +++ b/reactos/lib/secur32/secext.c @@ -0,0 +1,61 @@ +#include +#define NTOS_MODE_USER +#include +#include + +#define NDEBUG +#include + +#include +#include + + +BOOLEAN +WINAPI +GetComputerObjectNameA ( + EXTENDED_NAME_FORMAT extended_name_format, + LPSTR lpstr, + PULONG pulong + ) +{ + DPRINT1("%s() not implemented!\n", __FUNCTION__); + return ERROR_CALL_NOT_IMPLEMENTED; +} + +BOOLEAN +WINAPI +GetComputerObjectNameW ( + EXTENDED_NAME_FORMAT extended_name_format, + LPWSTR lpstr, + PULONG pulong + ) +{ + DPRINT1("%s() not implemented!\n", __FUNCTION__); + return ERROR_CALL_NOT_IMPLEMENTED; +} + + +BOOLEAN +WINAPI +GetUserNameExA ( + EXTENDED_NAME_FORMAT extended_exe_format, + LPSTR lpstr, + PULONG pulong + ) +{ + DPRINT1("%s() not implemented!\n", __FUNCTION__); + return ERROR_CALL_NOT_IMPLEMENTED; +} + + +BOOLEAN +WINAPI +GetUserNameExW ( + EXTENDED_NAME_FORMAT extended_exe_format, + LPWSTR lpstr, + PULONG pulong + ) +{ + DPRINT1("%s() not implemented!\n", __FUNCTION__); + return ERROR_CALL_NOT_IMPLEMENTED; +} diff --git a/reactos/lib/secur32/secur32.def b/reactos/lib/secur32/secur32.def index 388bb3c7720..57e5ec41fce 100644 --- a/reactos/lib/secur32/secur32.def +++ b/reactos/lib/secur32/secur32.def @@ -23,16 +23,16 @@ LsaCallAuthenticationPackage@28 ;@DeleteSecurityPackageA ;@DeleteSecurityPackageW ;@EncryptMessage -;@EnumerateSecurityPackagesA -;@EnumerateSecurityPackagesW +;@EnumerateSecurityPackagesA@8 +EnumerateSecurityPackagesW@8 ;@ExportSecurityContext -;@FreeContextBuffer +FreeContextBuffer@4 ;@FreeCredentialsHandle -;@GetComputerObjectNameA -;@GetComputerObjectNameW +GetComputerObjectNameA@12 +GetComputerObjectNameW@12 ;GetSecurityUserInfo -;@GetUserNameExA -;@GetUserNameExW +GetUserNameExA@12 +GetUserNameExW@12 ;@ImpersonateSecurityContext ;@ImportSecurityContextA ;@ImportSecurityContextW diff --git a/reactos/lib/secur32/secur32.xml b/reactos/lib/secur32/secur32.xml index 83ad59bab1c..45c1c69957e 100644 --- a/reactos/lib/secur32/secur32.xml +++ b/reactos/lib/secur32/secur32.xml @@ -3,10 +3,13 @@ . + 0x501 ntdll kernel32 advapi32 dllmain.c lsa.c + secext.c + sspi.c secur32.rc diff --git a/reactos/lib/secur32/sspi.c b/reactos/lib/secur32/sspi.c new file mode 100644 index 00000000000..84d0d4e2562 --- /dev/null +++ b/reactos/lib/secur32/sspi.c @@ -0,0 +1,35 @@ +#include +#define NTOS_MODE_USER +#include +#include + +#define NDEBUG +#include + +#include +#include +#include + + + +SECURITY_STATUS +WINAPI +EnumerateSecurityPackagesW ( + PULONG pulong, + PSecPkgInfoW* psecpkginfow + ) +{ + DPRINT1("%s() not implemented!\n", __FUNCTION__); + return ERROR_CALL_NOT_IMPLEMENTED; +} + + +SECURITY_STATUS +WINAPI +FreeContextBuffer ( + PVOID pvoid + ) +{ + DPRINT1("%s() not implemented!\n", __FUNCTION__); + return ERROR_CALL_NOT_IMPLEMENTED; +} diff --git a/reactos/w32api/include/winefs.h b/reactos/w32api/include/winefs.h new file mode 100644 index 00000000000..53a7a9361da --- /dev/null +++ b/reactos/w32api/include/winefs.h @@ -0,0 +1,67 @@ +typedef struct _CERTIFICATE_BLOB { + DWORD dwCertEncodingType; + DWORD cbData; + PBYTE pbData; +} EFS_CERTIFICATE_BLOB, *PEFS_CERTIFICATE_BLOB; + +typedef struct _EFS_HASH_BLOB { + DWORD cbData; + PBYTE pbData; +} EFS_HASH_BLOB, *PEFS_HASH_BLOB; + +typedef struct _ENCRYPTION_CERTIFICATE { + DWORD cbTotalLength; + SID* pUserSid; + PEFS_CERTIFICATE_BLOB pCertBlob; +} ENCRYPTION_CERTIFICATE, *PENCRYPTION_CERTIFICATE; + +typedef struct _ENCRYPTION_CERTIFICATE_HASH { + DWORD cbTotalLength; + SID* pUserSid; + PEFS_HASH_BLOB pHash; + LPWSTR lpDisplayInformation; +} ENCRYPTION_CERTIFICATE_HASH, *PENCRYPTION_CERTIFICATE_HASH; + +typedef struct _ENCRYPTION_CERTIFICATE_LIST { + DWORD nUsers; + PENCRYPTION_CERTIFICATE* pUsers; +} ENCRYPTION_CERTIFICATE_LIST, *PENCRYPTION_CERTIFICATE_LIST; + +typedef struct _ENCRYPTION_CERTIFICATE_HASH_LIST { + DWORD nCert_Hash; + PENCRYPTION_CERTIFICATE_HASH* pUsers; +} ENCRYPTION_CERTIFICATE_HASH_LIST, *PENCRYPTION_CERTIFICATE_HASH_LIST; + +DWORD WINAPI AddUsersToEncryptedFile ( + LPCWSTR, + PENCRYPTION_CERTIFICATE_LIST + ); + +DWORD WINAPI RemoveUsersFromEncryptedFile ( + LPCWSTR, + PENCRYPTION_CERTIFICATE_HASH_LIST + ); + +BOOL WINAPI EncryptionDisable ( + LPCWSTR, + BOOL + ); + +BOOL WINAPI FileEncryptionStatus ( + LPCTSTR, + LPDWORD + ); + +DWORD WINAPI QueryUsersOnEncryptedFile ( + LPCWSTR, + PENCRYPTION_CERTIFICATE_HASH_LIST* + ); + +void WINAPI FreeEncryptionCertificateHashList ( + PENCRYPTION_CERTIFICATE_HASH_LIST + ); + +DWORD WINAPI QueryRecoveryAgentsOnEncryptedFile ( + LPCWSTR, + PENCRYPTION_CERTIFICATE_HASH_LIST* + );