From 1c4b4a2d1e3347b79e7ebf15ac3f78c9fa0485e3 Mon Sep 17 00:00:00 2001 From: Jacob Barthelmeh Date: Wed, 7 Jan 2015 15:26:09 -0700 Subject: [PATCH 1/3] ripemd in function call fixed --- tests/hash.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/hash.c b/tests/hash.c index cbb3b3eca..7cc197dd6 100644 --- a/tests/hash.c +++ b/tests/hash.c @@ -511,7 +511,7 @@ int sha384_test() #ifdef WOLFSSL_RIPEMD int ripemd_test(void) { - RipeMd ripemd; + wc_RipeMd ripemd; byte hash[RIPEMD_DIGEST_SIZE]; testVector a, b, c, d; @@ -548,12 +548,12 @@ int ripemd_test(void) test_ripemd[2] = c; test_ripemd[3] = d; - InitRipeMd(&ripemd); + wc_InitRipeMd(&ripemd); for (i = 0; i < times; ++i) { - RipeMdUpdate(&ripemd, (byte*)test_ripemd[i].input, + wc_RipeMdUpdate(&ripemd, (byte*)test_ripemd[i].input, (word32)test_ripemd[i].inLen); - RipeMdFinal(&ripemd, hash); + wc_RipeMdFinal(&ripemd, hash); if (memcmp(hash, test_ripemd[i].output, RIPEMD_DIGEST_SIZE) != 0) return -10 - i; From 6195ae1db24131053a2c7f07fe72b52315e7b85d Mon Sep 17 00:00:00 2001 From: Jacob Barthelmeh Date: Wed, 7 Jan 2015 15:37:55 -0700 Subject: [PATCH 2/3] placement of poly1305 in test file --- wolfcrypt/test/test.c | 203 +++++++++++++++++++++--------------------- 1 file changed, 102 insertions(+), 101 deletions(-) diff --git a/wolfcrypt/test/test.c b/wolfcrypt/test/test.c index 33d5af8b4..6bc426f93 100644 --- a/wolfcrypt/test/test.c +++ b/wolfcrypt/test/test.c @@ -400,6 +400,13 @@ int wolfcrypt_test(void* args) printf( "Chacha test passed!\n"); #endif +#ifdef HAVE_POLY1305 + if ( (ret = poly1305_test()) != 0) + return err_sys("POLY1305 test failed!\n", ret); + else + printf( "POLY1305 test passed!\n"); +#endif + #ifndef NO_DES3 if ( (ret = des_test()) != 0) return err_sys("DES test failed!\n", ret); @@ -420,13 +427,6 @@ int wolfcrypt_test(void* args) else printf( "AES test passed!\n"); -#ifdef HAVE_POLY1305 - if ( (ret = poly1305_test()) != 0) - return err_sys("POLY1305 test failed!\n", ret); - else - printf( "POLY1305 test passed!\n"); -#endif - #ifdef HAVE_AESGCM if ( (ret = aesgcm_test()) != 0) return err_sys("AES-GCM test failed!\n", ret); @@ -1888,7 +1888,7 @@ int chacha_test(void) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01 }; - static const byte key3[] = + static const byte key3[] = { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, @@ -1905,7 +1905,7 @@ int chacha_test(void) const byte* keys[] = {key1, key2, key3, key4}; - + static const byte ivs1[] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; static const byte ivs2[] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; static const byte ivs3[] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01}; @@ -1938,7 +1938,7 @@ int chacha_test(void) XMEMCPY(plain, keys[i], keySz); XMEMSET(cipher, 0, 32); XMEMCPY(cipher + 4, ivs[i], 8); - + wc_Chacha_SetKey(&enc, keys[i], keySz); wc_Chacha_SetKey(&dec, keys[i], keySz); @@ -1949,7 +1949,7 @@ int chacha_test(void) wc_Chacha_Process(&enc, cipher, plain, (word32)8); wc_Chacha_Process(&dec, plain, cipher, (word32)8); - if (memcmp(test_chacha[i], cipher, 8)) + if (memcmp(test_chacha[i], cipher, 8)) return -130 - 5 - i; if (memcmp(plain, input, 8)) @@ -1961,6 +1961,97 @@ int chacha_test(void) #endif /* HAVE_CHACHA */ +#ifdef HAVE_POLY1305 +int poly1305_test(void) +{ + int ret = 0; + int i; + byte tag[16]; + Poly1305 enc; + + const byte msg[] = + { + 0x43,0x72,0x79,0x70,0x74,0x6f,0x67,0x72, + 0x61,0x70,0x68,0x69,0x63,0x20,0x46,0x6f, + 0x72,0x75,0x6d,0x20,0x52,0x65,0x73,0x65, + 0x61,0x72,0x63,0x68,0x20,0x47,0x72,0x6f, + 0x75,0x70 + }; + + const byte msg2[] = + { + 0x48,0x65,0x6c,0x6c,0x6f,0x20,0x77,0x6f,0x72, + 0x6c,0x64,0x21 + }; + + const byte msg3[] = + { + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 + }; + + const byte correct[] = + { + 0xa8,0x06,0x1d,0xc1,0x30,0x51,0x36,0xc6, + 0xc2,0x2b,0x8b,0xaf,0x0c,0x01,0x27,0xa9 + + }; + + const byte correct2[] = + { + 0xa6,0xf7,0x45,0x00,0x8f,0x81,0xc9,0x16, + 0xa2,0x0d,0xcc,0x74,0xee,0xf2,0xb2,0xf0 + }; + + const byte correct3[] = + { + 0x49,0xec,0x78,0x09,0x0e,0x48,0x1e,0xc6, + 0xc2,0x6b,0x33,0xb9,0x1c,0xcc,0x03,0x07 + }; + + const byte key[] = { + 0x85,0xd6,0xbe,0x78,0x57,0x55,0x6d,0x33, + 0x7f,0x44,0x52,0xfe,0x42,0xd5,0x06,0xa8, + 0x01,0x03,0x80,0x8a,0xfb,0x0d,0xb2,0xfd, + 0x4a,0xbf,0xf6,0xaf,0x41,0x49,0xf5,0x1b + }; + + const byte key2[] = { + 0x74,0x68,0x69,0x73,0x20,0x69,0x73,0x20, + 0x33,0x32,0x2d,0x62,0x79,0x74,0x65,0x20, + 0x6b,0x65,0x79,0x20,0x66,0x6f,0x72,0x20, + 0x50,0x6f,0x6c,0x79,0x31,0x33,0x30,0x35 + }; + + const byte* msgs[] = {msg, msg2, msg3}; + word32 szm[] = {sizeof(msg),sizeof(msg2),sizeof(msg3)}; + const byte* keys[] = {key, key2, key2}; + const byte* tests[] = {correct, correct2, correct3}; + + for (i = 0; i < 3; i++) { + ret = wc_Poly1305SetKey(&enc, keys[i], 32); + if (ret != 0) + return -1001; + + ret = wc_Poly1305Update(&enc, msgs[i], szm[i]); + if (ret != 0) + return -1005; + + ret = wc_Poly1305Final(&enc, tag); + if (ret != 0) + return -60; + + if (memcmp(tag, tests[i], sizeof(tag))) + return -61; + } + + return 0; +} +#endif /* HAVE_POLY1305 */ + + #ifndef NO_DES3 int des_test(void) { @@ -2271,96 +2362,6 @@ int aes_test(void) return 0; } -#ifdef HAVE_POLY1305 -int poly1305_test(void) -{ - int ret = 0; - int i; - byte tag[16]; - Poly1305 enc; - - const byte msg[] = - { - 0x43,0x72,0x79,0x70,0x74,0x6f,0x67,0x72, - 0x61,0x70,0x68,0x69,0x63,0x20,0x46,0x6f, - 0x72,0x75,0x6d,0x20,0x52,0x65,0x73,0x65, - 0x61,0x72,0x63,0x68,0x20,0x47,0x72,0x6f, - 0x75,0x70 - }; - - const byte msg2[] = - { - 0x48,0x65,0x6c,0x6c,0x6f,0x20,0x77,0x6f,0x72, - 0x6c,0x64,0x21 - }; - - const byte msg3[] = - { - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - }; - - const byte correct[] = - { - 0xa8,0x06,0x1d,0xc1,0x30,0x51,0x36,0xc6, - 0xc2,0x2b,0x8b,0xaf,0x0c,0x01,0x27,0xa9 - - }; - - const byte correct2[] = - { - 0xa6,0xf7,0x45,0x00,0x8f,0x81,0xc9,0x16, - 0xa2,0x0d,0xcc,0x74,0xee,0xf2,0xb2,0xf0 - }; - - const byte correct3[] = - { - 0x49,0xec,0x78,0x09,0x0e,0x48,0x1e,0xc6, - 0xc2,0x6b,0x33,0xb9,0x1c,0xcc,0x03,0x07 - }; - - const byte key[] = { - 0x85,0xd6,0xbe,0x78,0x57,0x55,0x6d,0x33, - 0x7f,0x44,0x52,0xfe,0x42,0xd5,0x06,0xa8, - 0x01,0x03,0x80,0x8a,0xfb,0x0d,0xb2,0xfd, - 0x4a,0xbf,0xf6,0xaf,0x41,0x49,0xf5,0x1b - }; - - const byte key2[] = { - 0x74,0x68,0x69,0x73,0x20,0x69,0x73,0x20, - 0x33,0x32,0x2d,0x62,0x79,0x74,0x65,0x20, - 0x6b,0x65,0x79,0x20,0x66,0x6f,0x72,0x20, - 0x50,0x6f,0x6c,0x79,0x31,0x33,0x30,0x35 - }; - - const byte* msgs[] = {msg, msg2, msg3}; - word32 szm[] = {sizeof(msg),sizeof(msg2),sizeof(msg3)}; - const byte* keys[] = {key, key2, key2}; - const byte* tests[] = {correct, correct2, correct3}; - - for (i = 0; i < 3; i++) { - ret = wc_Poly1305SetKey(&enc, keys[i], 32); - if (ret != 0) - return -1001; - - ret = wc_Poly1305Update(&enc, msgs[i], szm[i]); - if (ret != 0) - return -1005; - - ret = wc_Poly1305Final(&enc, tag); - if (ret != 0) - return -60; - - if (memcmp(tag, tests[i], sizeof(tag))) - return -61; - } - - return 0; -} -#endif /* HAVE_POLY1305 */ - #ifdef HAVE_AESGCM int aesgcm_test(void) { From 0721d575f6a0fb7c09a8a894c41e45dd9f4a5bac Mon Sep 17 00:00:00 2001 From: Jacob Barthelmeh Date: Wed, 7 Jan 2015 15:56:02 -0700 Subject: [PATCH 3/3] correction on rename of struct --- tests/hash.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/hash.c b/tests/hash.c index 7cc197dd6..3bb7f6900 100644 --- a/tests/hash.c +++ b/tests/hash.c @@ -511,7 +511,7 @@ int sha384_test() #ifdef WOLFSSL_RIPEMD int ripemd_test(void) { - wc_RipeMd ripemd; + RipeMd ripemd; byte hash[RIPEMD_DIGEST_SIZE]; testVector a, b, c, d;