summaryrefslogtreecommitdiff
path: root/sid.ml
diff options
context:
space:
mode:
authorPhilipp Gesang <phg@phi-gamma.net>2018-10-31 00:03:33 +0100
committerPhilipp Gesang <phg@phi-gamma.net>2018-11-03 19:25:23 +0100
commit90222b8fa7d6c7967155d556aa9c73109fd7e03e (patch)
treed485295b4f28d9c62111f3ec1fcf51c394457b2d /sid.ml
parent1a84c5a2366600f274c610117cef59642718bf69 (diff)
downloadocaml-sid-90222b8fa7d6c7967155d556aa9c73109fd7e03e.tar.gz
sid: predefine more well known constants
Add the constants from MS-DTYP 2.4.2.4 to Sid.WellKnown.
Diffstat (limited to 'sid.ml')
-rw-r--r--sid.ml134
1 files changed, 125 insertions, 9 deletions
diff --git a/sid.ml b/sid.ml
index cbfe305..7051ee3 100644
--- a/sid.ml
+++ b/sid.ml
@@ -224,22 +224,138 @@ module PacketRep = struct (* [MS-DTYP] 2.4.22 *)
end (* [module PacketRep] *)
module WellKnown = struct
+ let cu = create_unsafe
+ let sa = U32.of_int
+ let ia = U64.of_int
+
(*
* see also
* https://docs.microsoft.com/en-us/windows/desktop/secauthz/well-known-sids
*)
-
- let null = create_unsafe [| U32.zero |] U64.zero
- let everyone = create_unsafe [| U32.zero |] U64.one
+ let null = cu [| U32.zero |] U64.zero
+ let everyone = cu [| U32.zero |] U64.one
let world = everyone
- let local = create_unsafe [| U32.zero |] (U64.of_int 2)
- let creator_owner_id = create_unsafe [| U32.zero |] (U64.of_int 3)
- let creator_group_id = create_unsafe [| U32.one |] (U64.of_int 3)
- let elite = create_unsafe [| U32.of_int 3 ; U32.of_int 3; U32.of_int 7 |] U64.one
- module Prefix = struct
- type toplevel_auth = ?sa:sub_auths -> unit -> sid
+ (* 1-2-… *)
+ let local = cu [| U32.zero |] (U64.of_int 2)
+ let console_logon = cu [| U32.one |] (U64.of_int 2)
+
+ (* 1-3-… *)
+ let creator_owner_id = cu [| U32.zero |] (U64.of_int 3)
+ let creator_group_id = cu [| U32.one |] (U64.of_int 3)
+ let creator_owner_server = cu [| U32.of_int 2 |] (U64.of_int 3)
+ let creator_group_server = cu [| U32.of_int 3 |] (U64.of_int 3)
+ let owner_rights = cu [| U32.of_int 4 |] (U64.of_int 3)
+ let elite = cu [| U32.of_int 3 ; U32.of_int 3; U32.of_int 7 |] U64.one
+
+ (* 1-5-… *)
+ let nt_authority = cu [| |] (U64.of_int 5)
+ let dialup = cu [| U32.one |] (U64.of_int 5)
+ let network = cu [| U32.of_int 2 |] (U64.of_int 5)
+ let batch = cu [| U32.of_int 3 |] (U64.of_int 5)
+ let interactive = cu [| U32.of_int 4 |] (U64.of_int 5)
+ let logon_id = cu [| U32.of_int 5 |] (U64.of_int 5)
+ let service = cu [| U32.of_int 6 |] (U64.of_int 5)
+ let anonymous = cu [| U32.of_int 7 |] (U64.of_int 5)
+ let proxy = cu [| U32.of_int 8 |] (U64.of_int 5)
+ let enterprise_domain_controllers = cu [| U32.of_int 9 |] (U64.of_int 5)
+ let principal_self = cu [| U32.of_int 10 |] (U64.of_int 5)
+ let authenticated_users = cu [| U32.of_int 11 |] (U64.of_int 5)
+ let restricted_code = cu [| U32.of_int 12 |] (U64.of_int 5)
+ let terminal_server_user = cu [| U32.of_int 13 |] (U64.of_int 5)
+ let remote_interactive_logon = cu [| U32.of_int 14 |] (U64.of_int 5)
+ let this_organisation = cu [| U32.of_int 15 |] (U64.of_int 5)
+ let iusr = cu [| U32.of_int 17 |] (U64.of_int 5)
+ let local_system = cu [| U32.of_int 18 |] (U64.of_int 5)
+ let local_service = cu [| U32.of_int 19 |] (U64.of_int 5)
+ let network_service = cu [| U32.of_int 20 |] (U64.of_int 5)
+
+ let compounded_authentication = cu [| sa 21; U32.zero; U32.zero; U32.zero; sa 496 |] (ia 5)
+ let claims_valid = cu [| sa 21; U32.zero; U32.zero; U32.zero; sa 497 |] (ia 5)
+
+ let administrator machine = cu [| sa 21; machine; sa 500 |] (ia 5)
+ let guest machine = cu [| sa 21; machine; sa 501 |] (ia 5)
+ let krbtgt domain = cu [| sa 21; domain; sa 502 |] (ia 5)
+ let domain_admins domain = cu [| sa 21; domain; sa 512 |] (ia 5)
+ let domain_users domain = cu [| sa 21; domain; sa 513 |] (ia 5)
+ let domain_guests domain = cu [| sa 21; domain; sa 514 |] (ia 5)
+ let domain_computers domain = cu [| sa 21; domain; sa 515 |] (ia 5)
+ let domain_domain_controllers domain = cu [| sa 21; domain; sa 516 |] (ia 5)
+ let cert_publishers domain = cu [| sa 21; domain; sa 517 |] (ia 5)
+ let schema_administrators root_domain = cu [| sa 21; root_domain; sa 518 |] (ia 5)
+ let enterprise_admins root_domain = cu [| sa 21; root_domain; sa 519 |] (ia 5)
+ let group_policy_creator_owners domain = cu [| sa 21; domain; sa 520 |] (ia 5)
+ let readonly_domain_controllers domain = cu [| sa 21; domain; sa 521 |] (ia 5)
+ let cloneable_controllers domain = cu [| sa 21; domain; sa 522 |] (ia 5)
+ let protected_users domain = cu [| sa 21; domain; sa 525 |] (ia 5)
+ let key_admins domain = cu [| sa 21; domain; sa 526 |] (ia 5)
+ let enterprise_key_admins domain = cu [| sa 21; domain; sa 527 |] (ia 5)
+ let ras_servers domain = cu [| sa 21; domain; sa 553 |] (ia 5)
+ let allowed_rodc_password_replication_group domain = cu [| sa 21; domain; sa 571 |] (ia 5)
+ let denied_rodc_password_replication_group domain = cu [| sa 21; domain; sa 572 |] (ia 5)
+
+ let builtin_administrators = cu [| sa 32; sa 544 |] (ia 5)
+ let builtin_users = cu [| sa 32; sa 545 |] (ia 5)
+ let builtin_guests = cu [| sa 32; sa 546 |] (ia 5)
+ let power_users = cu [| sa 32; sa 547 |] (ia 5)
+ let account_operators = cu [| sa 32; sa 548 |] (ia 5)
+ let server_operators = cu [| sa 32; sa 549 |] (ia 5)
+ let printer_operators = cu [| sa 32; sa 550 |] (ia 5)
+ let backup_operators = cu [| sa 32; sa 551 |] (ia 5)
+ let replicator = cu [| sa 32; sa 552 |] (ia 5)
+ let alias_prew2kcompacc = cu [| sa 32; sa 554 |] (ia 5)
+ let remote_desktop = cu [| sa 32; sa 555 |] (ia 5)
+ let network_configuration_ops = cu [| sa 32; sa 556 |] (ia 5)
+ let incoming_forest_trust_builders = cu [| sa 32; sa 557 |] (ia 5)
+ let perfmon_users = cu [| sa 32; sa 558 |] (ia 5)
+ let perflog_users = cu [| sa 32; sa 559 |] (ia 5)
+ let windows_authorization_access_group = cu [| sa 32; sa 560 |] (ia 5)
+ let terminal_server_license_servers = cu [| sa 32; sa 561 |] (ia 5)
+ let distributed_com_users = cu [| sa 32; sa 562 |] (ia 5)
+ let iis_iusrs = cu [| sa 32; sa 568 |] (ia 5)
+ let cryptographic_operators = cu [| sa 32; sa 569 |] (ia 5)
+ let event_log_readers = cu [| sa 32; sa 573 |] (ia 5)
+ let certificate_service_dcom_access = cu [| sa 32; sa 574 |] (ia 5)
+ let rds_remote_access_servers = cu [| sa 32; sa 575 |] (ia 5)
+ let rds_endpoint_servers = cu [| sa 32; sa 576 |] (ia 5)
+ let rds_management_servers = cu [| sa 32; sa 577 |] (ia 5)
+ let hyper_v_admins = cu [| sa 32; sa 578 |] (ia 5)
+ let access_control_assistance_ops = cu [| sa 32; sa 579 |] (ia 5)
+ let remote_management_users = cu [| sa 32; sa 580 |] (ia 5)
+
+ let write_restricted_code = cu [| sa 33 |] (ia 5)
+ let ntlm_authentication = cu [| sa 64; sa 10 |] (ia 5)
+ let schannel_authentication = cu [| sa 64; sa 14 |] (ia 5)
+ let digest_authentication = cu [| sa 64; sa 21 |] (ia 5)
+ let this_organization_certificate = cu [| sa 65; sa 1 |] (ia 5)
+ let nt_service = cu [| sa 80 |] (ia 5)
+ let user_mode_drivers = cu [| sa 84; U32.zero; U32.zero; U32.zero; U32.zero; U32.zero |] (ia 5)
+ let local_account = cu [| sa 113 |] (ia 5)
+ let local_account_and_member_of_administrators_group = cu [| sa 114 |] (ia 5)
+ let other_organization = cu [| sa 1000 |] (ia 5)
+
+ (* 1-15-… *)
+ let all_app_packages = cu [| sa 2; U32.one |] (ia 15)
+
+ (* 1-16-… *)
+ let ml_untrusted = cu [| U32.zero |] (ia 16)
+ let ml_low = cu [| sa 4096 |] (ia 16)
+ let ml_medium = cu [| sa 8192 |] (ia 16)
+ let ml_medium_plus = cu [| sa 8448 |] (ia 16)
+ let ml_high = cu [| sa 12288 |] (ia 16)
+ let ml_system = cu [| sa 16384 |] (ia 16)
+ let ml_protected_process = cu [| sa 20480 |] (ia 16)
+ let ml_secure_process = cu [| sa 28672 |] (ia 16)
+
+ (* 1-18-… *)
+ let authentication_authority_asserted_identity = cu [| U32.one |] (ia 18)
+ let service_asserted_identity = cu [| sa 2 |] (ia 18)
+ let fresh_public_key_identity = cu [| sa 3 |] (ia 18)
+ let key_trust_identity = cu [| sa 4 |] (ia 18)
+ let key_property_mfa = cu [| sa 5 |] (ia 18)
+ let key_property_attestation = cu [| sa 6 |] (ia 18)
+ module Prefix = struct
let security_null_sid_authority ?(sa=[||]) () = create_unsafe sa (U64.of_int 0x00)
let security_world_sid_authority ?(sa=[||]) () = create_unsafe sa (U64.of_int 0x01)
let security_local_sid_authority ?(sa=[||]) () = create_unsafe sa (U64.of_int 0x02)