Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

tsevars.c

Go to the documentation of this file.
00001 /*++ 00002 00003 Copyright (c) 1989 Microsoft Corporation 00004 00005 Module Name: 00006 00007 tsevars.c 00008 00009 Abstract: 00010 00011 This Module contains variables used in security test routines. 00012 00013 00014 Author: 00015 00016 Jim Kelly (JimK) 23-Mar-1990 00017 00018 Environment: 00019 00020 Test. 00021 00022 Revision History: 00023 00024 --*/ 00025 00026 #include "tsecomm.c" // Mode dependent macros and routines. 00027 00028 00029 #ifndef _TSEVARS_ 00030 #define _TSEVARS_ 00031 00032 00033 00034 00035 typedef enum _USERS { 00036 Fred, 00037 Wilma, 00038 Pebbles, 00039 Barney, 00040 Betty, 00041 Bambam, 00042 Dino 00043 } USERS; 00044 00045 00046 00047 // 00048 // Define the Bedrock domain and its inhabitants 00049 // 00050 // Bedrock Domain S-1-39824-21-3-17 00051 // Fred S-1-39824-21-3-17-2 00052 // Wilma S-1-39824-21-3-17-3 00053 // Pebbles S-1-39824-21-3-17-4 00054 // Dino S-1-39824-21-3-17-5 00055 // Barney S-1-39824-21-3-17-6 00056 // Betty S-1-39824-21-3-17-7 00057 // Bambam S-1-39824-21-3-17-8 00058 // Flintstone S-1-39824-21-3-17-9 00059 // Rubble S-1-39824-21-3-17-10 00060 // Adult S-1-39824-21-3-17-11 00061 // Child S-1-39824-21-3-17-12 00062 // Neanderthol S-1-39824-21-3-17-13 00063 // 00064 00065 #define BEDROCK_AUTHORITY {0,0,0,0,155,144} 00066 #define BEDROCK_SUBAUTHORITY_0 0x00000015L 00067 #define BEDROCK_SUBAUTHORITY_1 0x00000003L 00068 #define BEDROCK_SUBAUTHORITY_2 0x00000011L 00069 00070 #define FRED_RID 0x00000002L 00071 #define WILMA_RID 0x00000003L 00072 #define PEBBLES_RID 0x00000004L 00073 #define DINO_RID 0x00000005L 00074 00075 #define BARNEY_RID 0x00000006L 00076 #define BETTY_RID 0x00000007L 00077 #define BAMBAM_RID 0x00000008L 00078 00079 #define FLINTSTONE_RID 0x00000009L 00080 #define RUBBLE_RID 0x0000000AL 00081 00082 #define ADULT_RID 0x0000000BL 00083 #define CHILD_RID 0x0000000CL 00084 00085 #define NEANDERTHOL_RID 0x0000000DL 00086 00087 00088 PSID BedrockDomainSid; 00089 00090 00091 PSID FredSid; 00092 PSID WilmaSid; 00093 PSID PebblesSid; 00094 PSID DinoSid; 00095 00096 PSID BarneySid; 00097 PSID BettySid; 00098 PSID BambamSid; 00099 00100 PSID FlintstoneSid; 00101 PSID RubbleSid; 00102 00103 PSID AdultSid; 00104 PSID ChildSid; 00105 00106 PSID NeandertholSid; 00107 00108 00109 // 00110 // Universal well known SIDs 00111 // 00112 00113 PSID NullSid; 00114 PSID WorldSid; 00115 PSID LocalSid; 00116 PSID CreatorSid; 00117 00118 // 00119 // Sids defined by NT 00120 // 00121 00122 PSID NtAuthoritySid; 00123 00124 PSID DialupSid; 00125 PSID NetworkSid; 00126 PSID BatchSid; 00127 PSID InteractiveSid; 00128 PSID LocalSystemSid; 00129 00130 00131 00132 00133 00135 // // 00136 // Define the well known privileges // 00137 // // 00139 00140 00141 LUID CreateTokenPrivilege; 00142 LUID AssignPrimaryTokenPrivilege; 00143 LUID LockMemoryPrivilege; 00144 LUID IncreaseQuotaPrivilege; 00145 LUID UnsolicitedInputPrivilege; 00146 LUID TcbPrivilege; 00147 LUID SecurityPrivilege; 00148 00149 LUID TakeOwnershipPrivilege; 00150 LUID CreatePagefilePrivilege; 00151 LUID IncreaseBasePriorityPrivilege; 00152 LUID SystemProfilePrivilege; 00153 LUID SystemtimePrivilege; 00154 LUID ProfileSingleProcessPrivilege; 00155 00156 LUID RestorePrivilege; 00157 LUID BackupPrivilege; 00158 LUID CreatePermanentPrivilege; 00159 LUID ShutdownPrivilege; 00160 LUID DebugPrivilege; 00161 00162 00163 00164 00165 00166 BOOLEAN 00167 TSeVariableInitialization() 00168 /*++ 00169 00170 Routine Description: 00171 00172 This function initializes the global variables used in security 00173 tests. 00174 00175 Arguments: 00176 00177 None. 00178 00179 Return Value: 00180 00181 TRUE if variables successfully initialized. 00182 FALSE if not successfully initialized. 00183 00184 --*/ 00185 { 00186 ULONG SidWithZeroSubAuthorities; 00187 ULONG SidWithOneSubAuthority; 00188 ULONG SidWithThreeSubAuthorities; 00189 ULONG SidWithFourSubAuthorities; 00190 00191 SID_IDENTIFIER_AUTHORITY NullSidAuthority = SECURITY_NULL_SID_AUTHORITY; 00192 SID_IDENTIFIER_AUTHORITY WorldSidAuthority = SECURITY_WORLD_SID_AUTHORITY; 00193 SID_IDENTIFIER_AUTHORITY LocalSidAuthority = SECURITY_LOCAL_SID_AUTHORITY; 00194 SID_IDENTIFIER_AUTHORITY CreatorSidAuthority = SECURITY_CREATOR_SID_AUTHORITY; 00195 00196 SID_IDENTIFIER_AUTHORITY NtAuthority = SECURITY_NT_AUTHORITY; 00197 00198 00199 SID_IDENTIFIER_AUTHORITY BedrockAuthority = BEDROCK_AUTHORITY; 00200 00201 00202 // 00203 // The following SID sizes need to be allocated 00204 // 00205 00206 SidWithZeroSubAuthorities = RtlLengthRequiredSid( 0 ); 00207 SidWithOneSubAuthority = RtlLengthRequiredSid( 1 ); 00208 SidWithThreeSubAuthorities = RtlLengthRequiredSid( 3 ); 00209 SidWithFourSubAuthorities = RtlLengthRequiredSid( 4 ); 00210 00211 // 00212 // Allocate and initialize the universal SIDs 00213 // 00214 00215 NullSid = (PSID)TstAllocatePool(PagedPool,SidWithOneSubAuthority); 00216 WorldSid = (PSID)TstAllocatePool(PagedPool,SidWithOneSubAuthority); 00217 LocalSid = (PSID)TstAllocatePool(PagedPool,SidWithOneSubAuthority); 00218 CreatorSid = (PSID)TstAllocatePool(PagedPool,SidWithOneSubAuthority); 00219 00220 RtlInitializeSid( NullSid, &NullSidAuthority, 1 ); 00221 RtlInitializeSid( WorldSid, &WorldSidAuthority, 1 ); 00222 RtlInitializeSid( LocalSid, &LocalSidAuthority, 1 ); 00223 RtlInitializeSid( CreatorSid, &CreatorSidAuthority, 1 ); 00224 00225 *(RtlSubAuthoritySid( NullSid, 0 )) = SECURITY_NULL_RID; 00226 *(RtlSubAuthoritySid( WorldSid, 0 )) = SECURITY_WORLD_RID; 00227 *(RtlSubAuthoritySid( LocalSid, 0 )) = SECURITY_LOCAL_RID; 00228 *(RtlSubAuthoritySid( CreatorSid, 0 )) = SECURITY_CREATOR_OWNER_RID; 00229 00230 // 00231 // Allocate and initialize the NT defined SIDs 00232 // 00233 00234 NtAuthoritySid = (PSID)TstAllocatePool(PagedPool,SidWithZeroSubAuthorities); 00235 DialupSid = (PSID)TstAllocatePool(PagedPool,SidWithOneSubAuthority); 00236 NetworkSid = (PSID)TstAllocatePool(PagedPool,SidWithOneSubAuthority); 00237 BatchSid = (PSID)TstAllocatePool(PagedPool,SidWithOneSubAuthority); 00238 InteractiveSid = (PSID)TstAllocatePool(PagedPool,SidWithOneSubAuthority); 00239 LocalSystemSid = (PSID)TstAllocatePool(PagedPool,SidWithOneSubAuthority); 00240 00241 RtlInitializeSid( NtAuthoritySid, &NtAuthority, 0 ); 00242 RtlInitializeSid( DialupSid, &NtAuthority, 1 ); 00243 RtlInitializeSid( NetworkSid, &NtAuthority, 1 ); 00244 RtlInitializeSid( BatchSid, &NtAuthority, 1 ); 00245 RtlInitializeSid( InteractiveSid, &NtAuthority, 1 ); 00246 RtlInitializeSid( LocalSystemSid, &NtAuthority, 1 ); 00247 00248 *(RtlSubAuthoritySid( DialupSid, 0 )) = SECURITY_DIALUP_RID; 00249 *(RtlSubAuthoritySid( NetworkSid, 0 )) = SECURITY_NETWORK_RID; 00250 *(RtlSubAuthoritySid( BatchSid, 0 )) = SECURITY_BATCH_RID; 00251 *(RtlSubAuthoritySid( InteractiveSid, 0 )) = SECURITY_INTERACTIVE_RID; 00252 *(RtlSubAuthoritySid( LocalSystemSid, 0 )) = SECURITY_LOCAL_SYSTEM_RID; 00253 00254 00255 00256 // 00257 // Allocate and initialize the Bedrock SIDs 00258 // 00259 00260 BedrockDomainSid = (PSID)TstAllocatePool(PagedPool,SidWithThreeSubAuthorities); 00261 00262 FredSid = (PSID)TstAllocatePool(PagedPool,SidWithFourSubAuthorities); 00263 WilmaSid = (PSID)TstAllocatePool(PagedPool,SidWithFourSubAuthorities); 00264 PebblesSid = (PSID)TstAllocatePool(PagedPool,SidWithFourSubAuthorities); 00265 DinoSid = (PSID)TstAllocatePool(PagedPool,SidWithFourSubAuthorities); 00266 00267 BarneySid = (PSID)TstAllocatePool(PagedPool,SidWithFourSubAuthorities); 00268 BettySid = (PSID)TstAllocatePool(PagedPool,SidWithFourSubAuthorities); 00269 BambamSid = (PSID)TstAllocatePool(PagedPool,SidWithFourSubAuthorities); 00270 00271 FlintstoneSid = (PSID)TstAllocatePool(PagedPool,SidWithFourSubAuthorities); 00272 RubbleSid = (PSID)TstAllocatePool(PagedPool,SidWithFourSubAuthorities); 00273 00274 AdultSid = (PSID)TstAllocatePool(PagedPool,SidWithFourSubAuthorities); 00275 ChildSid = (PSID)TstAllocatePool(PagedPool,SidWithFourSubAuthorities); 00276 00277 NeandertholSid = (PSID)TstAllocatePool(PagedPool,SidWithFourSubAuthorities); 00278 00279 RtlInitializeSid( BedrockDomainSid, &BedrockAuthority, 3 ); 00280 *(RtlSubAuthoritySid( BedrockDomainSid, 0)) = BEDROCK_SUBAUTHORITY_0; 00281 *(RtlSubAuthoritySid( BedrockDomainSid, 1)) = BEDROCK_SUBAUTHORITY_1; 00282 *(RtlSubAuthoritySid( BedrockDomainSid, 2)) = BEDROCK_SUBAUTHORITY_2; 00283 00284 RtlCopySid( SidWithFourSubAuthorities, FredSid, BedrockDomainSid); 00285 *(RtlSubAuthorityCountSid( FredSid )) += 1; 00286 *(RtlSubAuthoritySid( FredSid, 3)) = FRED_RID; 00287 00288 RtlCopySid( SidWithFourSubAuthorities, WilmaSid, BedrockDomainSid); 00289 *(RtlSubAuthorityCountSid( WilmaSid )) += 1; 00290 *(RtlSubAuthoritySid( WilmaSid, 3)) = WILMA_RID; 00291 00292 RtlCopySid( SidWithFourSubAuthorities, PebblesSid, BedrockDomainSid); 00293 *(RtlSubAuthorityCountSid( PebblesSid )) += 1; 00294 *(RtlSubAuthoritySid( PebblesSid, 3)) = PEBBLES_RID; 00295 00296 RtlCopySid( SidWithFourSubAuthorities, DinoSid, BedrockDomainSid); 00297 *(RtlSubAuthorityCountSid( DinoSid )) += 1; 00298 *(RtlSubAuthoritySid( DinoSid, 3)) = DINO_RID; 00299 00300 RtlCopySid( SidWithFourSubAuthorities, BarneySid, BedrockDomainSid); 00301 *(RtlSubAuthorityCountSid( BarneySid )) += 1; 00302 *(RtlSubAuthoritySid( BarneySid, 3)) = BARNEY_RID; 00303 00304 RtlCopySid( SidWithFourSubAuthorities, BettySid, BedrockDomainSid); 00305 *(RtlSubAuthorityCountSid( BettySid )) += 1; 00306 *(RtlSubAuthoritySid( BettySid, 3)) = BETTY_RID; 00307 00308 RtlCopySid( SidWithFourSubAuthorities, BambamSid, BedrockDomainSid); 00309 *(RtlSubAuthorityCountSid( BambamSid )) += 1; 00310 *(RtlSubAuthoritySid( BambamSid, 3)) = BAMBAM_RID; 00311 00312 RtlCopySid( SidWithFourSubAuthorities, FlintstoneSid, BedrockDomainSid); 00313 *(RtlSubAuthorityCountSid( FlintstoneSid )) += 1; 00314 *(RtlSubAuthoritySid( FlintstoneSid, 3)) = FLINTSTONE_RID; 00315 00316 RtlCopySid( SidWithFourSubAuthorities, RubbleSid, BedrockDomainSid); 00317 *(RtlSubAuthorityCountSid( RubbleSid )) += 1; 00318 *(RtlSubAuthoritySid( RubbleSid, 3)) = RUBBLE_RID; 00319 00320 RtlCopySid( SidWithFourSubAuthorities, AdultSid, BedrockDomainSid); 00321 *(RtlSubAuthorityCountSid( AdultSid )) += 1; 00322 *(RtlSubAuthoritySid( AdultSid, 3)) = ADULT_RID; 00323 00324 RtlCopySid( SidWithFourSubAuthorities, ChildSid, BedrockDomainSid); 00325 *(RtlSubAuthorityCountSid( ChildSid )) += 1; 00326 *(RtlSubAuthoritySid( ChildSid, 3)) = CHILD_RID; 00327 00328 RtlCopySid( SidWithFourSubAuthorities, NeandertholSid, BedrockDomainSid); 00329 *(RtlSubAuthorityCountSid( NeandertholSid )) += 1; 00330 *(RtlSubAuthoritySid( NeandertholSid, 3)) = NEANDERTHOL_RID; 00331 00332 00333 CreateTokenPrivilege = 00334 RtlConvertLongToLuid(SE_CREATE_TOKEN_PRIVILEGE); 00335 AssignPrimaryTokenPrivilege = 00336 RtlConvertLongToLuid(SE_ASSIGNPRIMARYTOKEN_PRIVILEGE); 00337 LockMemoryPrivilege = 00338 RtlConvertLongToLuid(SE_LOCK_MEMORY_PRIVILEGE); 00339 IncreaseQuotaPrivilege = 00340 RtlConvertLongToLuid(SE_INCREASE_QUOTA_PRIVILEGE); 00341 UnsolicitedInputPrivilege = 00342 RtlConvertLongToLuid(SE_UNSOLICITED_INPUT_PRIVILEGE); 00343 TcbPrivilege = 00344 RtlConvertLongToLuid(SE_TCB_PRIVILEGE); 00345 SecurityPrivilege = 00346 RtlConvertLongToLuid(SE_SECURITY_PRIVILEGE); 00347 TakeOwnershipPrivilege = 00348 RtlConvertLongToLuid(SE_TAKE_OWNERSHIP_PRIVILEGE); 00349 CreatePagefilePrivilege = 00350 RtlConvertLongToLuid(SE_CREATE_PAGEFILE_PRIVILEGE); 00351 IncreaseBasePriorityPrivilege = 00352 RtlConvertLongToLuid(SE_INC_BASE_PRIORITY_PRIVILEGE); 00353 SystemProfilePrivilege = 00354 RtlConvertLongToLuid(SE_SYSTEM_PROFILE_PRIVILEGE); 00355 SystemtimePrivilege = 00356 RtlConvertLongToLuid(SE_SYSTEMTIME_PRIVILEGE); 00357 ProfileSingleProcessPrivilege = 00358 RtlConvertLongToLuid(SE_PROF_SINGLE_PROCESS_PRIVILEGE); 00359 CreatePermanentPrivilege = 00360 RtlConvertLongToLuid(SE_CREATE_PERMANENT_PRIVILEGE); 00361 BackupPrivilege = 00362 RtlConvertLongToLuid(SE_BACKUP_PRIVILEGE); 00363 RestorePrivilege = 00364 RtlConvertLongToLuid(SE_RESTORE_PRIVILEGE); 00365 ShutdownPrivilege = 00366 RtlConvertLongToLuid(SE_SHUTDOWN_PRIVILEGE); 00367 DebugPrivilege = 00368 RtlConvertLongToLuid(SE_DEBUG_PRIVILEGE); 00369 00370 00371 return TRUE; 00372 00373 } 00374 #endif // _TSEVARS_

Generated on Sat May 15 19:42:05 2004 for test by doxygen 1.3.7