Clarify documentation of internal hash software driver interface

Signed-off-by: Steven Cooreman <steven.cooreman@silabs.com>
This commit is contained in:
Steven Cooreman 2021-03-04 11:07:23 +01:00
parent 1e58235d8b
commit 8e9e407fed

View File

@ -75,6 +75,11 @@ typedef struct
#define MBEDTLS_PSA_HASH_OPERATION_INIT {0, {0}} #define MBEDTLS_PSA_HASH_OPERATION_INIT {0, {0}}
/** Calculate the hash (digest) of a message using Mbed TLS routines. /** Calculate the hash (digest) of a message using Mbed TLS routines.
*
* \note The signature of this function is that of a PSA driver hash_compute
* entry point. This function behaves as a hash_compute entry point as
* defined in the PSA driver interface specification for transparent
* drivers.
* *
* \param alg The hash algorithm to compute (\c PSA_ALG_XXX value * \param alg The hash algorithm to compute (\c PSA_ALG_XXX value
* such that #PSA_ALG_IS_HASH(\p alg) is true). * such that #PSA_ALG_IS_HASH(\p alg) is true).
@ -89,15 +94,11 @@ typedef struct
* \retval #PSA_SUCCESS * \retval #PSA_SUCCESS
* Success. * Success.
* \retval #PSA_ERROR_NOT_SUPPORTED * \retval #PSA_ERROR_NOT_SUPPORTED
* \p alg is not supported or is not a hash algorithm. * \p alg is not supported
* \retval #PSA_ERROR_INVALID_ARGUMENT
* \retval #PSA_ERROR_BUFFER_TOO_SMALL * \retval #PSA_ERROR_BUFFER_TOO_SMALL
* \p hash_size is too small * \p hash_size is too small
* \retval #PSA_ERROR_INSUFFICIENT_MEMORY * \retval #PSA_ERROR_INSUFFICIENT_MEMORY
* \retval #PSA_ERROR_COMMUNICATION_FAILURE
* \retval #PSA_ERROR_HARDWARE_FAILURE
* \retval #PSA_ERROR_CORRUPTION_DETECTED * \retval #PSA_ERROR_CORRUPTION_DETECTED
* \retval #PSA_ERROR_INSUFFICIENT_MEMORY
*/ */
psa_status_t mbedtls_psa_hash_compute( psa_status_t mbedtls_psa_hash_compute(
psa_algorithm_t alg, psa_algorithm_t alg,
@ -108,6 +109,11 @@ psa_status_t mbedtls_psa_hash_compute(
size_t *hash_length); size_t *hash_length);
/** Set up a multipart hash operation using Mbed TLS routines. /** Set up a multipart hash operation using Mbed TLS routines.
*
* \note The signature of this function is that of a PSA driver hash_setup
* entry point. This function behaves as a hash_setup entry point as
* defined in the PSA driver interface specification for transparent
* drivers.
* *
* If an error occurs at any step after a call to mbedtls_psa_hash_setup(), the * If an error occurs at any step after a call to mbedtls_psa_hash_setup(), the
* operation will need to be reset by a call to mbedtls_psa_hash_abort(). The * operation will need to be reset by a call to mbedtls_psa_hash_abort(). The
@ -128,7 +134,7 @@ psa_status_t mbedtls_psa_hash_compute(
* \retval #PSA_SUCCESS * \retval #PSA_SUCCESS
* Success. * Success.
* \retval #PSA_ERROR_NOT_SUPPORTED * \retval #PSA_ERROR_NOT_SUPPORTED
* \p alg is not a supported hash algorithm. * \p alg is not supported
* \retval #PSA_ERROR_BAD_STATE * \retval #PSA_ERROR_BAD_STATE
* The operation state is not valid (it must be inactive). * The operation state is not valid (it must be inactive).
* \retval #PSA_ERROR_INSUFFICIENT_MEMORY * \retval #PSA_ERROR_INSUFFICIENT_MEMORY
@ -139,6 +145,11 @@ psa_status_t mbedtls_psa_hash_setup(
psa_algorithm_t alg ); psa_algorithm_t alg );
/** Clone an Mbed TLS hash operation. /** Clone an Mbed TLS hash operation.
*
* \note The signature of this function is that of a PSA driver hash_clone
* entry point. This function behaves as a hash_clone entry point as
* defined in the PSA driver interface specification for transparent
* drivers.
* *
* This function copies the state of an ongoing hash operation to * This function copies the state of an ongoing hash operation to
* a new operation object. In other words, this function is equivalent * a new operation object. In other words, this function is equivalent
@ -166,6 +177,11 @@ psa_status_t mbedtls_psa_hash_clone(
mbedtls_psa_hash_operation_t *target_operation ); mbedtls_psa_hash_operation_t *target_operation );
/** Add a message fragment to a multipart Mbed TLS hash operation. /** Add a message fragment to a multipart Mbed TLS hash operation.
*
* \note The signature of this function is that of a PSA driver hash_update
* entry point. This function behaves as a hash_update entry point as
* defined in the PSA driver interface specification for transparent
* drivers.
* *
* The application must call mbedtls_psa_hash_setup() before calling this function. * The application must call mbedtls_psa_hash_setup() before calling this function.
* *
@ -179,7 +195,7 @@ psa_status_t mbedtls_psa_hash_clone(
* \retval #PSA_SUCCESS * \retval #PSA_SUCCESS
* Success. * Success.
* \retval #PSA_ERROR_BAD_STATE * \retval #PSA_ERROR_BAD_STATE
* The operation state is not valid (it muct be active). * The operation state is not valid (it must be active).
* \retval #PSA_ERROR_INSUFFICIENT_MEMORY * \retval #PSA_ERROR_INSUFFICIENT_MEMORY
* \retval #PSA_ERROR_CORRUPTION_DETECTED * \retval #PSA_ERROR_CORRUPTION_DETECTED
*/ */
@ -189,6 +205,11 @@ psa_status_t mbedtls_psa_hash_update(
size_t input_length ); size_t input_length );
/** Finish the calculation of the Mbed TLS-calculated hash of a message. /** Finish the calculation of the Mbed TLS-calculated hash of a message.
*
* \note The signature of this function is that of a PSA driver hash_finish
* entry point. This function behaves as a hash_finish entry point as
* defined in the PSA driver interface specification for transparent
* drivers.
* *
* The application must call mbedtls_psa_hash_setup() before calling this function. * The application must call mbedtls_psa_hash_setup() before calling this function.
* This function calculates the hash of the message formed by concatenating * This function calculates the hash of the message formed by concatenating
@ -224,6 +245,11 @@ psa_status_t mbedtls_psa_hash_finish(
size_t *hash_length ); size_t *hash_length );
/** Abort an Mbed TLS hash operation. /** Abort an Mbed TLS hash operation.
*
* \note The signature of this function is that of a PSA driver hash_abort
* entry point. This function behaves as a hash_abort entry point as
* defined in the PSA driver interface specification for transparent
* drivers.
* *
* Aborting an operation frees all associated resources except for the * Aborting an operation frees all associated resources except for the
* \p operation structure itself. Once aborted, the operation object * \p operation structure itself. Once aborted, the operation object