* 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