Mbed OS Reference
Loading...
Searching...
No Matches
tfm_plat_boot_seed.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2018, Arm Limited. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 *
6 */
7
8#ifndef __TFM_PLAT_BOOT_SEED_H__
9#define __TFM_PLAT_BOOT_SEED_H__
10/**
11 * \file tfm_plat_boot_seed.h
12 *
13 * Boot seed is used by a validating entity to ensure multiple reports were
14 * generated in the same boot session. Boot seed is a random number, generated
15 * only once during a boot cycle and its value is constant in the same cycle.
16 * Size recommendation is 256-bit to meet the statistically improbable property.
17 * Boot seed can be generated by secure boot loader an included to the measured
18 * boot state or can be generated by PRoT SW.
19 */
20
21/**
22 * \note The interfaces defined in this file must be implemented for each
23 * SoC.
24 */
25
26#include <stdint.h>
27#include "tfm_plat_defs.h"
28
29#ifdef __cplusplus
30extern "C" {
31#endif
32
33/*!
34 * \def BOOT_SEED_SIZE
35 *
36 * \brief Size of boot seed in bytes.
37 */
38#define BOOT_SEED_SIZE (32u)
39
40/**
41 * \brief Gets the boot seed, which is a constant random number during a boot
42 * cycle.
43 *
44 * \param[in] size The required size of boot seed in bytes
45 * \param[out] buf Pointer to the buffer to store boot seed
46 *
47 * \return TFM_PLAT_ERR_SUCCESS if the value is generated correctly. Otherwise,
48 * it returns TFM_PLAT_ERR_SYSTEM_ERR.
49 */
50enum tfm_plat_err_t tfm_plat_get_boot_seed(uint32_t size, uint8_t *buf);
51
52#ifdef __cplusplus
53}
54#endif
55
56#endif /* __TFM_PLAT_BOOT_SEED_H__ */
enum tfm_plat_err_t tfm_plat_get_boot_seed(uint32_t size, uint8_t *buf)
Gets the boot seed, which is a constant random number during a boot cycle.
tfm_plat_err_t
Error enum for TFM platform functions.
Definition: tfm_plat_defs.h:23