/* * Copyright (c) 1996, David Mazieres * Copyright (c) 2008, Damien Miller * Copyright (c) 2013, Markus Friedl * Copyright (c) 2014, Theo de Raadt * Copyright (c) 2015, Sudhi Herle * * 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. */ #ifndef ___ARC4RANDOM_H_5000666_1462841354__ #define ___ARC4RANDOM_H_5000666_1462841354__ 1 /* Provide C linkage for symbols declared here .. */ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #include #include /* * On OpenBSD - we should NOT use the same symbol names. OpenBSD * libc defines these, and the rest of libc uses this - from dynamic * loading, to malloc() to printf() etc. * * For some fun, don't redefine the names - and see what happens :-) */ #ifdef __OpenBSD__ #define arc4random mt_arc4random #define arc4random_uniform mt_arc4random_uniform #define arc4random_buf mt_arc4random_buf #endif /* __OpenBSD__ */ /* * Initialize generator with getentropy */ extern void arc4random_init(int (*) (void*, size_t)); /* * Generate and return a random 32-bit number */ extern uint32_t arc4random(void); /* * Generate and return a uniformly random 32-bit quantity with an * upper bound of 'upper_bound' */ extern uint32_t arc4random_uniform(uint32_t upper_bound); /* * Generate 'n' random bytes and put them in 'buf'. */ extern void arc4random_buf(void* buf, size_t n); #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* ! ___ARC4RANDOM_H_5000666_1462841354__ */ /* EOF */