core: mbedtls: use SHA-512 crypto accelerated routines
Uses the recently provided accelerated SHA-512 routine.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
diff --git a/lib/libmbedtls/core/hash.c b/lib/libmbedtls/core/hash.c
index 634d68a..d2977c5 100644
--- a/lib/libmbedtls/core/hash.c
+++ b/lib/libmbedtls/core/hash.c
@@ -14,6 +14,7 @@
#include <mbedtls/platform_util.h>
#include <mbedtls/sha1.h>
#include <mbedtls/sha256.h>
+#include <mbedtls/sha512.h>
#include <stdlib.h>
#include <string_ext.h>
#include <string.h>
@@ -225,3 +226,18 @@
return 0;
}
#endif /*MBEDTLS_SHA256_PROCESS_ALT*/
+
+#if defined(MBEDTLS_SHA512_PROCESS_ALT)
+int mbedtls_internal_sha512_process(mbedtls_sha512_context *ctx,
+ const unsigned char data[64])
+{
+ MBEDTLS_INTERNAL_VALIDATE_RET(ctx != NULL,
+ MBEDTLS_ERR_SHA512_BAD_INPUT_DATA);
+ MBEDTLS_INTERNAL_VALIDATE_RET((const unsigned char *)data != NULL,
+ MBEDTLS_ERR_SHA512_BAD_INPUT_DATA);
+
+ crypto_accel_sha512_compress(ctx->state, data, 1);
+
+ return 0;
+}
+#endif /*MBEDTLS_SHA512_PROCESS_ALT*/
diff --git a/lib/libmbedtls/include/mbedtls_config_kernel.h b/lib/libmbedtls/include/mbedtls_config_kernel.h
index cd4d975..46d631a 100644
--- a/lib/libmbedtls/include/mbedtls_config_kernel.h
+++ b/lib/libmbedtls/include/mbedtls_config_kernel.h
@@ -39,6 +39,9 @@
#if defined(CFG_CRYPTO_SHA384) || defined(CFG_CRYPTO_SHA512)
#define MBEDTLS_SHA512_C
#define MBEDTLS_MD_C
+#if defined(CFG_CORE_CRYPTO_SHA512_ACCEL)
+#define MBEDTLS_SHA512_PROCESS_ALT
+#endif
#endif
#if defined(CFG_CRYPTO_HMAC)