Mbed OS Reference
Loading...
Searching...
No Matches
psa_prot_internal_storage.h File Reference

This file describes the PSA Internal Trusted Storage API. More...

#include <stddef.h>
#include <stdint.h>
#include "psa/error.h"
#include "psa/storage_common.h"
#include "mbed_toolchain.h"

Go to the source code of this file.

Macros

#define PSA_ITS_API_VERSION_MAJOR   1
 The major version number of the PSA ITS API. More...
 
#define PSA_ITS_API_VERSION_MINOR   1
 The minor version number of the PSA ITS API. More...
 

Functions

psa_status_t psa_its_set (psa_storage_uid_t uid, size_t data_length, const void *p_data, psa_storage_create_flags_t create_flags)
 create a new or modify an existing uid/value pair More...
 
psa_status_t psa_its_get (psa_storage_uid_t uid, size_t data_offset, size_t data_length, void *p_data, size_t *p_data_length)
 Retrieve the value associated with a provided uid. More...
 
psa_status_t psa_its_get_info (psa_storage_uid_t uid, struct psa_storage_info_t *p_info)
 Retrieve the metadata about the provided uid. More...
 
psa_status_t psa_its_remove (psa_storage_uid_t uid)
 Remove the provided key and its associated data from the storage. More...
 

Detailed Description

This file describes the PSA Internal Trusted Storage API.

Definition in file psa_prot_internal_storage.h.

Macro Definition Documentation

◆ PSA_ITS_API_VERSION_MAJOR

#define PSA_ITS_API_VERSION_MAJOR   1

The major version number of the PSA ITS API.

It will be incremented on significant updates that may include breaking changes

Definition at line 33 of file psa_prot_internal_storage.h.

◆ PSA_ITS_API_VERSION_MINOR

#define PSA_ITS_API_VERSION_MINOR   1

The minor version number of the PSA ITS API.

It will be incremented in small updates that are unlikely to include breaking changes

Definition at line 34 of file psa_prot_internal_storage.h.

Function Documentation

◆ psa_its_set()

psa_status_t psa_its_set ( psa_storage_uid_t  uid,
size_t  data_length,
const void *  p_data,
psa_storage_create_flags_t  create_flags 
)

create a new or modify an existing uid/value pair

Parameters
[in]uidthe identifier for the data
[in]data_lengthThe size in bytes of the data in p_data
[in]p_dataA buffer containing the data
[in]create_flagsThe flags that the data will be stored with
Returns
A status indicating the success/failure of the operation
Return values
PSA_SUCCESSThe operation completed successfully
PSA_ERROR_NOT_PERMITTEDThe operation failed because the provided uid value was already created with PSA_STORAGE_WRITE_ONCE_FLAG
PSA_ERROR_NOT_SUPPORTEDThe operation failed because one or more of the flags provided in create_flags is not supported or is not valid
PSA_ERROR_INSUFFICIENT_STORAGEThe operation failed because there was insufficient space on the storage medium
PSA_ERROR_STORAGE_FAILUREThe operation failed because the physical storage has failed (Fatal error)
PSA_ERROR_INVALID_ARGUMENTSThe operation failed because one of the provided pointers(p_data) is invalid, for example is NULL or references memory the caller cannot access

◆ psa_its_get()

psa_status_t psa_its_get ( psa_storage_uid_t  uid,
size_t  data_offset,
size_t  data_length,
void *  p_data,
size_t *  p_data_length 
)

Retrieve the value associated with a provided uid.

Parameters
[in]uidThe uid value
[in]data_offsetThe starting offset of the data requested
[in]data_lengththe amount of data requested (and the minimum allocated size of the p_data buffer)
[out]p_dataThe buffer where the data will be placed upon successful completion
[out]p_data_lengthThe actual amount of data returned
Returns
A status indicating the success/failure of the operation
Return values
PSA_SUCCESSThe operation completed successfully
PSA_ERROR_DOES_NOT_EXISTThe operation failed because the provided uid value was not found in the storage
PSA_ERROR_BUFFER_TOO_SMALLThe operation failed because the data associated with provided uid is not the same size as data_size
PSA_ERROR_STORAGE_FAILUREThe operation failed because the physical storage has failed (Fatal error)
PSA_ERROR_INVALID_ARGUMENTThe operation failed because one of the provided pointers(p_data, p_data_length) is invalid. For example is NULL or references memory the caller cannot access

◆ psa_its_get_info()

psa_status_t psa_its_get_info ( psa_storage_uid_t  uid,
struct psa_storage_info_t p_info 
)

Retrieve the metadata about the provided uid.

Parameters
[in]uidThe uid value
[out]p_infoA pointer to the psa_storage_info_t struct that will be populated with the metadata
Returns
A status indicating the success/failure of the operation
Return values
PSA_SUCCESSThe operation completed successfully
PSA_ERROR_DOES_NOT_EXISTThe operation failed because the provided uid value was not found in the storage
PSA_ERROR_STORAGE_FAILUREThe operation failed because the physical storage has failed (Fatal error)
PSA_ERROR_INVALID_ARGUMENTThe operation failed because one of the provided pointers(p_info) is invalid, for example is NULL or references memory the caller cannot access

◆ psa_its_remove()

psa_status_t psa_its_remove ( psa_storage_uid_t  uid)

Remove the provided key and its associated data from the storage.

Parameters
[in]uidThe uid value
Returns
A status indicating the success/failure of the operation
Return values
PSA_SUCCESSThe operation completed successfully
PSA_ERROR_DOES_NOT_EXISTThe operation failed because the provided key value was not found in the storage
PSA_ERROR_NOT_PERMITTEDThe operation failed because the provided key value was created with PSA_STORAGE_WRITE_ONCE_FLAG
PSA_ERROR_STORAGE_FAILUREThe operation failed because the physical storage has failed (Fatal error)