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)
{
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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}