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
|
||||
#endif
|
||||
|
||||
#define WC_SHA256_DIGEST_WORD_SIZE 16
|
||||
#define XTRANSFORM(S, D) wc_Sha256SCE_XTRANSFORM((S), (D))
|
||||
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,
|
||||
(word32*)data, 8, sha256->digest) != SSP_SUCCESS) {
|
||||
(word32*)data, WC_SHA256_DIGEST_WORD_SIZE,
|
||||
sha256->digest) != SSP_SUCCESS) {
|
||||
WOLFSSL_MSG("Unexpected hardware return value");
|
||||
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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue