mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2024-11-26 19:33:32 +08:00
fix(mbedtls): fix error return code for calc_hash
Make this function return values from crypto_ret_value. The previous method of returning the mbedtls error code on failure meant that the authentication module couldn't correctly parse failures from this function. Change-Id: I9fe6eba1fc79e8f81004f8cd202781aea907e963 Signed-off-by: Ryan Everett <ryan.everett@arm.com>
This commit is contained in:
parent
7ea8852ea5
commit
885bd91f27
@ -275,6 +275,7 @@ static int calc_hash(enum crypto_md_algo md_algo, void *data_ptr,
|
|||||||
unsigned char output[CRYPTO_MD_MAX_SIZE])
|
unsigned char output[CRYPTO_MD_MAX_SIZE])
|
||||||
{
|
{
|
||||||
const mbedtls_md_info_t *md_info;
|
const mbedtls_md_info_t *md_info;
|
||||||
|
int rc;
|
||||||
|
|
||||||
md_info = mbedtls_md_info_from_type(md_type(md_algo));
|
md_info = mbedtls_md_info_from_type(md_type(md_algo));
|
||||||
if (md_info == NULL) {
|
if (md_info == NULL) {
|
||||||
@ -286,7 +287,12 @@ static int calc_hash(enum crypto_md_algo md_algo, void *data_ptr,
|
|||||||
* 'output' hash buffer pointer considering its size is always
|
* 'output' hash buffer pointer considering its size is always
|
||||||
* bigger than or equal to MBEDTLS_MD_MAX_SIZE.
|
* bigger than or equal to MBEDTLS_MD_MAX_SIZE.
|
||||||
*/
|
*/
|
||||||
return mbedtls_md(md_info, data_ptr, data_len, output);
|
rc = mbedtls_md(md_info, data_ptr, data_len, output);
|
||||||
|
if (rc != 0) {
|
||||||
|
return CRYPTO_ERR_HASH;
|
||||||
|
}
|
||||||
|
|
||||||
|
return CRYPTO_SUCCESS;
|
||||||
}
|
}
|
||||||
#endif /* CRYPTO_SUPPORT == CRYPTO_HASH_CALC_ONLY || \
|
#endif /* CRYPTO_SUPPORT == CRYPTO_HASH_CALC_ONLY || \
|
||||||
CRYPTO_SUPPORT == CRYPTO_AUTH_VERIFY_AND_HASH_CALC */
|
CRYPTO_SUPPORT == CRYPTO_AUTH_VERIFY_AND_HASH_CALC */
|
||||||
|
Loading…
Reference in New Issue
Block a user