blob: a8f5b1848db26e4f982b721c1163c693c6e8c46c [file] [log] [blame]
Paul Bakker33b43f12013-08-20 11:48:36 +02001/* BEGIN_HEADER */
Manuel Pégourié-Gonnard7f809972015-03-09 17:05:11 +00002#include "mbedtls/sha1.h"
3#include "mbedtls/sha256.h"
4#include "mbedtls/sha512.h"
Paul Bakker33b43f12013-08-20 11:48:36 +02005/* END_HEADER */
Paul Bakker367dae42009-06-28 21:50:27 +00006
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +02007/* BEGIN_CASE depends_on:MBEDTLS_SHA1_C */
Andrzej Kurekc470b6b2019-01-31 08:20:20 -05008void sha1_valid_param( )
9{
10 TEST_VALID_PARAM( mbedtls_sha1_free( NULL ) );
11}
12/* END_CASE */
13
Andrzej Kurekc470b6b2019-01-31 08:20:20 -050014/* BEGIN_CASE depends_on:MBEDTLS_SHA1_C */
Ronald Cronac6ae352020-06-26 14:33:03 +020015void mbedtls_sha1( data_t * src_str, data_t * hash )
Paul Bakker367dae42009-06-28 21:50:27 +000016{
Paul Bakker367dae42009-06-28 21:50:27 +000017 unsigned char output[41];
18
Paul Bakker367dae42009-06-28 21:50:27 +000019 memset(output, 0x00, 41);
20
Paul Bakker367dae42009-06-28 21:50:27 +000021
Azim Khand30ca132017-06-09 04:32:58 +010022 TEST_ASSERT( mbedtls_sha1_ret( src_str->x, src_str->len, output ) == 0 );
Paul Bakker367dae42009-06-28 21:50:27 +000023
Ronald Cronac6ae352020-06-26 14:33:03 +020024 TEST_ASSERT( mbedtls_test_hexcmp( output, hash->x, 20, hash->len ) == 0 );
Paul Bakker367dae42009-06-28 21:50:27 +000025}
Paul Bakker33b43f12013-08-20 11:48:36 +020026/* END_CASE */
Paul Bakker367dae42009-06-28 21:50:27 +000027
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +020028/* BEGIN_CASE depends_on:MBEDTLS_SHA256_C */
Andrzej Kurekc470b6b2019-01-31 08:20:20 -050029void sha256_valid_param( )
30{
31 TEST_VALID_PARAM( mbedtls_sha256_free( NULL ) );
32}
33/* END_CASE */
34
TRodziewicz062f3532021-05-25 15:15:57 +020035/* BEGIN_CASE depends_on:MBEDTLS_SHA256_C:NOT_DEFINED */
Andrzej Kurekc470b6b2019-01-31 08:20:20 -050036void sha256_invalid_param( )
37{
38 mbedtls_sha256_context ctx;
39 unsigned char buf[64] = { 0 };
40 size_t const buflen = sizeof( buf );
41 int valid_type = 0;
42 int invalid_type = 42;
43
TRodziewicz062f3532021-05-25 15:15:57 +020044 TEST_EQUAL( MBEDTLS_ERR_SHA256_BAD_INPUT_DATA,
Andrzej Kurekc470b6b2019-01-31 08:20:20 -050045 mbedtls_sha256_starts_ret( &ctx, invalid_type ) );
46
TRodziewicz062f3532021-05-25 15:15:57 +020047 TEST_EQUAL( MBEDTLS_ERR_SHA256_BAD_INPUT_DATA,
Andrzej Kurekc470b6b2019-01-31 08:20:20 -050048 mbedtls_sha256_ret( buf, buflen,
49 buf, invalid_type ) );
50
51exit:
52 return;
53}
54/* END_CASE */
55
Mateusz Starzyke3c48b42021-04-19 16:46:28 +020056/* BEGIN_CASE depends_on:MBEDTLS_SHA224_C */
Ronald Cronac6ae352020-06-26 14:33:03 +020057void sha224( data_t * src_str, data_t * hash )
Paul Bakker367dae42009-06-28 21:50:27 +000058{
Paul Bakker367dae42009-06-28 21:50:27 +000059 unsigned char output[57];
60
Paul Bakker367dae42009-06-28 21:50:27 +000061 memset(output, 0x00, 57);
62
Paul Bakker367dae42009-06-28 21:50:27 +000063
Azim Khand30ca132017-06-09 04:32:58 +010064 TEST_ASSERT( mbedtls_sha256_ret( src_str->x, src_str->len, output, 1 ) == 0 );
Paul Bakker367dae42009-06-28 21:50:27 +000065
Ronald Cronac6ae352020-06-26 14:33:03 +020066 TEST_ASSERT( mbedtls_test_hexcmp( output, hash->x, 28, hash->len ) == 0 );
Paul Bakker367dae42009-06-28 21:50:27 +000067}
Paul Bakker33b43f12013-08-20 11:48:36 +020068/* END_CASE */
Paul Bakker367dae42009-06-28 21:50:27 +000069
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +020070/* BEGIN_CASE depends_on:MBEDTLS_SHA256_C */
Ronald Cronac6ae352020-06-26 14:33:03 +020071void mbedtls_sha256( data_t * src_str, data_t * hash )
Paul Bakker367dae42009-06-28 21:50:27 +000072{
Paul Bakker367dae42009-06-28 21:50:27 +000073 unsigned char output[65];
74
Paul Bakker367dae42009-06-28 21:50:27 +000075 memset(output, 0x00, 65);
76
Paul Bakker367dae42009-06-28 21:50:27 +000077
Azim Khand30ca132017-06-09 04:32:58 +010078 TEST_ASSERT( mbedtls_sha256_ret( src_str->x, src_str->len, output, 0 ) == 0 );
Paul Bakker367dae42009-06-28 21:50:27 +000079
Ronald Cronac6ae352020-06-26 14:33:03 +020080 TEST_ASSERT( mbedtls_test_hexcmp( output, hash->x, 32, hash->len ) == 0 );
Paul Bakker367dae42009-06-28 21:50:27 +000081}
Paul Bakker33b43f12013-08-20 11:48:36 +020082/* END_CASE */
Paul Bakker367dae42009-06-28 21:50:27 +000083
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +020084/* BEGIN_CASE depends_on:MBEDTLS_SHA512_C */
Andrzej Kurekc470b6b2019-01-31 08:20:20 -050085void sha512_valid_param( )
86{
87 TEST_VALID_PARAM( mbedtls_sha512_free( NULL ) );
88}
89/* END_CASE */
90
TRodziewicz062f3532021-05-25 15:15:57 +020091/* BEGIN_CASE depends_on:MBEDTLS_SHA512_C:NOT_DEFINED */
Andrzej Kurekc470b6b2019-01-31 08:20:20 -050092void sha512_invalid_param( )
93{
94 mbedtls_sha512_context ctx;
95 unsigned char buf[64] = { 0 };
96 size_t const buflen = sizeof( buf );
97 int valid_type = 0;
98 int invalid_type = 42;
99
TRodziewicz062f3532021-05-25 15:15:57 +0200100 TEST_EQUAL( MBEDTLS_ERR_SHA512_BAD_INPUT_DATA,
Andrzej Kurekc470b6b2019-01-31 08:20:20 -0500101 mbedtls_sha512_starts_ret( &ctx, invalid_type ) );
102
TRodziewicz062f3532021-05-25 15:15:57 +0200103 TEST_EQUAL( MBEDTLS_ERR_SHA512_BAD_INPUT_DATA,
Andrzej Kurekc470b6b2019-01-31 08:20:20 -0500104 mbedtls_sha512_ret( buf, buflen,
105 buf, invalid_type ) );
106
107exit:
108 return;
109}
110/* END_CASE */
111
Mateusz Starzykc6d94ab2021-05-19 13:31:59 +0200112/* BEGIN_CASE depends_on:MBEDTLS_SHA384_C */
Ronald Cronac6ae352020-06-26 14:33:03 +0200113void sha384( data_t * src_str, data_t * hash )
Paul Bakker367dae42009-06-28 21:50:27 +0000114{
Paul Bakker367dae42009-06-28 21:50:27 +0000115 unsigned char output[97];
116
Paul Bakker367dae42009-06-28 21:50:27 +0000117 memset(output, 0x00, 97);
118
Paul Bakker367dae42009-06-28 21:50:27 +0000119
Azim Khand30ca132017-06-09 04:32:58 +0100120 TEST_ASSERT( mbedtls_sha512_ret( src_str->x, src_str->len, output, 1 ) == 0 );
Paul Bakker367dae42009-06-28 21:50:27 +0000121
Ronald Cronac6ae352020-06-26 14:33:03 +0200122 TEST_ASSERT( mbedtls_test_hexcmp( output, hash->x, 48, hash->len ) == 0 );
Paul Bakker367dae42009-06-28 21:50:27 +0000123}
Paul Bakker33b43f12013-08-20 11:48:36 +0200124/* END_CASE */
Paul Bakker367dae42009-06-28 21:50:27 +0000125
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200126/* BEGIN_CASE depends_on:MBEDTLS_SHA512_C */
Ronald Cronac6ae352020-06-26 14:33:03 +0200127void mbedtls_sha512( data_t * src_str, data_t * hash )
Paul Bakker367dae42009-06-28 21:50:27 +0000128{
Paul Bakker367dae42009-06-28 21:50:27 +0000129 unsigned char output[129];
130
Paul Bakker367dae42009-06-28 21:50:27 +0000131 memset(output, 0x00, 129);
132
Paul Bakker367dae42009-06-28 21:50:27 +0000133
Azim Khand30ca132017-06-09 04:32:58 +0100134 TEST_ASSERT( mbedtls_sha512_ret( src_str->x, src_str->len, output, 0 ) == 0 );
Paul Bakker367dae42009-06-28 21:50:27 +0000135
Ronald Cronac6ae352020-06-26 14:33:03 +0200136 TEST_ASSERT( mbedtls_test_hexcmp( output, hash->x, 64, hash->len ) == 0 );
Paul Bakker367dae42009-06-28 21:50:27 +0000137}
Paul Bakker33b43f12013-08-20 11:48:36 +0200138/* END_CASE */
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000139
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200140/* BEGIN_CASE depends_on:MBEDTLS_SHA1_C:MBEDTLS_SELF_TEST */
Azim Khanf1aaec92017-05-30 14:23:15 +0100141void sha1_selftest( )
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000142{
Andres AG93012e82016-09-09 09:10:28 +0100143 TEST_ASSERT( mbedtls_sha1_self_test( 1 ) == 0 );
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000144}
Paul Bakker33b43f12013-08-20 11:48:36 +0200145/* END_CASE */
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000146
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200147/* BEGIN_CASE depends_on:MBEDTLS_SHA256_C:MBEDTLS_SELF_TEST */
Azim Khanf1aaec92017-05-30 14:23:15 +0100148void sha256_selftest( )
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000149{
Andres AG93012e82016-09-09 09:10:28 +0100150 TEST_ASSERT( mbedtls_sha256_self_test( 1 ) == 0 );
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000151}
Paul Bakker33b43f12013-08-20 11:48:36 +0200152/* END_CASE */
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000153
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200154/* BEGIN_CASE depends_on:MBEDTLS_SHA512_C:MBEDTLS_SELF_TEST */
Azim Khanf1aaec92017-05-30 14:23:15 +0100155void sha512_selftest( )
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000156{
Andres AG93012e82016-09-09 09:10:28 +0100157 TEST_ASSERT( mbedtls_sha512_self_test( 1 ) == 0 );
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000158}
Paul Bakker33b43f12013-08-20 11:48:36 +0200159/* END_CASE */