<div dir="ltr">It is a Win32 API<div><a href="http://msdn.microsoft.com/en-us/library/windows/desktop/aa379886(v=vs.85).aspx">http://msdn.microsoft.com/en-us/library/windows/desktop/aa379886(v=vs.85).aspx</a><br></div><div>
included from Wincrypt.h.</div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On 27 June 2014 00:11, Edward Ned Harvey (mono) <span dir="ltr"><<a href="mailto:edward.harvey.mono@clevertrove.com" target="_blank">edward.harvey.mono@clevertrove.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I wanted to understand where mono RNGCryptoServiceProvider gets random data.  So I read its source, I see it uses "extern RngInitialize," so when I search for "RngInitialize," it leads me to "ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_RngInitialize" in rand.c<br>

<br>
When I read rand.c, I see that it uses CryptAcquireContext.  (First tries to use Intel PIII RNG, and falls back to RSA CSP).  But I can't seem to find the definition for CryptAcquireContext.  Anybody help?<br>
<br>
I search the entire source tree for CryptAcquireContext:<br>
        $ grep -lr CryptAcquireContext .<br>
        ./mcs/class/lib/net_2_0/Mono.Security.Win32.dll<br>
        ./mcs/class/lib/net_4_0/Mono.Security.Win32.dll<br>
        ./mcs/class/lib/net_4_5/Mono.Security.Win32.dll<br>
        ./mcs/class/Mono.Security.Win32/Mono.Security.Cryptography/CapiContext.cs<br>
        ./mcs/class/Mono.Security.Win32/Mono.Security.Cryptography/CryptoAPI.cs<br>
        ./mono/metadata/rand.c<br>
<br>
I suppose CapiContext.cs and CryptoAPI.cs get built to make Mono.Security.Win32.dll.  So that explains having the phrase "CryptAcquireContext" in all 5 of those files ...  But none of them, as far as I can tell, supply the definition for the function called in rand.c.  Looking in CapiContext.cs and CryptoAPI.cs, I see they both contain the phrase "CryptAcquireContextA" which does not appear to be the same thing as "CryptAcquireContext" which is called by rand.c<br>

_______________________________________________<br>
Mono-devel-list mailing list<br>
<a href="mailto:Mono-devel-list@lists.ximian.com">Mono-devel-list@lists.ximian.com</a><br>
<a href="http://lists.ximian.com/mailman/listinfo/mono-devel-list" target="_blank">http://lists.ximian.com/mailman/listinfo/mono-devel-list</a><br>
<br>
</blockquote></div><br></div>