mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2026-07-05 09:30:51 +02:00
update MD4 return from void to int
This commit is contained in:
@@ -23,7 +23,7 @@
|
||||
\sa wc_Md4Update
|
||||
\sa wc_Md4Final
|
||||
*/
|
||||
void wc_InitMd4(wc_Md4* md4);
|
||||
int wc_InitMd4(wc_Md4* md4);
|
||||
|
||||
/*!
|
||||
\ingroup MD4
|
||||
@@ -55,7 +55,7 @@ void wc_InitMd4(wc_Md4* md4);
|
||||
\sa wc_Md4Final
|
||||
\sa wc_InitMd4
|
||||
*/
|
||||
void wc_Md4Update(wc_Md4* md4, const byte* data, word32 len);
|
||||
int wc_Md4Update(wc_Md4* md4, const byte* data, word32 len);
|
||||
|
||||
/*!
|
||||
\ingroup MD4
|
||||
@@ -83,4 +83,4 @@ void wc_Md4Update(wc_Md4* md4, const byte* data, word32 len);
|
||||
\sa wc_Md4Final
|
||||
\sa wc_InitMd4
|
||||
*/
|
||||
void wc_Md4Final(wc_Md4* md4, byte* hash);
|
||||
int wc_Md4Final(wc_Md4* md4, byte* hash);
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
\sa wc_Md4Update
|
||||
\sa wc_Md4Final
|
||||
*/
|
||||
void wc_InitMd4(wc_Md4* md4);
|
||||
int wc_InitMd4(wc_Md4* md4);
|
||||
|
||||
/*!
|
||||
\ingroup MD4
|
||||
@@ -57,7 +57,7 @@ void wc_InitMd4(wc_Md4* md4);
|
||||
\sa wc_Md4Final
|
||||
\sa wc_InitMd4
|
||||
*/
|
||||
void wc_Md4Update(wc_Md4* md4, const byte* data, word32 len);
|
||||
int wc_Md4Update(wc_Md4* md4, const byte* data, word32 len);
|
||||
|
||||
/*!
|
||||
\ingroup MD4
|
||||
@@ -85,4 +85,4 @@ void wc_Md4Update(wc_Md4* md4, const byte* data, word32 len);
|
||||
\sa wc_Md4Final
|
||||
\sa wc_InitMd4
|
||||
*/
|
||||
void wc_Md4Final(wc_Md4* md4, byte* hash);
|
||||
int wc_Md4Final(wc_Md4* md4, byte* hash);
|
||||
|
||||
+28
-6
@@ -37,9 +37,12 @@
|
||||
/* Unit test for wc_InitMd4() and wc_InitMd4_ex() */
|
||||
int test_wc_InitMd4(void)
|
||||
{
|
||||
EXPECT_SUCCESS_DECLS;
|
||||
EXPECT_DECLS;
|
||||
#ifndef NO_MD4
|
||||
DIGEST_INIT_ONLY_TEST(wc_Md4, Md4);
|
||||
wc_Md4 md4;
|
||||
|
||||
ExpectIntEQ(wc_InitMd4(NULL), WC_NO_ERR_TRACE(BAD_FUNC_ARG));
|
||||
ExpectIntEQ(wc_InitMd4(&md4), 0);
|
||||
#endif
|
||||
return EXPECT_RESULT();
|
||||
}
|
||||
@@ -47,9 +50,19 @@ int test_wc_InitMd4(void)
|
||||
/* Unit test for wc_UpdateMd4() */
|
||||
int test_wc_Md4Update(void)
|
||||
{
|
||||
EXPECT_SUCCESS_DECLS;
|
||||
EXPECT_DECLS;
|
||||
#ifndef NO_MD4
|
||||
DIGEST_UPDATE_ONLY_TEST(wc_Md4, Md4);
|
||||
wc_Md4 md4;
|
||||
|
||||
ExpectIntEQ(wc_InitMd4(&md4), 0);
|
||||
|
||||
ExpectIntEQ(wc_Md4Update(NULL, NULL, 1), WC_NO_ERR_TRACE(BAD_FUNC_ARG));
|
||||
ExpectIntEQ(wc_Md4Update(&md4, NULL, 1), WC_NO_ERR_TRACE(BAD_FUNC_ARG));
|
||||
ExpectIntEQ(wc_Md4Update(NULL, (byte*)"a", 1),
|
||||
WC_NO_ERR_TRACE(BAD_FUNC_ARG));
|
||||
|
||||
ExpectIntEQ(wc_Md4Update(&md4, NULL, 0), 0);
|
||||
ExpectIntEQ(wc_Md4Update(&md4, (byte*)"a", 1), 0);
|
||||
#endif
|
||||
return EXPECT_RESULT();
|
||||
}
|
||||
@@ -57,9 +70,18 @@ int test_wc_Md4Update(void)
|
||||
/* Unit test for wc_Md4Final() */
|
||||
int test_wc_Md4Final(void)
|
||||
{
|
||||
EXPECT_SUCCESS_DECLS;
|
||||
EXPECT_DECLS;
|
||||
#ifndef NO_MD4
|
||||
DIGEST_FINAL_ONLY_TEST(wc_Md4, Md4, MD4);
|
||||
wc_Md4 md4;
|
||||
byte hash[WC_MD4_DIGEST_SIZE];
|
||||
|
||||
ExpectIntEQ(wc_InitMd4(&md4), 0);
|
||||
|
||||
ExpectIntEQ(wc_Md4Final(NULL, NULL), WC_NO_ERR_TRACE(BAD_FUNC_ARG));
|
||||
ExpectIntEQ(wc_Md4Final(&md4, NULL), WC_NO_ERR_TRACE(BAD_FUNC_ARG));
|
||||
ExpectIntEQ(wc_Md4Final(NULL, hash), WC_NO_ERR_TRACE(BAD_FUNC_ARG));
|
||||
|
||||
ExpectIntEQ(wc_Md4Final(&md4, hash), 0);
|
||||
#endif
|
||||
return EXPECT_RESULT();
|
||||
}
|
||||
|
||||
+11
-7
@@ -32,10 +32,10 @@
|
||||
#endif
|
||||
|
||||
|
||||
void wc_InitMd4(wc_Md4* md4)
|
||||
int wc_InitMd4(wc_Md4* md4)
|
||||
{
|
||||
if (md4 == NULL)
|
||||
return;
|
||||
return BAD_FUNC_ARG;
|
||||
|
||||
md4->digest[0] = 0x67452301L;
|
||||
md4->digest[1] = 0xefcdab89L;
|
||||
@@ -45,6 +45,8 @@ void wc_InitMd4(wc_Md4* md4)
|
||||
md4->buffLen = 0;
|
||||
md4->loLen = 0;
|
||||
md4->hiLen = 0;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -136,13 +138,13 @@ static WC_INLINE void AddLength(wc_Md4* md4, word32 len)
|
||||
}
|
||||
|
||||
|
||||
void wc_Md4Update(wc_Md4* md4, const byte* data, word32 len)
|
||||
int wc_Md4Update(wc_Md4* md4, const byte* data, word32 len)
|
||||
{
|
||||
/* do block size increments */
|
||||
byte* local;
|
||||
|
||||
if (md4 == NULL || (data == NULL && len != 0))
|
||||
return;
|
||||
return BAD_FUNC_ARG;
|
||||
|
||||
local = (byte*)md4->buffer;
|
||||
while (len) {
|
||||
@@ -162,15 +164,17 @@ void wc_Md4Update(wc_Md4* md4, const byte* data, word32 len)
|
||||
md4->buffLen = 0;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
void wc_Md4Final(wc_Md4* md4, byte* hash)
|
||||
int wc_Md4Final(wc_Md4* md4, byte* hash)
|
||||
{
|
||||
byte* local;
|
||||
|
||||
if (md4 == NULL || hash == NULL)
|
||||
return;
|
||||
return BAD_FUNC_ARG;
|
||||
|
||||
local = (byte*)md4->buffer;
|
||||
AddLength(md4, md4->buffLen); /* before adding pads */
|
||||
@@ -209,7 +213,7 @@ void wc_Md4Final(wc_Md4* md4, byte* hash)
|
||||
#endif
|
||||
XMEMCPY(hash, md4->digest, WC_MD4_DIGEST_SIZE);
|
||||
|
||||
wc_InitMd4(md4); /* reset state */
|
||||
return wc_InitMd4(md4); /* reset state */
|
||||
}
|
||||
|
||||
|
||||
|
||||
+11
-3
@@ -4861,6 +4861,7 @@ WOLFSSL_TEST_SUBROUTINE wc_test_ret_t md5_test(void)
|
||||
|
||||
WOLFSSL_TEST_SUBROUTINE wc_test_ret_t md4_test(void)
|
||||
{
|
||||
wc_test_ret_t ret = 0;
|
||||
wc_Md4 md4;
|
||||
byte hash[WC_MD4_DIGEST_SIZE];
|
||||
|
||||
@@ -4921,11 +4922,18 @@ WOLFSSL_TEST_SUBROUTINE wc_test_ret_t md4_test(void)
|
||||
test_md4[5] = f;
|
||||
test_md4[6] = g;
|
||||
|
||||
wc_InitMd4(&md4);
|
||||
ret = wc_InitMd4(&md4);
|
||||
if (ret != 0)
|
||||
return WC_TEST_RET_ENC_EC(ret);
|
||||
|
||||
for (i = 0; i < times; ++i) {
|
||||
wc_Md4Update(&md4, (byte*)test_md4[i].input, (word32)test_md4[i].inLen);
|
||||
wc_Md4Final(&md4, hash);
|
||||
ret = wc_Md4Update(&md4, (byte*)test_md4[i].input,
|
||||
(word32)test_md4[i].inLen);
|
||||
if (ret != 0)
|
||||
return WC_TEST_RET_ENC_I(i);
|
||||
ret = wc_Md4Final(&md4, hash);
|
||||
if (ret != 0)
|
||||
return WC_TEST_RET_ENC_I(i);
|
||||
|
||||
if (XMEMCMP(hash, test_md4[i].output, WC_MD4_DIGEST_SIZE) != 0)
|
||||
return WC_TEST_RET_ENC_I(i);
|
||||
|
||||
@@ -48,9 +48,9 @@ typedef struct wc_Md4 {
|
||||
word32 buffer[WC_MD4_BLOCK_SIZE / sizeof(word32)];
|
||||
} wc_Md4;
|
||||
|
||||
WOLFSSL_API void wc_InitMd4(wc_Md4* md4);
|
||||
WOLFSSL_API void wc_Md4Update(wc_Md4* md4, const byte* data, word32 len);
|
||||
WOLFSSL_API void wc_Md4Final(wc_Md4* md4, byte* hash);
|
||||
WOLFSSL_API int wc_InitMd4(wc_Md4* md4);
|
||||
WOLFSSL_API int wc_Md4Update(wc_Md4* md4, const byte* data, word32 len);
|
||||
WOLFSSL_API int wc_Md4Final(wc_Md4* md4, byte* hash);
|
||||
|
||||
#ifndef OPENSSL_COEXIST
|
||||
|
||||
|
||||
Reference in New Issue
Block a user