From bbf6993a2dba70ee9cd99b20a039e15d754400ef Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Thu, 19 Jan 2017 20:58:06 +0100 Subject: Move getentropy/getrandom into own file Signed-off-by: Corinna Vinschen --- winsup/cygwin/miscfuncs.cc | 57 ---------------------------------------------- 1 file changed, 57 deletions(-) (limited to 'winsup/cygwin/miscfuncs.cc') diff --git a/winsup/cygwin/miscfuncs.cc b/winsup/cygwin/miscfuncs.cc index 044d72787..a84c587ce 100644 --- a/winsup/cygwin/miscfuncs.cc +++ b/winsup/cygwin/miscfuncs.cc @@ -14,7 +14,6 @@ details. */ #include #include #include -#include #include #include "cygtls.h" #include "ntdll.h" @@ -235,62 +234,6 @@ check_iovec (const struct iovec *iov, int iovcnt, bool forwrite) return -1; } -extern "C" int -getentropy (void *ptr, size_t len) -{ - /* Per BSD man page: The maximum buffer size permitted is 256 bytes. - If buflen exceeds this, an error of EIO will be indicated. */ - if (len > 256) - { - debug_printf ("len (%U) > 256", len); - set_errno (EIO); - return -1; - } - __try - { - if (!RtlGenRandom (ptr, len)) - { - debug_printf ("RtlGenRandom() = FALSE"); - set_errno (EIO); - return -1; - } - } - __except (EFAULT) - { - return -1; - } - __endtry - return 0; -} - -extern "C" ssize_t -getrandom (void *ptr, size_t len, unsigned int flags) -{ - if (flags & ~(GRND_NONBLOCK | GRND_RANDOM)) - { - debug_printf ("invalid flags: %y", flags); - set_errno (EINVAL); - return -1; - } - /* Max. bytes returned by Linux call. */ - len = MAX (len, (flags & GRND_RANDOM) ? 512 : 33554431); - __try - { - if (!RtlGenRandom (ptr, len)) - { - debug_printf ("RtlGenRandom() = FALSE"); - set_errno (EIO); - return -1; - } - } - __except (EFAULT) - { - return -1; - } - __endtry - return len; -} - /* Try hard to schedule another thread. Remember not to call this in a lock condition or you'll potentially suffer starvation. */ -- cgit v1.2.3