remove stack reduction macros from hash functions

This commit is contained in:
Moisés Guimarães
2014-07-07 22:30:22 -03:00
parent b7acbc090f
commit ff59078053
5 changed files with 73 additions and 19 deletions

View File

@@ -132,16 +132,25 @@ void Md2Final(Md2* md2, byte* hash)
int Md2Hash(const byte* data, word32 len, 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; return MEMORY_E;
#endif
InitMd2(md2); InitMd2(md2);
Md2Update(md2, data, len); Md2Update(md2, data, len);
Md2Final(md2, hash); Md2Final(md2, hash);
DESTROY_VAR(md2); #ifdef CYASSL_SMALL_STACK
XFREE(md2, NULL, DYNAMIC_TYPE_TMP_BUFFER);
#endif
return 0; return 0;
} }

View File

@@ -365,16 +365,25 @@ void Md5Final(Md5* md5, byte* hash)
int Md5Hash(const byte* data, word32 len, 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; return MEMORY_E;
#endif
InitMd5(md5); InitMd5(md5);
Md5Update(md5, data, len); Md5Update(md5, data, len);
Md5Final(md5, hash); Md5Final(md5, hash);
DESTROY_VAR(md5); #ifdef CYASSL_SMALL_STACK
XFREE(md5, NULL, DYNAMIC_TYPE_TMP_BUFFER);
#endif
return 0; return 0;
} }

View File

@@ -399,10 +399,17 @@ int ShaFinal(Sha* sha, byte* hash)
int ShaHash(const byte* data, word32 len, byte* hash) int ShaHash(const byte* data, word32 len, byte* hash)
{ {
int ret = 0; 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; return MEMORY_E;
#endif
if ((ret = InitSha(sha)) != 0) { if ((ret = InitSha(sha)) != 0) {
CYASSL_MSG("InitSha failed"); CYASSL_MSG("InitSha failed");
@@ -412,7 +419,9 @@ int ShaHash(const byte* data, word32 len, byte* hash)
ShaFinal(sha, hash); ShaFinal(sha, hash);
} }
DESTROY_VAR(sha); #ifdef CYASSL_SMALL_STACK
XFREE(sha, NULL, DYNAMIC_TYPE_TMP_BUFFER);
#endif
return ret; return ret;
} }

View File

@@ -288,10 +288,17 @@ int Sha256Final(Sha256* sha256, byte* hash)
int Sha256Hash(const byte* data, word32 len, byte* hash) int Sha256Hash(const byte* data, word32 len, byte* hash)
{ {
int ret = 0; 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; return MEMORY_E;
#endif
if ((ret = InitSha256(sha256)) != 0) { if ((ret = InitSha256(sha256)) != 0) {
CYASSL_MSG("InitSha256 failed"); CYASSL_MSG("InitSha256 failed");
@@ -303,7 +310,9 @@ int Sha256Hash(const byte* data, word32 len, byte* hash)
CYASSL_MSG("Sha256Final failed"); CYASSL_MSG("Sha256Final failed");
} }
DESTROY_VAR(sha256); #ifdef CYASSL_SMALL_STACK
XFREE(sha256, NULL, DYNAMIC_TYPE_TMP_BUFFER);
#endif
return ret; return ret;
} }

View File

@@ -301,10 +301,17 @@ int Sha512Final(Sha512* sha512, byte* hash)
int Sha512Hash(const byte* data, word32 len, byte* hash) int Sha512Hash(const byte* data, word32 len, byte* hash)
{ {
int ret = 0; int ret = 0;
DECLARE_VAR(Sha512, sha512); #ifdef CYASSL_SMALL_STACK
Sha512* sha512;
#else
Sha512 sha512[1];
#endif
if (!CREATE_VAR(Sha512, sha512)) #ifdef CYASSL_SMALL_STACK
sha512 = (Sha512*)XMALLOC(sizeof(Sha512), NULL, DYNAMIC_TYPE_TMP_BUFFER);
if (sha512 == NULL)
return MEMORY_E; return MEMORY_E;
#endif
if ((ret = InitSha512(sha512)) != 0) { if ((ret = InitSha512(sha512)) != 0) {
CYASSL_MSG("InitSha512 failed"); CYASSL_MSG("InitSha512 failed");
@@ -316,7 +323,9 @@ int Sha512Hash(const byte* data, word32 len, byte* hash)
CYASSL_MSG("Sha512Final failed"); CYASSL_MSG("Sha512Final failed");
} }
DESTROY_VAR(sha512); #ifdef CYASSL_SMALL_STACK
XFREE(sha512, NULL, DYNAMIC_TYPE_TMP_BUFFER);
#endif
return ret; return ret;
} }
@@ -499,10 +508,17 @@ int Sha384Final(Sha384* sha384, byte* hash)
int Sha384Hash(const byte* data, word32 len, byte* hash) int Sha384Hash(const byte* data, word32 len, byte* hash)
{ {
int ret = 0; 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; return MEMORY_E;
#endif
if ((ret = InitSha384(sha384)) != 0) { if ((ret = InitSha384(sha384)) != 0) {
CYASSL_MSG("InitSha384 failed"); CYASSL_MSG("InitSha384 failed");
@@ -514,7 +530,9 @@ int Sha384Hash(const byte* data, word32 len, byte* hash)
CYASSL_MSG("Sha384Final failed"); CYASSL_MSG("Sha384Final failed");
} }
DESTROY_VAR(sha384); #ifdef CYASSL_SMALL_STACK
XFREE(sha384, NULL, DYNAMIC_TYPE_TMP_BUFFER);
#endif
return ret; return ret;
} }