Interface of trusted storage that crypto is built on. More...
#include <stddef.h>
#include <stdint.h>
#include <psa/crypto_types.h>
#include <psa/crypto_values.h>
Go to the source code of this file.
Data Structures | |
struct | psa_storage_info_t |
A container for metadata associated with a specific uid. More... | |
Macros | |
#define | PSA_STORAGE_FLAG_NONE 0 |
No flags to pass. More... | |
#define | PSA_STORAGE_FLAG_WRITE_ONCE (1 << 0) |
The data associated with the uid will not be able to be modified or deleted. More... | |
#define | PSA_STORAGE_SUPPORT_SET_EXTENDED (1 << 0) |
Flag indicating that psa_storage_create and psa_storage_set_extended are supported. More... | |
#define | PSA_ERROR_INVALID_SIGNATURE ((psa_status_t)-149) |
PSA storage specific error codes. More... | |
#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... | |
Typedefs | |
typedef uint32_t | psa_storage_create_flags_t |
Flags used when creating a data entry. More... | |
typedef uint64_t | psa_storage_uid_t |
A type for UIDs used for identifying data. More... | |
Functions | |
psa_status_t | psa_its_set (psa_storage_uid_t uid, uint32_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, uint32_t data_offset, uint32_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... | |
Interface of trusted storage that crypto is built on.
Definition in file psa_crypto_its.h.
#define PSA_ERROR_INVALID_SIGNATURE ((psa_status_t)-149) |
PSA storage specific error codes.
Definition at line 59 of file psa_crypto_its.h.
#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 62 of file psa_crypto_its.h.
#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 63 of file psa_crypto_its.h.
#define PSA_STORAGE_FLAG_NONE 0 |
No flags to pass.
Definition at line 42 of file psa_crypto_its.h.
#define PSA_STORAGE_FLAG_WRITE_ONCE (1 << 0) |
The data associated with the uid will not be able to be modified or deleted.
Intended to be used to set bits in psa_storage_create_flags_t
Definition at line 43 of file psa_crypto_its.h.
#define PSA_STORAGE_SUPPORT_SET_EXTENDED (1 << 0) |
Flag indicating that psa_storage_create and psa_storage_set_extended are supported.
Definition at line 55 of file psa_crypto_its.h.
typedef uint32_t psa_storage_create_flags_t |
Flags used when creating a data entry.
Definition at line 36 of file psa_crypto_its.h.
typedef uint64_t psa_storage_uid_t |
A type for UIDs used for identifying data.
Definition at line 40 of file psa_crypto_its.h.
psa_status_t psa_its_get | ( | psa_storage_uid_t | uid, |
uint32_t | data_offset, | ||
uint32_t | data_length, | ||
void * | p_data, | ||
size_t * | p_data_length | ||
) |
Retrieve the value associated with a provided uid.
[in] | uid | The uid value |
[in] | data_offset | The starting offset of the data requested |
[in] | data_length | the amount of data requested (and the minimum allocated size of the p_data buffer) |
[out] | p_data | The buffer where the data will be placed upon successful completion |
[out] | p_data_length | The amount of data returned in the p_data buffer |
PSA_SUCCESS | The operation completed successfully |
PSA_ERROR_DOES_NOT_EXIST | The operation failed because the provided uid value was not found in the storage |
PSA_ERROR_INVALID_SIZE | The operation failed because the data associated with provided uid is larger than data_size |
PSA_ERROR_STORAGE_FAILURE | The operation failed because the physical storage has failed (Fatal error) |
PSA_ERROR_INVALID_ARGUMENT | The 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. In addition, this can also happen if an invalid offset was provided. |
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.
[in] | uid | The uid value |
[out] | p_info | A pointer to the psa_storage_info_t struct that will be populated with the metadata |
PSA_SUCCESS | The operation completed successfully |
PSA_ERROR_DOES_NOT_EXIST | The operation failed because the provided uid value was not found in the storage |
PSA_ERROR_STORAGE_FAILURE | The operation failed because the physical storage has failed (Fatal error) |
PSA_ERROR_INVALID_ARGUMENT | The operation failed because one of the provided pointers(p_info ) is invalid, for example is NULL or references memory the caller cannot access |
psa_status_t psa_its_remove | ( | psa_storage_uid_t | uid | ) |
Remove the provided key and its associated data from the storage.
[in] | uid | The uid value |
PSA_SUCCESS | The operation completed successfully |
PSA_ERROR_DOES_NOT_EXIST | The operation failed because the provided key value was not found in the storage |
PSA_ERROR_NOT_PERMITTED | The operation failed because the provided key value was created with PSA_STORAGE_WRITE_ONCE_FLAG |
PSA_ERROR_STORAGE_FAILURE | The operation failed because the physical storage has failed (Fatal error) |
psa_status_t psa_its_set | ( | psa_storage_uid_t | uid, |
uint32_t | data_length, | ||
const void * | p_data, | ||
psa_storage_create_flags_t | create_flags | ||
) |
create a new or modify an existing uid/value pair
[in] | uid | the identifier for the data |
[in] | data_length | The size in bytes of the data in p_data |
[in] | p_data | A buffer containing the data |
[in] | create_flags | The flags that the data will be stored with |
PSA_SUCCESS | The operation completed successfully |
PSA_ERROR_NOT_PERMITTED | The operation failed because the provided uid value was already created with PSA_STORAGE_WRITE_ONCE_FLAG |
PSA_ERROR_NOT_SUPPORTED | The operation failed because one or more of the flags provided in create_flags is not supported or is not valid |
PSA_ERROR_INSUFFICIENT_STORAGE | The operation failed because there was insufficient space on the storage medium |
PSA_ERROR_STORAGE_FAILURE | The operation failed because the physical storage has failed (Fatal error) |
PSA_ERROR_INVALID_ARGUMENT | The operation failed because one of the provided pointers(p_data ) is invalid, for example is NULL or references memory the caller cannot access |