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 @@
11const std = @import("std");
22const assert = std.debug.assert;
3const mem = std.mem;
43const fs = std.fs;
4const mem = std.mem;
55const Allocator = std.mem.Allocator;
66const Bundle = @import("../Bundle.zig");
77
......@@ -40,7 +40,7 @@ pub fn rescanMac(cb: *Bundle, gpa: Allocator) !void {
4040
4141 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) {
4444 continue;
4545 }
4646
......@@ -93,35 +93,6 @@ const TableHeader = extern struct {
9393 record_numbers_count: u32,
9494};
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
12596const X509CertHeader = extern struct {
12697 record_size: u32,
12798 record_number: u32,
lib/std/os/darwin.zig+2
......@@ -3,6 +3,8 @@ const builtin = @import("builtin");
33const log = std.log;
44const mem = std.mem;
55
6pub const cssm = @import("darwin/cssm.zig");
7
68pub usingnamespace std.c;
79pub 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};