| ... | ... | @@ -15101,6 +15101,7 @@ fn randomMainThread(t: *Threaded, buffer: []u8) void { |
| 15101 | 15101 | std.mem.writeInt(usize, seed[seed.len - @sizeOf(usize) ..][0..@sizeOf(usize)], aslr_addr, .native); |
| 15102 | 15102 | switch (native_os) { |
| 15103 | 15103 | .windows => fallbackSeedWindows(&seed), |
| 15104 | .wasi => if (builtin.link_libc) fallbackSeedPosix(&seed) else fallbackSeedWasi(&seed), |
| 15104 | 15105 | else => fallbackSeedPosix(&seed), |
| 15105 | 15106 | } |
| 15106 | 15107 | }, |
| ... | ... | @@ -15135,6 +15136,13 @@ fn fallbackSeedWindows(seed: *[Csprng.seed_len]u8) void { |
| 15135 | 15136 | std.mem.writeInt(windows.LARGE_INTEGER, seed[0..@sizeOf(windows.LARGE_INTEGER)], pc, .native); |
| 15136 | 15137 | } |
| 15137 | 15138 | |
| 15139 | fn fallbackSeedWasi(seed: *[Csprng.seed_len]u8) void { |
| 15140 | var ts: std.os.wasi.timestamp_t = undefined; |
| 15141 | if (std.os.wasi.clock_time_get(.REALTIME, 1, &ts) == .SUCCESS) { |
| 15142 | std.mem.writeInt(std.os.wasi.timestamp_t, seed[0..@sizeOf(std.os.wasi.timestamp_t)], ts, .native); |
| 15143 | } |
| 15144 | } |
| 15145 | |
| 15138 | 15146 | fn randomSecure(userdata: ?*anyopaque, buffer: []u8) Io.RandomSecureError!void { |
| 15139 | 15147 | const t: *Threaded = @ptrCast(@alignCast(userdata)); |
| 15140 | 15148 | |