1 // SPDX-License-Identifier: BSD-2-Clause
2 /* Copyright (c) 2018, Linaro Limited */
3 
4 #include <compiler.h>
5 #include <crypto/crypto.h>
6 #include <rng_support.h>
7 #include <tee/tee_cryp_utl.h>
8 #include <types_ext.h>
9 
crypto_rng_init(const void * data __unused,size_t dlen __unused)10 TEE_Result __weak crypto_rng_init(const void *data __unused,
11 				  size_t dlen __unused)
12 {
13 	return TEE_SUCCESS;
14 }
15 
crypto_rng_add_event(enum crypto_rng_src sid __unused,unsigned int * pnum __unused,const void * data __unused,size_t dlen __unused)16 void __weak crypto_rng_add_event(enum crypto_rng_src sid __unused,
17 				 unsigned int *pnum __unused,
18 				 const void *data __unused,
19 				 size_t dlen __unused)
20 {
21 }
22 
crypto_rng_read(void * buf,size_t blen)23 TEE_Result __weak crypto_rng_read(void *buf, size_t blen)
24 {
25 	uint8_t *b = buf;
26 	size_t n;
27 
28 	if (!b)
29 		return TEE_ERROR_BAD_PARAMETERS;
30 
31 	for (n = 0; n < blen; n++)
32 		b[n] = hw_get_random_byte();
33 
34 	return TEE_SUCCESS;
35 }
36 
37