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> 6*ea6cd913SJens Wiklander #include <rng_support.h> 76e954a6eSJens Wiklander #include <tee/tee_cryp_utl.h> 86e954a6eSJens Wiklander #include <types_ext.h> 96e954a6eSJens Wiklander 106e954a6eSJens Wiklander TEE_Result __weak crypto_rng_init(const void *data __unused, 116e954a6eSJens Wiklander size_t dlen __unused) 126e954a6eSJens Wiklander { 136e954a6eSJens Wiklander return TEE_SUCCESS; 146e954a6eSJens Wiklander } 156e954a6eSJens Wiklander 166e954a6eSJens Wiklander void __weak crypto_rng_add_event(enum crypto_rng_src sid __unused, 176e954a6eSJens Wiklander unsigned int *pnum __unused, 186e954a6eSJens Wiklander const void *data __unused, 196e954a6eSJens Wiklander size_t dlen __unused) 206e954a6eSJens Wiklander { 216e954a6eSJens Wiklander } 226e954a6eSJens Wiklander 236e954a6eSJens Wiklander TEE_Result __weak crypto_rng_read(void *buf, size_t blen) 246e954a6eSJens Wiklander { 25*ea6cd913SJens Wiklander uint8_t *b = buf; 26*ea6cd913SJens Wiklander size_t n; 27*ea6cd913SJens Wiklander 28*ea6cd913SJens Wiklander if (!b) 29*ea6cd913SJens Wiklander return TEE_ERROR_BAD_PARAMETERS; 30*ea6cd913SJens Wiklander 31*ea6cd913SJens Wiklander for (n = 0; n < blen; n++) 32*ea6cd913SJens Wiklander b[n] = hw_get_random_byte(); 33*ea6cd913SJens Wiklander 34*ea6cd913SJens Wiklander return TEE_SUCCESS; 356e954a6eSJens Wiklander } 366e954a6eSJens Wiklander 37