1*b80856cdSbeck /* $OpenBSD: rand_lib.c,v 1.24 2024/04/10 14:53:01 beck Exp $ */
2ff5e25a6Stedu /*
3ff5e25a6Stedu * Copyright (c) 2014 Ted Unangst <tedu@openbsd.org>
4913ec974Sbeck *
5ff5e25a6Stedu * Permission to use, copy, modify, and distribute this software for any
6ff5e25a6Stedu * purpose with or without fee is hereby granted, provided that the above
7ff5e25a6Stedu * copyright notice and this permission notice appear in all copies.
8913ec974Sbeck *
9ff5e25a6Stedu * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10ff5e25a6Stedu * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11ff5e25a6Stedu * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12ff5e25a6Stedu * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13ff5e25a6Stedu * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14ff5e25a6Stedu * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15ff5e25a6Stedu * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16913ec974Sbeck */
178cf4d6a6Sjsing
18ef624301Sjsing #include <stdlib.h>
19ef624301Sjsing
208cf4d6a6Sjsing #include <openssl/opensslconf.h>
218cf4d6a6Sjsing
22913ec974Sbeck #include <openssl/rand.h>
235cdd308eSdjm
24ff5e25a6Stedu /*
25ff5e25a6Stedu * The useful functions in this file are at the bottom.
26ff5e25a6Stedu */
27ff5e25a6Stedu int
RAND_set_rand_method(const RAND_METHOD * meth)28ff5e25a6Stedu RAND_set_rand_method(const RAND_METHOD *meth)
29913ec974Sbeck {
30c109e398Sbeck return 1;
31c109e398Sbeck }
3293f18f11Sbeck LCRYPTO_ALIAS(RAND_set_rand_method);
33913ec974Sbeck
34ff5e25a6Stedu const RAND_METHOD *
RAND_get_rand_method(void)35ff5e25a6Stedu RAND_get_rand_method(void)
36913ec974Sbeck {
37ff5e25a6Stedu return NULL;
38da347917Sbeck }
3993f18f11Sbeck LCRYPTO_ALIAS(RAND_get_rand_method);
40ff5e25a6Stedu
41ff5e25a6Stedu RAND_METHOD *
RAND_SSLeay(void)42ff5e25a6Stedu RAND_SSLeay(void)
43ff5e25a6Stedu {
44ff5e25a6Stedu return NULL;
45da347917Sbeck }
4693f18f11Sbeck LCRYPTO_ALIAS(RAND_SSLeay);
47da347917Sbeck
48ff5e25a6Stedu void
RAND_cleanup(void)49ff5e25a6Stedu RAND_cleanup(void)
50913ec974Sbeck {
51ff5e25a6Stedu
52913ec974Sbeck }
53*b80856cdSbeck LCRYPTO_ALIAS(RAND_cleanup);
54913ec974Sbeck
55ff5e25a6Stedu void
RAND_seed(const void * buf,int num)56ff5e25a6Stedu RAND_seed(const void *buf, int num)
57913ec974Sbeck {
58ff5e25a6Stedu
59913ec974Sbeck }
60*b80856cdSbeck LCRYPTO_ALIAS(RAND_seed);
61913ec974Sbeck
62ff5e25a6Stedu void
RAND_add(const void * buf,int num,double entropy)63ff5e25a6Stedu RAND_add(const void *buf, int num, double entropy)
64913ec974Sbeck {
65ff5e25a6Stedu
66913ec974Sbeck }
67*b80856cdSbeck LCRYPTO_ALIAS(RAND_add);
68913ec974Sbeck
69ff5e25a6Stedu int
RAND_status(void)70ff5e25a6Stedu RAND_status(void)
71ba5406e9Sbeck {
72ff5e25a6Stedu return 1;
73ba5406e9Sbeck }
74*b80856cdSbeck LCRYPTO_ALIAS(RAND_status);
75ba5406e9Sbeck
76ff5e25a6Stedu int
RAND_poll(void)77ff5e25a6Stedu RAND_poll(void)
78ba5406e9Sbeck {
79ff5e25a6Stedu return 1;
80ba5406e9Sbeck }
81*b80856cdSbeck LCRYPTO_ALIAS(RAND_poll);
82f6e3f262Sbeck
83ff5e25a6Stedu /*
84ff5e25a6Stedu * Hurray. You've made it to the good parts.
85ff5e25a6Stedu */
86ff5e25a6Stedu int
RAND_bytes(unsigned char * buf,int num)87ff5e25a6Stedu RAND_bytes(unsigned char *buf, int num)
88f6e3f262Sbeck {
89ff5e25a6Stedu if (num > 0)
90ff5e25a6Stedu arc4random_buf(buf, num);
91ff5e25a6Stedu return 1;
92ff5e25a6Stedu }
93*b80856cdSbeck LCRYPTO_ALIAS(RAND_bytes);
94ff5e25a6Stedu
95ff5e25a6Stedu int
RAND_pseudo_bytes(unsigned char * buf,int num)96ff5e25a6Stedu RAND_pseudo_bytes(unsigned char *buf, int num)
97ff5e25a6Stedu {
98ff5e25a6Stedu if (num > 0)
99ff5e25a6Stedu arc4random_buf(buf, num);
100ff5e25a6Stedu return 1;
101f6e3f262Sbeck }
102*b80856cdSbeck LCRYPTO_ALIAS(RAND_pseudo_bytes);
103