Mistake on this page?
Report an issue in GitHub or email us
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
30 extern "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  */
50 enum 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.
Important Information for this Arm website

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies. If you are not happy with the use of these cookies, please review our Cookie Policy to learn how they can be disabled. By disabling cookies, some features of the site will not work.