blob: 37cc18e7ac53040d161c101bfdc925a0b831f151 [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
Xinyu Zhangd755b822022-10-25 11:18:09 +080012#include "config_crypto.h"
Ioannis Glaropoulos829aa752021-06-15 12:37:02 +020013#include "tfm_mbedcrypto_include.h"
14
15#include "tfm_crypto_api.h"
16#include "tfm_crypto_defs.h"
Ioannis Glaropoulos829aa752021-06-15 12:37:02 +020017
18/*!
Antonio de Angelis202425a2022-04-06 11:13:15 +010019 * \addtogroup tfm_crypto_api_shim_layer
Ioannis Glaropoulos829aa752021-06-15 12:37:02 +020020 *
21 */
22
23/*!@{*/
Antonio de Angelis202425a2022-04-06 11:13:15 +010024psa_status_t tfm_crypto_random_interface(psa_invec in_vec[],
25 psa_outvec out_vec[])
Ioannis Glaropoulos829aa752021-06-15 12:37:02 +020026{
Jianliang Shen78ca8d42022-11-16 17:33:18 +080027#if !CRYPTO_RNG_MODULE_ENABLED
David Hu1eb11942022-07-05 11:36:34 +080028 (void)in_vec;
29 (void)out_vec;
30
Ioannis Glaropoulos829aa752021-06-15 12:37:02 +020031 return PSA_ERROR_NOT_SUPPORTED;
David Hu1eb11942022-07-05 11:36:34 +080032#else
Ioannis Glaropoulos829aa752021-06-15 12:37:02 +020033 uint8_t *output = out_vec[0].base;
34 size_t output_size = out_vec[0].len;
35
36 return psa_generate_random(output, output_size);
David Hu1eb11942022-07-05 11:36:34 +080037#endif
Ioannis Glaropoulos829aa752021-06-15 12:37:02 +020038}
Ioannis Glaropoulos829aa752021-06-15 12:37:02 +020039/*!@}*/