making it much easier for libressl -portable to fill in the gaps. ok bcook beckOPENBSD_5_6
@ -0,0 +1,46 @@ | |||||
/* $OpenBSD: arc4random.h,v 1.1 2014/07/18 02:05:55 deraadt Exp $ */ | |||||
/* | |||||
* Copyright (c) 1996, David Mazieres <dm@uun.org> | |||||
* Copyright (c) 2008, Damien Miller <djm@openbsd.org> | |||||
* Copyright (c) 2013, Markus Friedl <markus@openbsd.org> | |||||
* | |||||
* Permission to use, copy, modify, and distribute this software for any | |||||
* purpose with or without fee is hereby granted, provided that the above | |||||
* copyright notice and this permission notice appear in all copies. | |||||
* | |||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |||||
*/ | |||||
/* | |||||
* Stub functions for portability. | |||||
*/ | |||||
static inline void * | |||||
_rs_allocate(size_t len) | |||||
{ | |||||
void *p; | |||||
if ((p = mmap(NULL, sizeof(*rs), PROT_READ|PROT_WRITE, | |||||
MAP_ANON|MAP_PRIVATE, -1, 0)) == MAP_FAILED) | |||||
return (NULL); | |||||
return (p); | |||||
} | |||||
static inline void | |||||
_rs_forkdetect(void) | |||||
{ | |||||
} | |||||
static inline void | |||||
_rs_forkdetectsetup(struct _rs *rs, size_t len) | |||||
{ | |||||
if (minherit(rs, len, MAP_INHERIT_ZERO) == -1) | |||||
abort(); | |||||
} |
@ -0,0 +1,66 @@ | |||||
/* $OpenBSD: arc4random_linux.h,v 1.1 2014/07/18 02:05:55 deraadt Exp $ */ | |||||
/* | |||||
* Copyright (c) 1996, David Mazieres <dm@uun.org> | |||||
* Copyright (c) 2008, Damien Miller <djm@openbsd.org> | |||||
* Copyright (c) 2013, Markus Friedl <markus@openbsd.org> | |||||
* | |||||
* Permission to use, copy, modify, and distribute this software for any | |||||
* purpose with or without fee is hereby granted, provided that the above | |||||
* copyright notice and this permission notice appear in all copies. | |||||
* | |||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |||||
*/ | |||||
/* | |||||
* Stub functions for portability. | |||||
*/ | |||||
static inline void * | |||||
_rs_allocate(size_t len) | |||||
{ | |||||
void *p; | |||||
if ((p = mmap(NULL, sizeof(*rs), PROT_READ|PROT_WRITE, | |||||
MAP_ANON|MAP_PRIVATE, -1, 0)) == MAP_FAILED) | |||||
return (NULL); | |||||
return (p); | |||||
} | |||||
static inline void | |||||
_rs_forkhandler(void) | |||||
{ | |||||
/* | |||||
* Race-free because we're running single-threaded in a new | |||||
* address space, and once allocated rs is never deallocated. | |||||
*/ | |||||
if (rs) | |||||
rs->rs_count = 0; | |||||
} | |||||
static inline void | |||||
_rs_forkdetect(void) | |||||
{ | |||||
static pid_t _rs_pid = 0; | |||||
pid_t pid = getpid(); | |||||
/* If a system lacks MAP_INHERIT_ZERO, resort to getpid() */ | |||||
if (_rs_pid == 0 || _rs_pid != pid) { | |||||
_rs_pid = pid; | |||||
if (rs) | |||||
rs->rs_count = 0; | |||||
} | |||||
} | |||||
static inline void | |||||
_rs_forkdetectsetup(struct _rs *rs, size_t len) | |||||
{ | |||||
_ARC4_ATFORK(_rs_forkhandler); | |||||
} | |||||
@ -0,0 +1,66 @@ | |||||
/* $OpenBSD: arc4random_osx.h,v 1.1 2014/07/18 02:05:55 deraadt Exp $ */ | |||||
/* | |||||
* Copyright (c) 1996, David Mazieres <dm@uun.org> | |||||
* Copyright (c) 2008, Damien Miller <djm@openbsd.org> | |||||
* Copyright (c) 2013, Markus Friedl <markus@openbsd.org> | |||||
* | |||||
* Permission to use, copy, modify, and distribute this software for any | |||||
* purpose with or without fee is hereby granted, provided that the above | |||||
* copyright notice and this permission notice appear in all copies. | |||||
* | |||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |||||
*/ | |||||
/* | |||||
* Stub functions for portability. | |||||
*/ | |||||
static inline void * | |||||
_rs_allocate(size_t len) | |||||
{ | |||||
void *p; | |||||
if ((p = mmap(NULL, sizeof(*rs), PROT_READ|PROT_WRITE, | |||||
MAP_ANON|MAP_PRIVATE, -1, 0)) == MAP_FAILED) | |||||
return (NULL); | |||||
return (p); | |||||
} | |||||
static inline void | |||||
_rs_forkhandler(void) | |||||
{ | |||||
/* | |||||
* Race-free because we're running single-threaded in a new | |||||
* address space, and once allocated rs is never deallocated. | |||||
*/ | |||||
if (rs) | |||||
rs->rs_count = 0; | |||||
} | |||||
static inline void | |||||
_rs_forkdetect(void) | |||||
{ | |||||
static pid_t _rs_pid = 0; | |||||
pid_t pid = getpid(); | |||||
/* If a system lacks MAP_INHERIT_ZERO, resort to getpid() */ | |||||
if (_rs_pid == 0 || _rs_pid != pid) { | |||||
_rs_pid = pid; | |||||
if (rs) | |||||
rs->rs_count = 0; | |||||
} | |||||
} | |||||
static inline void | |||||
_rs_forkdetectsetup(struct _rs *rs, size_t len) | |||||
{ | |||||
_ARC4_ATFORK(_rs_forkhandler); | |||||
} | |||||
@ -0,0 +1,66 @@ | |||||
/* $OpenBSD: arc4random_solaris.h,v 1.1 2014/07/18 02:05:55 deraadt Exp $ */ | |||||
/* | |||||
* Copyright (c) 1996, David Mazieres <dm@uun.org> | |||||
* Copyright (c) 2008, Damien Miller <djm@openbsd.org> | |||||
* Copyright (c) 2013, Markus Friedl <markus@openbsd.org> | |||||
* | |||||
* Permission to use, copy, modify, and distribute this software for any | |||||
* purpose with or without fee is hereby granted, provided that the above | |||||
* copyright notice and this permission notice appear in all copies. | |||||
* | |||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |||||
*/ | |||||
/* | |||||
* Stub functions for portability. | |||||
*/ | |||||
static inline void * | |||||
_rs_allocate(size_t len) | |||||
{ | |||||
void *p; | |||||
if ((p = mmap(NULL, sizeof(*rs), PROT_READ|PROT_WRITE, | |||||
MAP_ANON|MAP_PRIVATE, -1, 0)) == MAP_FAILED) | |||||
return (NULL); | |||||
return (p); | |||||
} | |||||
static inline void | |||||
_rs_forkhandler(void) | |||||
{ | |||||
/* | |||||
* Race-free because we're running single-threaded in a new | |||||
* address space, and once allocated rs is never deallocated. | |||||
*/ | |||||
if (rs) | |||||
rs->rs_count = 0; | |||||
} | |||||
static inline void | |||||
_rs_forkdetect(void) | |||||
{ | |||||
static pid_t _rs_pid = 0; | |||||
pid_t pid = getpid(); | |||||
/* If a system lacks MAP_INHERIT_ZERO, resort to getpid() */ | |||||
if (_rs_pid == 0 || _rs_pid != pid) { | |||||
_rs_pid = pid; | |||||
if (rs) | |||||
rs->rs_count = 0; | |||||
} | |||||
} | |||||
static inline void | |||||
_rs_forkdetectsetup(struct _rs *rs, size_t len) | |||||
{ | |||||
_ARC4_ATFORK(_rs_forkhandler); | |||||
} | |||||
@ -0,0 +1,45 @@ | |||||
/* $OpenBSD: arc4random_win.h,v 1.1 2014/07/18 02:05:55 deraadt Exp $ */ | |||||
/* | |||||
* Copyright (c) 1996, David Mazieres <dm@uun.org> | |||||
* Copyright (c) 2008, Damien Miller <djm@openbsd.org> | |||||
* Copyright (c) 2013, Markus Friedl <markus@openbsd.org> | |||||
* | |||||
* Permission to use, copy, modify, and distribute this software for any | |||||
* purpose with or without fee is hereby granted, provided that the above | |||||
* copyright notice and this permission notice appear in all copies. | |||||
* | |||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |||||
*/ | |||||
/* | |||||
* Stub functions for portability. | |||||
*/ | |||||
static inline void * | |||||
_rs_allocate(size_t len) | |||||
{ | |||||
return calloc(1, sizeof(*rs)); | |||||
} | |||||
static inline void | |||||
_rs_forkhandler(void) | |||||
{ | |||||
} | |||||
static inline void | |||||
_rs_forkdetect(void) | |||||
{ | |||||
} | |||||
static inline void | |||||
_rs_forkdetectsetup(struct _rs *rs, size_t len) | |||||
{ | |||||
} | |||||
@ -0,0 +1,66 @@ | |||||
/* $OpenBSD: arc4random_linux.h,v 1.1 2014/07/18 02:05:55 deraadt Exp $ */ | |||||
/* | |||||
* Copyright (c) 1996, David Mazieres <dm@uun.org> | |||||
* Copyright (c) 2008, Damien Miller <djm@openbsd.org> | |||||
* Copyright (c) 2013, Markus Friedl <markus@openbsd.org> | |||||
* | |||||
* Permission to use, copy, modify, and distribute this software for any | |||||
* purpose with or without fee is hereby granted, provided that the above | |||||
* copyright notice and this permission notice appear in all copies. | |||||
* | |||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |||||
*/ | |||||
/* | |||||
* Stub functions for portability. | |||||
*/ | |||||
static inline void * | |||||
_rs_allocate(size_t len) | |||||
{ | |||||
void *p; | |||||
if ((p = mmap(NULL, sizeof(*rs), PROT_READ|PROT_WRITE, | |||||
MAP_ANON|MAP_PRIVATE, -1, 0)) == MAP_FAILED) | |||||
return (NULL); | |||||
return (p); | |||||
} | |||||
static inline void | |||||
_rs_forkhandler(void) | |||||
{ | |||||
/* | |||||
* Race-free because we're running single-threaded in a new | |||||
* address space, and once allocated rs is never deallocated. | |||||
*/ | |||||
if (rs) | |||||
rs->rs_count = 0; | |||||
} | |||||
static inline void | |||||
_rs_forkdetect(void) | |||||
{ | |||||
static pid_t _rs_pid = 0; | |||||
pid_t pid = getpid(); | |||||
/* If a system lacks MAP_INHERIT_ZERO, resort to getpid() */ | |||||
if (_rs_pid == 0 || _rs_pid != pid) { | |||||
_rs_pid = pid; | |||||
if (rs) | |||||
rs->rs_count = 0; | |||||
} | |||||
} | |||||
static inline void | |||||
_rs_forkdetectsetup(struct _rs *rs, size_t len) | |||||
{ | |||||
_ARC4_ATFORK(_rs_forkhandler); | |||||
} | |||||
@ -0,0 +1,66 @@ | |||||
/* $OpenBSD: arc4random_osx.h,v 1.1 2014/07/18 02:05:55 deraadt Exp $ */ | |||||
/* | |||||
* Copyright (c) 1996, David Mazieres <dm@uun.org> | |||||
* Copyright (c) 2008, Damien Miller <djm@openbsd.org> | |||||
* Copyright (c) 2013, Markus Friedl <markus@openbsd.org> | |||||
* | |||||
* Permission to use, copy, modify, and distribute this software for any | |||||
* purpose with or without fee is hereby granted, provided that the above | |||||
* copyright notice and this permission notice appear in all copies. | |||||
* | |||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |||||
*/ | |||||
/* | |||||
* Stub functions for portability. | |||||
*/ | |||||
static inline void * | |||||
_rs_allocate(size_t len) | |||||
{ | |||||
void *p; | |||||
if ((p = mmap(NULL, sizeof(*rs), PROT_READ|PROT_WRITE, | |||||
MAP_ANON|MAP_PRIVATE, -1, 0)) == MAP_FAILED) | |||||
return (NULL); | |||||
return (p); | |||||
} | |||||
static inline void | |||||
_rs_forkhandler(void) | |||||
{ | |||||
/* | |||||
* Race-free because we're running single-threaded in a new | |||||
* address space, and once allocated rs is never deallocated. | |||||
*/ | |||||
if (rs) | |||||
rs->rs_count = 0; | |||||
} | |||||
static inline void | |||||
_rs_forkdetect(void) | |||||
{ | |||||
static pid_t _rs_pid = 0; | |||||
pid_t pid = getpid(); | |||||
/* If a system lacks MAP_INHERIT_ZERO, resort to getpid() */ | |||||
if (_rs_pid == 0 || _rs_pid != pid) { | |||||
_rs_pid = pid; | |||||
if (rs) | |||||
rs->rs_count = 0; | |||||
} | |||||
} | |||||
static inline void | |||||
_rs_forkdetectsetup(struct _rs *rs, size_t len) | |||||
{ | |||||
_ARC4_ATFORK(_rs_forkhandler); | |||||
} | |||||
@ -0,0 +1,66 @@ | |||||
/* $OpenBSD: arc4random_solaris.h,v 1.1 2014/07/18 02:05:55 deraadt Exp $ */ | |||||
/* | |||||
* Copyright (c) 1996, David Mazieres <dm@uun.org> | |||||
* Copyright (c) 2008, Damien Miller <djm@openbsd.org> | |||||
* Copyright (c) 2013, Markus Friedl <markus@openbsd.org> | |||||
* | |||||
* Permission to use, copy, modify, and distribute this software for any | |||||
* purpose with or without fee is hereby granted, provided that the above | |||||
* copyright notice and this permission notice appear in all copies. | |||||
* | |||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |||||
*/ | |||||
/* | |||||
* Stub functions for portability. | |||||
*/ | |||||
static inline void * | |||||
_rs_allocate(size_t len) | |||||
{ | |||||
void *p; | |||||
if ((p = mmap(NULL, sizeof(*rs), PROT_READ|PROT_WRITE, | |||||
MAP_ANON|MAP_PRIVATE, -1, 0)) == MAP_FAILED) | |||||
return (NULL); | |||||
return (p); | |||||
} | |||||
static inline void | |||||
_rs_forkhandler(void) | |||||
{ | |||||
/* | |||||
* Race-free because we're running single-threaded in a new | |||||
* address space, and once allocated rs is never deallocated. | |||||
*/ | |||||
if (rs) | |||||
rs->rs_count = 0; | |||||
} | |||||
static inline void | |||||
_rs_forkdetect(void) | |||||
{ | |||||
static pid_t _rs_pid = 0; | |||||
pid_t pid = getpid(); | |||||
/* If a system lacks MAP_INHERIT_ZERO, resort to getpid() */ | |||||
if (_rs_pid == 0 || _rs_pid != pid) { | |||||
_rs_pid = pid; | |||||
if (rs) | |||||
rs->rs_count = 0; | |||||
} | |||||
} | |||||
static inline void | |||||
_rs_forkdetectsetup(struct _rs *rs, size_t len) | |||||
{ | |||||
_ARC4_ATFORK(_rs_forkhandler); | |||||
} | |||||
@ -0,0 +1,45 @@ | |||||
/* $OpenBSD: arc4random_win.h,v 1.1 2014/07/18 02:05:55 deraadt Exp $ */ | |||||
/* | |||||
* Copyright (c) 1996, David Mazieres <dm@uun.org> | |||||
* Copyright (c) 2008, Damien Miller <djm@openbsd.org> | |||||
* Copyright (c) 2013, Markus Friedl <markus@openbsd.org> | |||||
* | |||||
* Permission to use, copy, modify, and distribute this software for any | |||||
* purpose with or without fee is hereby granted, provided that the above | |||||
* copyright notice and this permission notice appear in all copies. | |||||
* | |||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |||||
*/ | |||||
/* | |||||
* Stub functions for portability. | |||||
*/ | |||||
static inline void * | |||||
_rs_allocate(size_t len) | |||||
{ | |||||
return calloc(1, sizeof(*rs)); | |||||
} | |||||
static inline void | |||||
_rs_forkhandler(void) | |||||
{ | |||||
} | |||||
static inline void | |||||
_rs_forkdetect(void) | |||||
{ | |||||
} | |||||
static inline void | |||||
_rs_forkdetectsetup(struct _rs *rs, size_t len) | |||||
{ | |||||
} | |||||