zig-hmac-drbg
zig-hmac-drbg
Deterministic random bit generator using hmac/sha256 as per NIST 800-90A.
Usage
const std = @import("std");
const hmacdrbg = @import("hmac_drbg");
pub fn main() !void {
var seed: [48]u8 = undefined;
std.crypto.random.bytes(&seed);
var rng = hmacdrbg.HmacDrbg.init(256, &seed, null);
var out: [32]u8 = undefined;
_ = rng.generate(&out);
// Re-seeding is required every 10,000 generate calls
var new_seed: [48]u8 = undefined;
std.crypto.random.bytes(&new_seed);
try rng.reseed(&new_seed);
}