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