Rearrange RNG code slightly

In preparation of exporting getentropy/getrandom to userspace, rearrange
code a bit:

- Define RtlGenRandom in ntdll.h.

- Drop calls to getentropy in favor of RtlGenRandom (fhandler_socket,
  fhandler_dev_random).

- Add try/except blocks in fhandler_dev_random to return EFAULT rather
  than crashing if buffer pointer is invalid.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
Corinna Vinschen
2016-12-13 22:59:31 +01:00
parent 80f4987f02
commit 74f7872f89
4 changed files with 52 additions and 34 deletions

View File

@@ -485,7 +485,7 @@ fhandler_socket::af_local_copy (fhandler_socket *sock)
void
fhandler_socket::af_local_set_secret (char *buf)
{
if (getentropy (connect_secret, sizeof (connect_secret)))
if (!RtlGenRandom (connect_secret, sizeof (connect_secret)))
bzero ((char*) connect_secret, sizeof (connect_secret));
__small_sprintf (buf, "%08x-%08x-%08x-%08x",
connect_secret [0], connect_secret [1],