1/*
2 * Copyright 2018-2022, Haiku, Inc. All rights reserved.
3 * Distributed under the terms of the MIT License.
4 */
5
6extern "C" {
7#include <compat/sys/libkern.h>
8}
9
10#include <util/Random.h>
11
12
13u_int
14read_random(void* buf, u_int len)
15{
16	uint8* bufs = (uint8*)buf;
17	for (int i = 0; i < len; i++)
18		bufs[i] = secure_get_random<uint8>();
19	return len;
20}
21
22
23void
24arc4rand(void *ptr, u_int len, int reseed)
25{
26	read_random(ptr, len);
27}
28
29
30uint32_t
31arc4random(void)
32{
33	uint32_t ret;
34
35	arc4rand(&ret, sizeof ret, 0);
36	return ret;
37}
38
39
40void
41arc4random_buf(void *ptr, size_t len)
42{
43	arc4rand(ptr, len, 0);
44}
45