* Makefile.in (DLL_OFILES): Add arc4random.o.

* common.din: Export arc4random, arc4random_addrandom, arc4random_buf,
	arc4random_stir and arc4random_uniform.
	* mktemp.cc (arc4random): Remove static replacement function.
	* posix.sgml (std-bsd): Add arc4random functions.
	* include/cygwin/stdlib.h: Declare arc4random functions.
	* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
	* libc/arc4random.cc: New file implementing arc4random functions taken
	from FreeBSD.
This commit is contained in:
Corinna Vinschen
2013-05-21 19:04:49 +00:00
parent 3e8d2576fd
commit 291d93b58b
8 changed files with 388 additions and 19 deletions

View File

@ -11,7 +11,6 @@ See the copyright at the bottom of this file. */
#include <unistd.h>
static int _gettemp(char *, int *, int, size_t, int);
static uint32_t arc4random ();
static const char padchar[] =
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
@ -153,20 +152,6 @@ _gettemp(char *path, int *doopen, int domkdir, size_t suffixlen, int flags)
/*NOTREACHED*/
}
static uint32_t
arc4random ()
{
union
{
uint32_t rand;
char buf[sizeof (int) / 8];
} r;
int fd = open ("/dev/urandom", O_RDONLY);
read (fd, r.buf, 4);
close (fd);
return r.rand;
}
/*
* Copyright (c) 1987, 1993
* The Regents of the University of California. All rights reserved.