tree 84f77ed1cfc674c2285633e967de37448dd67094
parent b1a8bf9725501333ffe535c6a5bce8d08bd6167b
author Andres Amaya Garcia <Andres.AmayaGarcia@arm.com> 1493721527 +0100
committer Andres Amaya Garcia <Andres.AmayaGarcia@arm.com> 1498650736 +0100

Add int return values to SHA-256 function calls

The following function calls are being deprecated to introduce int
return values.
    * mbedtls_sha256()
    * mbedtls_sha256_starts()
    * mbedtls_sha256_update()
    * mbedtls_sha256_finish()
    * mbedtls_sha256_process()
The return codes can be used to return error values. This is important
when using hardware accelerators.
