diff --git a/ctaocrypt/src/md2.c b/ctaocrypt/src/md2.c index 30a1ec5f7..e129cf73c 100644 --- a/ctaocrypt/src/md2.c +++ b/ctaocrypt/src/md2.c @@ -132,16 +132,25 @@ void Md2Final(Md2* md2, byte* hash) int Md2Hash(const byte* data, word32 len, byte* hash) { - DECLARE_VAR(Md2, md2); +#ifdef CYASSL_SMALL_STACK + Md2* md2; +#else + Md2 md2[1]; +#endif - if (!CREATE_VAR(Md2, md2)) +#ifdef CYASSL_SMALL_STACK + md2 = (Md2*)XMALLOC(sizeof(Md2), NULL, DYNAMIC_TYPE_TMP_BUFFER); + if (md2 == NULL) return MEMORY_E; +#endif InitMd2(md2); Md2Update(md2, data, len); Md2Final(md2, hash); - DESTROY_VAR(md2); +#ifdef CYASSL_SMALL_STACK + XFREE(md2, NULL, DYNAMIC_TYPE_TMP_BUFFER); +#endif return 0; } diff --git a/ctaocrypt/src/md5.c b/ctaocrypt/src/md5.c index 1bf23f88e..4a375391d 100644 --- a/ctaocrypt/src/md5.c +++ b/ctaocrypt/src/md5.c @@ -365,16 +365,25 @@ void Md5Final(Md5* md5, byte* hash) int Md5Hash(const byte* data, word32 len, byte* hash) { - DECLARE_VAR(Md5, md5); +#ifdef CYASSL_SMALL_STACK + Md5* md5; +#else + Md5 md5[1]; +#endif - if (!CREATE_VAR(Md5, md5)) +#ifdef CYASSL_SMALL_STACK + md5 = (Md5*)XMALLOC(sizeof(Md5), NULL, DYNAMIC_TYPE_TMP_BUFFER); + if (md5 == NULL) return MEMORY_E; +#endif InitMd5(md5); Md5Update(md5, data, len); Md5Final(md5, hash); - DESTROY_VAR(md5); +#ifdef CYASSL_SMALL_STACK + XFREE(md5, NULL, DYNAMIC_TYPE_TMP_BUFFER); +#endif return 0; } diff --git a/ctaocrypt/src/sha.c b/ctaocrypt/src/sha.c index 9e9651433..7501312d5 100644 --- a/ctaocrypt/src/sha.c +++ b/ctaocrypt/src/sha.c @@ -399,10 +399,17 @@ int ShaFinal(Sha* sha, byte* hash) int ShaHash(const byte* data, word32 len, byte* hash) { int ret = 0; - DECLARE_VAR(Sha, sha); +#ifdef CYASSL_SMALL_STACK + Sha* sha; +#else + Sha sha[1]; +#endif - if (!CREATE_VAR(Sha, sha)) +#ifdef CYASSL_SMALL_STACK + sha = (Sha*)XMALLOC(sizeof(Sha), NULL, DYNAMIC_TYPE_TMP_BUFFER); + if (sha == NULL) return MEMORY_E; +#endif if ((ret = InitSha(sha)) != 0) { CYASSL_MSG("InitSha failed"); @@ -412,7 +419,9 @@ int ShaHash(const byte* data, word32 len, byte* hash) ShaFinal(sha, hash); } - DESTROY_VAR(sha); +#ifdef CYASSL_SMALL_STACK + XFREE(sha, NULL, DYNAMIC_TYPE_TMP_BUFFER); +#endif return ret; } diff --git a/ctaocrypt/src/sha256.c b/ctaocrypt/src/sha256.c index 5aed4b325..a90fb19b5 100644 --- a/ctaocrypt/src/sha256.c +++ b/ctaocrypt/src/sha256.c @@ -288,10 +288,17 @@ int Sha256Final(Sha256* sha256, byte* hash) int Sha256Hash(const byte* data, word32 len, byte* hash) { int ret = 0; - DECLARE_VAR(Sha256, sha256); +#ifdef CYASSL_SMALL_STACK + Sha256* sha256; +#else + Sha256 sha256[1]; +#endif - if (!CREATE_VAR(Sha256, sha256)) +#ifdef CYASSL_SMALL_STACK + sha256 = (Sha256*)XMALLOC(sizeof(Sha256), NULL, DYNAMIC_TYPE_TMP_BUFFER); + if (sha256 == NULL) return MEMORY_E; +#endif if ((ret = InitSha256(sha256)) != 0) { CYASSL_MSG("InitSha256 failed"); @@ -303,7 +310,9 @@ int Sha256Hash(const byte* data, word32 len, byte* hash) CYASSL_MSG("Sha256Final failed"); } - DESTROY_VAR(sha256); +#ifdef CYASSL_SMALL_STACK + XFREE(sha256, NULL, DYNAMIC_TYPE_TMP_BUFFER); +#endif return ret; } diff --git a/ctaocrypt/src/sha512.c b/ctaocrypt/src/sha512.c index df3ddcda5..40086949b 100644 --- a/ctaocrypt/src/sha512.c +++ b/ctaocrypt/src/sha512.c @@ -301,10 +301,17 @@ int Sha512Final(Sha512* sha512, byte* hash) int Sha512Hash(const byte* data, word32 len, byte* hash) { int ret = 0; - DECLARE_VAR(Sha512, sha512); - - if (!CREATE_VAR(Sha512, sha512)) +#ifdef CYASSL_SMALL_STACK + Sha512* sha512; +#else + Sha512 sha512[1]; +#endif + +#ifdef CYASSL_SMALL_STACK + sha512 = (Sha512*)XMALLOC(sizeof(Sha512), NULL, DYNAMIC_TYPE_TMP_BUFFER); + if (sha512 == NULL) return MEMORY_E; +#endif if ((ret = InitSha512(sha512)) != 0) { CYASSL_MSG("InitSha512 failed"); @@ -316,7 +323,9 @@ int Sha512Hash(const byte* data, word32 len, byte* hash) CYASSL_MSG("Sha512Final failed"); } - DESTROY_VAR(sha512); +#ifdef CYASSL_SMALL_STACK + XFREE(sha512, NULL, DYNAMIC_TYPE_TMP_BUFFER); +#endif return ret; } @@ -499,10 +508,17 @@ int Sha384Final(Sha384* sha384, byte* hash) int Sha384Hash(const byte* data, word32 len, byte* hash) { int ret = 0; - DECLARE_VAR(Sha384, sha384); +#ifdef CYASSL_SMALL_STACK + Sha384* sha384; +#else + Sha384 sha384[1]; +#endif - if (!CREATE_VAR(Sha384, sha384)) +#ifdef CYASSL_SMALL_STACK + sha384 = (Sha384*)XMALLOC(sizeof(Sha384), NULL, DYNAMIC_TYPE_TMP_BUFFER); + if (sha384 == NULL) return MEMORY_E; +#endif if ((ret = InitSha384(sha384)) != 0) { CYASSL_MSG("InitSha384 failed"); @@ -514,7 +530,9 @@ int Sha384Hash(const byte* data, word32 len, byte* hash) CYASSL_MSG("Sha384Final failed"); } - DESTROY_VAR(sha384); +#ifdef CYASSL_SMALL_STACK + XFREE(sha384, NULL, DYNAMIC_TYPE_TMP_BUFFER); +#endif return ret; }