authorgravatar for fncontroloption@noreply.codeberg.orgFnControlOption <fncontroloption@noreply.codeberg.org> 2023-01-17 08:56:06-08:00
committergravatar for fncontroloption@noreply.codeberg.orgFnControlOption <fncontroloption@noreply.codeberg.org> 2023-01-17 08:59:38-08:00
logfaf0fe430518ff544fa26e75f51bf7f104726f68
tree1bb5f228fd13f17a45373564eca937d6582ea3a9
parent40c400ec9ea759726a5fa49233298a908be1cf43

std.crypto.Certificate.Bundle: use parseCert in rescanWindows


1 files changed, 3 insertions(+), 10 deletions(-)

lib/std/crypto/Certificate/Bundle.zig+3-10
......@@ -120,21 +120,14 @@ pub fn rescanWindows(cb: *Bundle, gpa: Allocator) !void {
120120 };
121121 defer _ = w.crypt32.CertCloseStore(store, 0);
122122
123 const now_sec = std.time.timestamp();
124
123125 var ctx = w.crypt32.CertEnumCertificatesInStore(store, null);
124126 while (ctx) |context| : (ctx = w.crypt32.CertEnumCertificatesInStore(store, ctx)) {
125127 const decoded_start = @intCast(u32, cb.bytes.items.len);
126128 const encoded_cert = context.pbCertEncoded[0..context.cbCertEncoded];
127129 try cb.bytes.appendSlice(gpa, encoded_cert);
128 const parsed_cert = try Certificate.parse(.{
129 .buffer = cb.bytes.items,
130 .index = decoded_start,
131 });
132 const gop = try cb.map.getOrPutContext(gpa, parsed_cert.subject_slice, .{ .cb = cb });
133 if (gop.found_existing) {
134 cb.bytes.items.len = decoded_start;
135 } else {
136 gop.value_ptr.* = decoded_start;
137 }
130 try cb.parseCert(gpa, decoded_start, now_sec);
138131 }
139132 cb.bytes.shrinkAndFree(gpa, cb.bytes.items.len);
140133}