* 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:
@ -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.
|
||||
|
Reference in New Issue
Block a user