authorgravatar for fncontroloption@noreply.codeberg.orgFnControlOption <fncontroloption@noreply.codeberg.org> 2023-01-17 09:51:39-08:00
committergravatar for fncontroloption@noreply.codeberg.orgFnControlOption <fncontroloption@noreply.codeberg.org> 2023-01-17 09:51:39-08:00
log2623e1c4d623812913cccc8d7a6e7dab41dfd305
tree631d8594ab64c6da3b6aea2757dc9e7535d02914
parentfaf0fe430518ff544fa26e75f51bf7f104726f68

Add std.os.darwin.cssm


3 files changed, 51 insertions(+), 31 deletions(-)

lib/std/crypto/Certificate/Bundle/macos.zig+2-31
...@@ -1,7 +1,7 @@...@@ -1,7 +1,7 @@
1const std = @import("std");1const std = @import("std");
2const assert = std.debug.assert;2const assert = std.debug.assert;
3const mem = std.mem;
4const fs = std.fs;3const fs = std.fs;
4const mem = std.mem;
5const Allocator = std.mem.Allocator;5const Allocator = std.mem.Allocator;
6const Bundle = @import("../Bundle.zig");6const Bundle = @import("../Bundle.zig");
77
...@@ -40,7 +40,7 @@ pub fn rescanMac(cb: *Bundle, gpa: Allocator) !void {...@@ -40,7 +40,7 @@ pub fn rescanMac(cb: *Bundle, gpa: Allocator) !void {
4040
41 const table_header = try reader.readStructBig(TableHeader);41 const table_header = try reader.readStructBig(TableHeader);
4242
43 if (@intToEnum(TableId, table_header.table_id) != TableId.CSSM_DL_DB_RECORD_X509_CERTIFICATE) {43 if (@intToEnum(std.os.darwin.cssm.DB_RECORDTYPE, table_header.table_id) != .X509_CERTIFICATE) {
44 continue;44 continue;
45 }45 }
4646
...@@ -93,35 +93,6 @@ const TableHeader = extern struct {...@@ -93,35 +93,6 @@ const TableHeader = extern struct {
93 record_numbers_count: u32,93 record_numbers_count: u32,
94};94};
9595
96const TableId = enum(u32) {
97 CSSM_DL_DB_SCHEMA_INFO = 0x00000000,
98 CSSM_DL_DB_SCHEMA_INDEXES = 0x00000001,
99 CSSM_DL_DB_SCHEMA_ATTRIBUTES = 0x00000002,
100 CSSM_DL_DB_SCHEMA_PARSING_MODULE = 0x00000003,
101
102 CSSM_DL_DB_RECORD_ANY = 0x0000000a,
103 CSSM_DL_DB_RECORD_CERT = 0x0000000b,
104 CSSM_DL_DB_RECORD_CRL = 0x0000000c,
105 CSSM_DL_DB_RECORD_POLICY = 0x0000000d,
106 CSSM_DL_DB_RECORD_GENERIC = 0x0000000e,
107 CSSM_DL_DB_RECORD_PUBLIC_KEY = 0x0000000f,
108 CSSM_DL_DB_RECORD_PRIVATE_KEY = 0x00000010,
109 CSSM_DL_DB_RECORD_SYMMETRIC_KEY = 0x00000011,
110 CSSM_DL_DB_RECORD_ALL_KEYS = 0x00000012,
111
112 CSSM_DL_DB_RECORD_GENERIC_PASSWORD = 0x80000000,
113 CSSM_DL_DB_RECORD_INTERNET_PASSWORD = 0x80000001,
114 CSSM_DL_DB_RECORD_APPLESHARE_PASSWORD = 0x80000002,
115 CSSM_DL_DB_RECORD_USER_TRUST = 0x80000003,
116 CSSM_DL_DB_RECORD_X509_CRL = 0x80000004,
117 CSSM_DL_DB_RECORD_UNLOCK_REFERRAL = 0x80000005,
118 CSSM_DL_DB_RECORD_EXTENDED_ATTRIBUTE = 0x80000006,
119 CSSM_DL_DB_RECORD_X509_CERTIFICATE = 0x80001000,
120 CSSM_DL_DB_RECORD_METADATA = 0x80008000,
121
122 _,
123};
124
125const X509CertHeader = extern struct {96const X509CertHeader = extern struct {
126 record_size: u32,97 record_size: u32,
127 record_number: u32,98 record_number: u32,
lib/std/os/darwin.zig+2
...@@ -3,6 +3,8 @@ const builtin = @import("builtin");...@@ -3,6 +3,8 @@ const builtin = @import("builtin");
3const log = std.log;3const log = std.log;
4const mem = std.mem;4const mem = std.mem;
55
6pub const cssm = @import("darwin/cssm.zig");
7
6pub usingnamespace std.c;8pub usingnamespace std.c;
7pub usingnamespace mach_task;9pub usingnamespace mach_task;
810
lib/std/os/darwin/cssm.zig created+47
...@@ -0,0 +1,47 @@
1// Common Security Services Manager
2// Security.framework/Headers/cssm*.h
3
4// Schema Management Name Space Range Definition
5pub const DB_RECORDTYPE_SCHEMA_START = 0x00000000;
6pub const DB_RECORDTYPE_SCHEMA_END = DB_RECORDTYPE_SCHEMA_START + 4;
7
8// Open Group Application Name Space Range Definition
9pub const DB_RECORDTYPE_OPEN_GROUP_START = 0x0000000A;
10pub const DB_RECORDTYPE_OPEN_GROUP_END = DB_RECORDTYPE_OPEN_GROUP_START + 8;
11
12// Industry At Large Application Name Space Range Definition
13pub const DB_RECORDTYPE_APP_DEFINED_START = 0x80000000;
14pub const DB_RECORDTYPE_APP_DEFINED_END = 0xffffffff;
15
16pub const DB_RECORDTYPE = enum(u32) {
17 // Record Types defined in the Schema Management Name Space
18 SCHEMA_INFO = DB_RECORDTYPE_SCHEMA_START + 0,
19 SCHEMA_INDEXES = DB_RECORDTYPE_SCHEMA_START + 1,
20 SCHEMA_ATTRIBUTES = DB_RECORDTYPE_SCHEMA_START + 2,
21 SCHEMA_PARSING_MODULE = DB_RECORDTYPE_SCHEMA_START + 3,
22
23 // Record Types defined in the Open Group Application Name Space
24 ANY = DB_RECORDTYPE_OPEN_GROUP_START + 0,
25 CERT = DB_RECORDTYPE_OPEN_GROUP_START + 1,
26 CRL = DB_RECORDTYPE_OPEN_GROUP_START + 2,
27 POLICY = DB_RECORDTYPE_OPEN_GROUP_START + 3,
28 GENERIC = DB_RECORDTYPE_OPEN_GROUP_START + 4,
29 PUBLIC_KEY = DB_RECORDTYPE_OPEN_GROUP_START + 5,
30 PRIVATE_KEY = DB_RECORDTYPE_OPEN_GROUP_START + 6,
31 SYMMETRIC_KEY = DB_RECORDTYPE_OPEN_GROUP_START + 7,
32 ALL_KEYS = DB_RECORDTYPE_OPEN_GROUP_START + 8,
33
34 // AppleFileDL record types
35 GENERIC_PASSWORD = DB_RECORDTYPE_APP_DEFINED_START + 0,
36 INTERNET_PASSWORD = DB_RECORDTYPE_APP_DEFINED_START + 1,
37 APPLESHARE_PASSWORD = DB_RECORDTYPE_APP_DEFINED_START + 2,
38
39 X509_CERTIFICATE = DB_RECORDTYPE_APP_DEFINED_START + 0x1000,
40 USER_TRUST,
41 X509_CRL,
42 UNLOCK_REFERRAL,
43 EXTENDED_ATTRIBUTE,
44 METADATA = DB_RECORDTYPE_APP_DEFINED_START + 0x8000,
45
46 _,
47};