From b34bf65b661bb3d1fd679cd1c5f63a80b242c581 Mon Sep 17 00:00:00 2001 From: David Garske Date: Wed, 23 Sep 2020 15:32:43 -0700 Subject: [PATCH] Fix for `--enable-armasm` missing `wc_Sha256FinalRaw`. Reproduced with `./configure --enable-all --enable-cryptocb --enable-armasm && make`. --- wolfcrypt/src/port/arm/armv8-sha256.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/wolfcrypt/src/port/arm/armv8-sha256.c b/wolfcrypt/src/port/arm/armv8-sha256.c index 69b03dd60..cae12dd6a 100644 --- a/wolfcrypt/src/port/arm/armv8-sha256.c +++ b/wolfcrypt/src/port/arm/armv8-sha256.c @@ -1317,6 +1317,27 @@ int wc_Sha256Update(wc_Sha256* sha256, const byte* data, word32 len) return Sha256Update(sha256, data, len); } +int wc_Sha256FinalRaw(wc_Sha256* sha256, byte* hash) +{ +#ifdef LITTLE_ENDIAN_ORDER + word32 digest[WC_SHA256_DIGEST_SIZE / sizeof(word32)]; +#endif + + if (sha256 == NULL || hash == NULL) { + return BAD_FUNC_ARG; + } + +#ifdef LITTLE_ENDIAN_ORDER + ByteReverseWords((word32*)digest, (word32*)sha256->digest, + WC_SHA256_DIGEST_SIZE); + XMEMCPY(hash, digest, WC_SHA256_DIGEST_SIZE); +#else + XMEMCPY(hash, sha256->digest, WC_SHA256_DIGEST_SIZE); +#endif + + return 0; +} + int wc_Sha256Final(wc_Sha256* sha256, byte* hash) { int ret;