`std.options.crypto_always_getrandom` ignores overridden `std.options.cryptoRandomSeed`
Khitiara opened this issue · 2 comments
Zig Version
0.13.0-dev.46+3648d7df1
Steps to Reproduce and Observed Behavior
I'm using std_options.cryptoRandomSeed
to provide a hardware secure random source for my hobby os, and I'd like to use crypto_always_getrandom
to allow me to compile without the single_threaded flag since there is no syscall overhead on getting the random value when in kernel mode already anyway, but when i set crypto_always_getrandom = true
the program fails to compile due to that branch always calling posix getrandom directly.
Expected Behavior
The program should compile and use my provided cryptoRandomSeed for all cryptographic random calls. or this behavior should be documented better if intentional.
To me, it looks like this would require a change here:
zig/lib/std/crypto/tlcsprng.zig
Lines 72 to 77 in c77afca
Where the call to defaultRandomSeed
has to be replaced by calling std.options.cryptoRandomSeed
.
Unfortunately, I'm quite new to this, so I don't know how to install Zig from source and perform the testing :/ (I'm aware that there is a HowTo, but I'm a total noob).
@insalt-glitch Note that you can edit the standard library (in lib/std
) of a built/downloaded Zig distribution and the changes will immediately take effect for all subsequent builds; no need to rebuild the compiler itself from source.