diff options
Diffstat (limited to 'lib/std/crypto/Certificate/Bundle/macos.zig')
| -rw-r--r-- | lib/std/crypto/Certificate/Bundle/macos.zig | 38 |
1 files changed, 7 insertions, 31 deletions
diff --git a/lib/std/crypto/Certificate/Bundle/macos.zig b/lib/std/crypto/Certificate/Bundle/macos.zig index 8268a67a48..5260aa61a6 100644 --- a/lib/std/crypto/Certificate/Bundle/macos.zig +++ b/lib/std/crypto/Certificate/Bundle/macos.zig @@ -1,11 +1,14 @@ const std = @import("std"); const assert = std.debug.assert; -const mem = std.mem; const fs = std.fs; +const mem = std.mem; const Allocator = std.mem.Allocator; const Bundle = @import("../Bundle.zig"); pub fn rescanMac(cb: *Bundle, gpa: Allocator) !void { + cb.bytes.clearRetainingCapacity(); + cb.map.clearRetainingCapacity(); + const file = try fs.openFileAbsolute("/System/Library/Keychains/SystemRootCertificates.keychain", .{}); defer file.close(); @@ -37,7 +40,7 @@ pub fn rescanMac(cb: *Bundle, gpa: Allocator) !void { const table_header = try reader.readStructBig(TableHeader); - if (@intToEnum(TableId, table_header.table_id) != TableId.CSSM_DL_DB_RECORD_X509_CERTIFICATE) { + if (@intToEnum(std.os.darwin.cssm.DB_RECORDTYPE, table_header.table_id) != .X509_CERTIFICATE) { continue; } @@ -63,6 +66,8 @@ pub fn rescanMac(cb: *Bundle, gpa: Allocator) !void { try cb.parseCert(gpa, cert_start, now_sec); } } + + cb.bytes.shrinkAndFree(gpa, cb.bytes.items.len); } const ApplDbHeader = extern struct { @@ -88,35 +93,6 @@ const TableHeader = extern struct { record_numbers_count: u32, }; -const TableId = enum(u32) { - CSSM_DL_DB_SCHEMA_INFO = 0x00000000, - CSSM_DL_DB_SCHEMA_INDEXES = 0x00000001, - CSSM_DL_DB_SCHEMA_ATTRIBUTES = 0x00000002, - CSSM_DL_DB_SCHEMA_PARSING_MODULE = 0x00000003, - - CSSM_DL_DB_RECORD_ANY = 0x0000000a, - CSSM_DL_DB_RECORD_CERT = 0x0000000b, - CSSM_DL_DB_RECORD_CRL = 0x0000000c, - CSSM_DL_DB_RECORD_POLICY = 0x0000000d, - CSSM_DL_DB_RECORD_GENERIC = 0x0000000e, - CSSM_DL_DB_RECORD_PUBLIC_KEY = 0x0000000f, - CSSM_DL_DB_RECORD_PRIVATE_KEY = 0x00000010, - CSSM_DL_DB_RECORD_SYMMETRIC_KEY = 0x00000011, - CSSM_DL_DB_RECORD_ALL_KEYS = 0x00000012, - - CSSM_DL_DB_RECORD_GENERIC_PASSWORD = 0x80000000, - CSSM_DL_DB_RECORD_INTERNET_PASSWORD = 0x80000001, - CSSM_DL_DB_RECORD_APPLESHARE_PASSWORD = 0x80000002, - CSSM_DL_DB_RECORD_USER_TRUST = 0x80000003, - CSSM_DL_DB_RECORD_X509_CRL = 0x80000004, - CSSM_DL_DB_RECORD_UNLOCK_REFERRAL = 0x80000005, - CSSM_DL_DB_RECORD_EXTENDED_ATTRIBUTE = 0x80000006, - CSSM_DL_DB_RECORD_X509_CERTIFICATE = 0x80001000, - CSSM_DL_DB_RECORD_METADATA = 0x80008000, - - _, -}; - const X509CertHeader = extern struct { record_size: u32, record_number: u32, |
