xref: /rk3399_ARM-atf/include/lib/psa/rse_platform_api.h (revision 8a41106c83961029c2d251f390c091d398c100a6)
13857898fSTamas Ban /*
23857898fSTamas Ban  * Copyright (c) 2023, Arm Limited. All rights reserved.
33857898fSTamas Ban  *
43857898fSTamas Ban  * SPDX-License-Identifier: BSD-3-Clause
53857898fSTamas Ban  *
63857898fSTamas Ban  */
73857898fSTamas Ban 
8d797665cSTamas Ban #ifndef RSE_PLATFORM_API_H
9d797665cSTamas Ban #define RSE_PLATFORM_API_H
103857898fSTamas Ban 
113857898fSTamas Ban #include <stdint.h>
123857898fSTamas Ban 
133857898fSTamas Ban #include "psa/error.h"
14*8a41106cSLeo Yan #if CRYPTO_SUPPORT
15d797665cSTamas Ban #include <rse_crypto_defs.h>
16*8a41106cSLeo Yan #endif
173857898fSTamas Ban 
18d797665cSTamas Ban #define RSE_PLATFORM_API_ID_NV_READ       (1010)
19d797665cSTamas Ban #define RSE_PLATFORM_API_ID_NV_INCREMENT  (1011)
203857898fSTamas Ban 
213857898fSTamas Ban /*
223857898fSTamas Ban  * Increments the given non-volatile (NV) counter by one
233857898fSTamas Ban  *
243857898fSTamas Ban  * counter_id	NV counter ID.
253857898fSTamas Ban  *
263857898fSTamas Ban  * PSA_SUCCESS if the value is read correctly. Otherwise,
273857898fSTamas Ban  *	it returns a PSA_ERROR.
283857898fSTamas Ban  */
293857898fSTamas Ban psa_status_t
30d797665cSTamas Ban rse_platform_nv_counter_increment(uint32_t counter_id);
313857898fSTamas Ban 
323857898fSTamas Ban /*
333857898fSTamas Ban  * Reads the given non-volatile (NV) counter
343857898fSTamas Ban  *
353857898fSTamas Ban  * counter_id	NV counter ID.
363857898fSTamas Ban  * size		Size of the buffer to store NV counter value
373857898fSTamas Ban  *			in bytes.
383857898fSTamas Ban  * val		Pointer to store the current NV counter value.
393857898fSTamas Ban  *
403857898fSTamas Ban  * PSA_SUCCESS if the value is read correctly. Otherwise,
413857898fSTamas Ban  *	it returns a PSA_ERROR.
423857898fSTamas Ban  */
433857898fSTamas Ban psa_status_t
44d797665cSTamas Ban rse_platform_nv_counter_read(uint32_t counter_id,
453857898fSTamas Ban 		uint32_t size, uint8_t *val);
463857898fSTamas Ban 
47*8a41106cSLeo Yan #if CRYPTO_SUPPORT
483857898fSTamas Ban /*
493857898fSTamas Ban  * Reads the public key or the public part of a key pair in binary format.
503857898fSTamas Ban  *
513857898fSTamas Ban  * key		Identifier of the key to export.
523857898fSTamas Ban  * data		Buffer where the key data is to be written.
533857898fSTamas Ban  * data_size	Size of the data buffer in bytes.
543857898fSTamas Ban  * data_length	On success, the number of bytes that make up the key data.
553857898fSTamas Ban  *
563857898fSTamas Ban  * PSA_SUCCESS if the value is read correctly. Otherwise,
573857898fSTamas Ban  *	it returns a PSA_ERROR.
583857898fSTamas Ban  */
593857898fSTamas Ban psa_status_t
60d797665cSTamas Ban rse_platform_key_read(enum rse_key_id_builtin_t key, uint8_t *data,
613857898fSTamas Ban 		size_t data_size, size_t *data_length);
62*8a41106cSLeo Yan #endif
633857898fSTamas Ban 
64d797665cSTamas Ban #endif /* RSE_PLATFORM_API_H */
65