<div dir="rtl"><div dir="ltr">Hi,</div><div dir="ltr"><br></div><div dir="ltr">Just found out both Visual C++ and MingW supply the rand_s() function (implemented in MSVCRT), which wraps one of the above functions in a very easy to use and version:</div>

<div dir="ltr"><br></div><div dir="ltr"><a href="http://msdn.microsoft.com/en-us/library/sxtz2fa8.aspx">http://msdn.microsoft.com/en-us/library/sxtz2fa8.aspx</a><br></div><div dir="ltr"><br></div><div dir="ltr">Microsoft own random_device uses it,</div>

<div dir="ltr"><br></div><div dir="ltr">Yaron</div><div dir="ltr"><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote"><div dir="ltr">2013/10/8 Aaron Ballman <span dir="ltr"><<a href="mailto:aaron@aaronballman.com" target="_blank">aaron@aaronballman.com</a>></span></div>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On Mon, Oct 7, 2013 at 5:31 PM, Yaron Keren <<a href="mailto:yaron.keren@gmail.com">yaron.keren@gmail.com</a>> wrote:<br>


> Nick, I have seen RtlGenRandom, but I didn't initally use it since Microsoft<br>
> is recommending to use CryptGenRandom instead:<br>
><br>
> <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/aa387694(v=vs.85).aspx" target="_blank">http://msdn.microsoft.com/en-us/library/windows/desktop/aa387694(v=vs.85).aspx</a><br>
><br>
> [The RtlGenRandom function is available for use in the operating systems<br>
> specified in the Requirements section. It may be altered or unavailable in<br>
> subsequent versions. Instead, use the CryptGenRandom function.]<br>
><br>
> Due to backward compatibility it's very low chance RtlGenRandom will<br>
> actually go away, I'll use it.<br>
<br>
</div>I don't believe we should be using this function.  Technically, the<br>
documentation states this is available for use with the operating<br>
systems listed in the Requirements section, which only lists XP and<br>
Server 2003.  Relying on this outside of those platforms is not only<br>
bad form, but to boot, in order to use them, you need to dynamically<br>
load SystemFunction036 from AdvApi32.dll.<br>
<span class="HOEnZb"><font color="#888888"><br>
~Aaron<br>
</font></span></blockquote></div><br></div>