16e954a6eSJens Wiklander // SPDX-License-Identifier: BSD-2-Clause
26e954a6eSJens Wiklander /* Copyright (c) 2018, Linaro Limited */
36e954a6eSJens Wiklander
46e954a6eSJens Wiklander #include <compiler.h>
56e954a6eSJens Wiklander #include <crypto/crypto.h>
660296dffSAndrew Davis #include <kernel/panic.h>
7ea6cd913SJens Wiklander #include <rng_support.h>
86e954a6eSJens Wiklander #include <tee/tee_cryp_utl.h>
96e954a6eSJens Wiklander #include <types_ext.h>
106e954a6eSJens Wiklander
11391a3854SAndrew Davis /* This is a HW RNG, no need for seeding */
crypto_rng_init(const void * data __unused,size_t dlen __unused)12*191f2ed4SAndrew Davis TEE_Result crypto_rng_init(const void *data __unused, size_t dlen __unused)
136e954a6eSJens Wiklander {
146e954a6eSJens Wiklander return TEE_SUCCESS;
156e954a6eSJens Wiklander }
166e954a6eSJens Wiklander
17391a3854SAndrew Davis /* This is a HW RNG, no need to add entropy */
crypto_rng_add_event(enum crypto_rng_src sid __unused,unsigned int * pnum __unused,const void * data __unused,size_t dlen __unused)18*191f2ed4SAndrew Davis void crypto_rng_add_event(enum crypto_rng_src sid __unused,
196e954a6eSJens Wiklander unsigned int *pnum __unused,
206e954a6eSJens Wiklander const void *data __unused,
216e954a6eSJens Wiklander size_t dlen __unused)
226e954a6eSJens Wiklander {
236e954a6eSJens Wiklander }
246e954a6eSJens Wiklander
crypto_rng_read(void * buf,size_t blen)25*191f2ed4SAndrew Davis TEE_Result crypto_rng_read(void *buf, size_t blen)
266e954a6eSJens Wiklander {
27391a3854SAndrew Davis if (!buf)
28ea6cd913SJens Wiklander return TEE_ERROR_BAD_PARAMETERS;
29ea6cd913SJens Wiklander
30391a3854SAndrew Davis return hw_get_random_bytes(buf, blen);
316e954a6eSJens Wiklander }
32