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