xref: /rk3399_ARM-atf/include/lib/psa/rse_platform_api.h (revision 3857898f661cab5729a1eee283f2d773a21302a6)
1*3857898fSTamas Ban /*
2*3857898fSTamas Ban  * Copyright (c) 2023, Arm Limited. All rights reserved.
3*3857898fSTamas Ban  *
4*3857898fSTamas Ban  * SPDX-License-Identifier: BSD-3-Clause
5*3857898fSTamas Ban  *
6*3857898fSTamas Ban  */
7*3857898fSTamas Ban 
8*3857898fSTamas Ban #ifndef RSS_PLATFORM_API_H
9*3857898fSTamas Ban #define RSS_PLATFORM_API_H
10*3857898fSTamas Ban 
11*3857898fSTamas Ban #include <stdint.h>
12*3857898fSTamas Ban 
13*3857898fSTamas Ban #include "psa/error.h"
14*3857898fSTamas Ban #include <rss_crypto_defs.h>
15*3857898fSTamas Ban 
16*3857898fSTamas Ban #define RSS_PLATFORM_API_ID_NV_READ       (1010)
17*3857898fSTamas Ban #define RSS_PLATFORM_API_ID_NV_INCREMENT  (1011)
18*3857898fSTamas Ban 
19*3857898fSTamas Ban /*
20*3857898fSTamas Ban  * Increments the given non-volatile (NV) counter by one
21*3857898fSTamas Ban  *
22*3857898fSTamas Ban  * counter_id	NV counter ID.
23*3857898fSTamas Ban  *
24*3857898fSTamas Ban  * PSA_SUCCESS if the value is read correctly. Otherwise,
25*3857898fSTamas Ban  *	it returns a PSA_ERROR.
26*3857898fSTamas Ban  */
27*3857898fSTamas Ban psa_status_t
28*3857898fSTamas Ban rss_platform_nv_counter_increment(uint32_t counter_id);
29*3857898fSTamas Ban 
30*3857898fSTamas Ban /*
31*3857898fSTamas Ban  * Reads the given non-volatile (NV) counter
32*3857898fSTamas Ban  *
33*3857898fSTamas Ban  * counter_id	NV counter ID.
34*3857898fSTamas Ban  * size		Size of the buffer to store NV counter value
35*3857898fSTamas Ban  *			in bytes.
36*3857898fSTamas Ban  * val		Pointer to store the current NV counter value.
37*3857898fSTamas Ban  *
38*3857898fSTamas Ban  * PSA_SUCCESS if the value is read correctly. Otherwise,
39*3857898fSTamas Ban  *	it returns a PSA_ERROR.
40*3857898fSTamas Ban  */
41*3857898fSTamas Ban psa_status_t
42*3857898fSTamas Ban rss_platform_nv_counter_read(uint32_t counter_id,
43*3857898fSTamas Ban 		uint32_t size, uint8_t *val);
44*3857898fSTamas Ban 
45*3857898fSTamas Ban /*
46*3857898fSTamas Ban  * Reads the public key or the public part of a key pair in binary format.
47*3857898fSTamas Ban  *
48*3857898fSTamas Ban  * key		Identifier of the key to export.
49*3857898fSTamas Ban  * data		Buffer where the key data is to be written.
50*3857898fSTamas Ban  * data_size	Size of the data buffer in bytes.
51*3857898fSTamas Ban  * data_length	On success, the number of bytes that make up the key data.
52*3857898fSTamas Ban  *
53*3857898fSTamas Ban  * PSA_SUCCESS if the value is read correctly. Otherwise,
54*3857898fSTamas Ban  *	it returns a PSA_ERROR.
55*3857898fSTamas Ban  */
56*3857898fSTamas Ban psa_status_t
57*3857898fSTamas Ban rss_platform_key_read(enum rss_key_id_builtin_t key, uint8_t *data,
58*3857898fSTamas Ban 		size_t data_size, size_t *data_length);
59*3857898fSTamas Ban 
60*3857898fSTamas Ban #endif /* RSS_PLATFORM_API_H */
61