blob: d444b94b8a3a7ff4305e7bec2d7909897b70a3d0 [file] [log] [blame]
Ioannis Glaropoulos829aa752021-06-15 12:37:02 +02001/*
Antonio de Angelis202425a2022-04-06 11:13:15 +01002 * Copyright (c) 2019-2022, Arm Limited. All rights reserved.
Ioannis Glaropoulos829aa752021-06-15 12:37:02 +02003 * Copyright (c) 2021, Nordic Semiconductor ASA.
4 *
5 * SPDX-License-Identifier: BSD-3-Clause
6 *
7 */
8
9#include <stddef.h>
10#include <stdint.h>
11
12#include "tfm_mbedcrypto_include.h"
13
14#include "tfm_crypto_api.h"
15#include "tfm_crypto_defs.h"
Ioannis Glaropoulos829aa752021-06-15 12:37:02 +020016
17/*!
Antonio de Angelis202425a2022-04-06 11:13:15 +010018 * \addtogroup tfm_crypto_api_shim_layer
Ioannis Glaropoulos829aa752021-06-15 12:37:02 +020019 *
20 */
21
22/*!@{*/
Antonio de Angelis202425a2022-04-06 11:13:15 +010023psa_status_t tfm_crypto_random_interface(psa_invec in_vec[],
24 psa_outvec out_vec[])
Ioannis Glaropoulos829aa752021-06-15 12:37:02 +020025{
26#ifdef TFM_CRYPTO_RNG_MODULE_DISABLED
David Hu1eb11942022-07-05 11:36:34 +080027 (void)in_vec;
28 (void)out_vec;
29
Ioannis Glaropoulos829aa752021-06-15 12:37:02 +020030 return PSA_ERROR_NOT_SUPPORTED;
David Hu1eb11942022-07-05 11:36:34 +080031#else
Ioannis Glaropoulos829aa752021-06-15 12:37:02 +020032 uint8_t *output = out_vec[0].base;
33 size_t output_size = out_vec[0].len;
34
35 return psa_generate_random(output, output_size);
David Hu1eb11942022-07-05 11:36:34 +080036#endif
Ioannis Glaropoulos829aa752021-06-15 12:37:02 +020037}
Ioannis Glaropoulos829aa752021-06-15 12:37:02 +020038/*!@}*/