mirror of https://github.com/wolfSSL/wolfssl.git
update sha256 support for endian
parent
6ec136208c
commit
b7d772700a
|
@ -551,14 +551,29 @@ static int InitSha256(wc_Sha256* sha256)
|
||||||
#define WOLFSSL_SCE_SHA256_HANDLE g_sce_hash_0
|
#define WOLFSSL_SCE_SHA256_HANDLE g_sce_hash_0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define WC_SHA256_DIGEST_WORD_SIZE 16
|
||||||
#define XTRANSFORM(S, D) wc_Sha256SCE_XTRANSFORM((S), (D))
|
#define XTRANSFORM(S, D) wc_Sha256SCE_XTRANSFORM((S), (D))
|
||||||
static int wc_Sha256SCE_XTRANSFORM(wc_Sha256* sha256, const byte* data)
|
static int wc_Sha256SCE_XTRANSFORM(wc_Sha256* sha256, const byte* data)
|
||||||
{
|
{
|
||||||
|
if (g_sce.p_cfg->endian_flag == CRYPTO_WORD_ENDIAN_LITTLE)
|
||||||
|
{
|
||||||
|
ByteReverseWords((word32*)data, (word32*)data, WC_SHA256_BLOCK_SIZE);
|
||||||
|
ByteReverseWords(sha256->digest, sha256->digest, WC_SHA256_DIGEST_SIZE);
|
||||||
|
}
|
||||||
|
|
||||||
if (WOLFSSL_SCE_SHA256_HANDLE.p_api->hashUpdate(WOLFSSL_SCE_SHA256_HANDLE.p_ctrl,
|
if (WOLFSSL_SCE_SHA256_HANDLE.p_api->hashUpdate(WOLFSSL_SCE_SHA256_HANDLE.p_ctrl,
|
||||||
(word32*)data, 8, sha256->digest) != SSP_SUCCESS) {
|
(word32*)data, WC_SHA256_DIGEST_WORD_SIZE,
|
||||||
|
sha256->digest) != SSP_SUCCESS) {
|
||||||
WOLFSSL_MSG("Unexpected hardware return value");
|
WOLFSSL_MSG("Unexpected hardware return value");
|
||||||
return WC_HW_E;
|
return WC_HW_E;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (g_sce.p_cfg->endian_flag == CRYPTO_WORD_ENDIAN_LITTLE)
|
||||||
|
{
|
||||||
|
ByteReverseWords((word32*)data, (word32*)data, WC_SHA256_BLOCK_SIZE);
|
||||||
|
ByteReverseWords(sha256->digest, sha256->digest, WC_SHA256_DIGEST_SIZE);
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue