xref: /optee_os/lib/libmbedtls/core/mbed_helpers.h (revision 32b3180828fa15a49ccc86ecb4be9d274c140c89)
16630b846SJerome Forissier /* SPDX-License-Identifier: BSD-2-Clause */
26630b846SJerome Forissier /*
36630b846SJerome Forissier  * Copyright (C) 2018, ARM Limited
46630b846SJerome Forissier  * Copyright (C) 2019, Linaro Limited
56630b846SJerome Forissier  */
66630b846SJerome Forissier 
76630b846SJerome Forissier #ifndef MBED_HELPERS_H
86630b846SJerome Forissier #define MBED_HELPERS_H
96630b846SJerome Forissier 
106630b846SJerome Forissier #include <crypto/crypto.h>
119c525fe4SJerome Forissier #include <mbedtls/aes.h>
12*c84eee63SJerome Forissier #include <mbedtls/bignum.h>
136630b846SJerome Forissier #include <mbedtls/ctr_drbg.h>
14*c84eee63SJerome Forissier #include <tee_api_types.h>
156630b846SJerome Forissier 
mbd_rand(void * rng_state __unused,unsigned char * output,size_t len)166630b846SJerome Forissier static inline int mbd_rand(void *rng_state __unused, unsigned char *output,
176630b846SJerome Forissier 			size_t len)
186630b846SJerome Forissier {
196630b846SJerome Forissier 	if (crypto_rng_read(output, len))
206630b846SJerome Forissier 		return MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED;
216630b846SJerome Forissier 	return 0;
226630b846SJerome Forissier }
236630b846SJerome Forissier 
mbed_copy_mbedtls_aes_context(mbedtls_aes_context * dst,mbedtls_aes_context * src)249c525fe4SJerome Forissier static inline void mbed_copy_mbedtls_aes_context(mbedtls_aes_context *dst,
259c525fe4SJerome Forissier 						 mbedtls_aes_context *src)
269c525fe4SJerome Forissier {
279c525fe4SJerome Forissier 	*dst = *src;
289c525fe4SJerome Forissier }
299c525fe4SJerome Forissier 
30*c84eee63SJerome Forissier TEE_Result mbed_gen_random_upto(mbedtls_mpi *n, mbedtls_mpi *max);
316630b846SJerome Forissier #endif /*MBED_HELPERS_H*/
32