Loading...
Searching...
No Matches
psa_crypto_slot_management.h File Reference

PSA key slot management function declarations. More...

Detailed Description

PSA key slot management function declarations.

Author
Lena Boeckmann lena..nosp@m.boec.nosp@m.kmann.nosp@m.@haw.nosp@m.-hamb.nosp@m.urg..nosp@m.de

Definition in file psa_crypto_slot_management.h.

#include "clist.h"
#include "psa/crypto.h"
#include "psa_crypto_se_management.h"
+ Include dependency graph for psa_crypto_slot_management.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  psa_key_slot_t
 Structure of a virtual key slot in local memory. More...
 

Macros

#define PSA_PROTECTED_KEY_COUNT   (CONFIG_PSA_PROTECTED_KEY_COUNT)
 Number of allocated slots for keys in protected memory or secure elements.
 
#define PSA_ASYMMETRIC_KEYPAIR_COUNT   (CONFIG_PSA_ASYMMETRIC_KEYPAIR_COUNT)
 Number of allocated slots for asymmetric key pairs.
 
#define PSA_SINGLE_KEY_COUNT   (CONFIG_PSA_SINGLE_KEY_COUNT)
 Number of allocated slots for single keys in local memory.
 
#define PSA_KEY_SLOT_COUNT
 Complete number of available key slots.
 
#define PSA_KEY_ID_VOLATILE_MIN   (PSA_KEY_ID_VENDOR_MIN)
 Minimum key id for volatile keys.
 
#define PSA_KEY_ID_VOLATILE_MAX   (PSA_KEY_ID_VENDOR_MAX)
 Maximum key id for volatile keys.
 

Functions

void psa_init_key_slots (void)
 Initializes the allocated key slots and prepares the internal key slot lists.
 
static int psa_key_id_is_volatile (psa_key_id_t key_id)
 Check whether a key identifier is a volatile key identifier.
 
static int psa_is_key_slot_locked (psa_key_slot_t *slot)
 Check whether a key slot is locked.
 
psa_key_slot_number_tpsa_key_slot_get_slot_number (const psa_key_slot_t *slot)
 Get slot number in protected memory.
 
static int psa_key_lifetime_is_external (psa_key_lifetime_t lifetime)
 Check whether a key is stored on an external device.
 
psa_status_t psa_wipe_key_slot (psa_key_slot_t *slot)
 Wipe volatile key slot and its contents.
 
void psa_wipe_all_key_slots (void)
 Wipe all existing volatile key slots.
 
psa_status_t psa_get_and_lock_key_slot (psa_key_id_t id, psa_key_slot_t **slot)
 Find a key slot in local memory and lock it.
 
psa_status_t psa_persist_key_slot_in_storage (psa_key_slot_t *slot)
 Store a key slot in persistent storage.
 
psa_status_t psa_allocate_empty_key_slot (psa_key_id_t *id, const psa_key_attributes_t *attr, psa_key_slot_t **p_slot)
 Find a currently empty key slot that is appropriate for the key.
 
psa_status_t psa_lock_key_slot (psa_key_slot_t *slot)
 Increase lock count.
 
psa_status_t psa_unlock_key_slot (psa_key_slot_t *slot)
 Decrease lock count.
 
psa_status_t psa_validate_key_location (psa_key_lifetime_t lifetime, psa_se_drv_data_t **driver)
 Check if key location exists.
 
psa_status_t psa_validate_key_persistence (psa_key_lifetime_t lifetime)
 Validate key persistence.
 
int psa_is_valid_key_id (psa_key_id_t id, int vendor)
 Check if provided key ID is either a valid user ID or vendor ID.
 
size_t psa_get_key_data_from_key_slot (const psa_key_slot_t *slot, uint8_t **key_data, size_t **key_bytes)
 Get key data and key size from key slot.
 
void psa_get_public_key_data_from_key_slot (const psa_key_slot_t *slot, uint8_t **pubkey_data, size_t **pubkey_data_len)
 Get public key data and size from key slot.