On Tue, Apr 18, 2017 at 10:12 PM,  <bytevolc...@safe-mail.net> wrote:
...
> Yes, it may be "standards mandated" in some cases (r1.39, bin/ksh/var.c) or
> used by 60 pieces of software, but why would software require a PRNG to be
> deterministic?
>
> That is my question, not "what apps and standards need it?" but "what usage
> cases require it, and can this be replaced with a deterministic PRNG?"

The classic case is code that wants to offer the ability to reproduce
the sequence, so that the state *before* some interesting state can be
examined.  For example, fuzzers often report the seed that generated a
crash, so you can reenter it and walk the target program into the
crash step by step.  If a program offers a "set the seed" option then
that's a huge hint.  If you think that option doesn't make sense for
some program then that's a concern to take to the developer *of that
program*...

For a broader answer to the "why?", take a look at the patches under
/usr/ports/ which add uses of the *_deterministic() calls.  Some
OpenBSD dev in the past judged that that port wanted it and may have
recorded why they thought so in the patch or the commit message of the
patch.  Lacking that, go look at the ports' sources and see what might
indicate that.


Philip Guenther

Reply via email to