summaryrefslogtreecommitdiff
path: root/ecp/src/crypto/arc4random/arc4random.h
diff options
context:
space:
mode:
Diffstat (limited to 'ecp/src/crypto/arc4random/arc4random.h')
-rwxr-xr-xecp/src/crypto/arc4random/arc4random.h78
1 files changed, 78 insertions, 0 deletions
diff --git a/ecp/src/crypto/arc4random/arc4random.h b/ecp/src/crypto/arc4random/arc4random.h
new file mode 100755
index 0000000..e281a89
--- /dev/null
+++ b/ecp/src/crypto/arc4random/arc4random.h
@@ -0,0 +1,78 @@
+/*
+ * Copyright (c) 1996, David Mazieres <dm@uun.org>
+ * Copyright (c) 2008, Damien Miller <djm@openbsd.org>
+ * Copyright (c) 2013, Markus Friedl <markus@openbsd.org>
+ * Copyright (c) 2014, Theo de Raadt <deraadt@openbsd.org>
+ * Copyright (c) 2015, Sudhi Herle <sudhi@herle.net>
+ *
+ * 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 <stdint.h>
+#include <sys/types.h>
+
+/*
+ * 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 */