Document some functions in internal headers

This commit is contained in:
Gilles Peskine 2018-12-10 17:00:38 +01:00
parent fa4135b135
commit 09829036ab
2 changed files with 52 additions and 8 deletions

View file

@ -60,12 +60,38 @@ typedef struct
} psa_key_slot_t; } psa_key_slot_t;
/** Completely wipe a slot in memory, including its policy. /** Completely wipe a slot in memory, including its policy.
* Persistent storage is not affected. */ *
* Persistent storage is not affected.
*
* \param[in,out] slot The key slot to wipe.
*
* \retval PSA_SUCCESS
* Success. This includes the case of a key slot that was
* already fully wiped.
* \retval PSA_ERROR_TAMPERING_DETECTED
*/
psa_status_t psa_wipe_key_slot( psa_key_slot_t *slot ); psa_status_t psa_wipe_key_slot( psa_key_slot_t *slot );
/** Import key data into a slot. `slot->type` must have been set /** Import key data into a slot.
* previously. This function assumes that the slot does not contain *
* any key material yet. On failure, the slot content is unchanged. */ * `slot->type` must have been set previously.
* This function assumes that the slot does not contain any key material yet.
* On failure, the slot content is unchanged.
*
* Persistent storage is not affected.
*
* \param[in,out] slot The key slot to import data into.
* Its `type` field must have previously been set to
* the desired key type.
* It must not contain any key material yet.
* \param[in] data Buffer containing the key material to parse and import.
* \param data_length Size of \p data in bytes.
*
* \retval PSA_SUCCESS
* \retval PSA_ERROR_INVALID_ARGUMENT
* \retval PSA_ERROR_NOT_SUPPORTED
* \retval PSA_ERROR_INSUFFICIENT_MEMORY
*/
psa_status_t psa_import_key_into_slot( psa_key_slot_t *slot, psa_status_t psa_import_key_into_slot( psa_key_slot_t *slot,
const uint8_t *data, const uint8_t *data,
size_t data_length ); size_t data_length );

View file

@ -26,15 +26,33 @@
* The value is a compile-time constant for now, for simplicity. */ * The value is a compile-time constant for now, for simplicity. */
#define PSA_KEY_SLOT_COUNT 32 #define PSA_KEY_SLOT_COUNT 32
/** Access a key slot at the given handle. */ /** Access a key slot at the given handle.
*
* \param handle Key handle to query.
* \param[out] p_slot On success, `*p_slot` contains a pointer to the
* key slot in memory designated by \p handle.
*
* \retval PSA_SUCCESS
* Success: \p handle is a handle to `*p_slot`. Note that `*p_slot`
* may be empty or occupied.
* \retval PSA_ERROR_INVALID_HANDLE
* \p handle is out of range or is not in use.
* \retval PSA_ERROR_BAD_STATE
* The library has not been initialized.
*/
psa_status_t psa_get_key_slot( psa_key_handle_t handle, psa_status_t psa_get_key_slot( psa_key_handle_t handle,
psa_key_slot_t **p_slot ); psa_key_slot_t **p_slot );
/** Initialize the key slot structures. */ /** Initialize the key slot structures.
*
* \retval PSA_SUCCESS
* Currently this function always succeeds.
*/
psa_status_t psa_initialize_key_slots( void ); psa_status_t psa_initialize_key_slots( void );
/** Delete all data from key slots in memory. This does not affect persistent /** Delete all data from key slots in memory.
* storage. */ *
* This does not affect persistent storage. */
void psa_wipe_all_key_slots( void ); void psa_wipe_all_key_slots( void );
#endif /* PSA_CRYPTO_SLOT_MANAGEMENT_H */ #endif /* PSA_CRYPTO_SLOT_MANAGEMENT_H */