<html><head><style>body{font-family:Helvetica,Arial;font-size:13px}</style></head><body style="word-wrap:break-word"><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto">On August 19, 2017 at 2:48:19 AM, Salz, Rich via openssl-dev (<a href="mailto:openssl-dev@openssl.org">openssl-dev@openssl.org</a>) wrote:</div> <blockquote type="cite" class="clean_bq"><span><div><div></div><div><br>I think the safest thing is for us to not change the default.  Programs that know they are going to fork can do the right/safe thing.  It would be nicer if we could automatically always do the right thing, but I don’t think it’s possible.
<br><br></div></div></span></blockquote><br><div>It appears the current position is that since there will be edge cases where a reseed would fail (thus either halting the RNG or silently not reseeding it) that we should not attempt to reseed? I would argue it is better to attempt to reseed and document that edge cases may need to reseed themselves. This dramatically narrows the window from "everybody needs to do it" to "users in certain scenarios that are becoming rarer by the day need to do it". Given that backwards compatibility is a concern maybe failure to reseed on fork should only drop an error on the child process's error queue though? That behavior could potentially be a separate flag that OpenSSL uses by default (OPENSSL_TRY_TO_INIT_ATFORK), and then OPENSSL_INIT_ATFORK can be more strict about reseed failures if desired.</div><div><br></div><div>-Paul</div></body></html>