blob: 79afe015df17e71d07aa54aeda0010afacc44cf9 [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 */
Ronald Cronac6ae352020-06-26 14:33:03 +02008void mbedtls_sha1( data_t * src_str, data_t * hash )
Paul Bakker367dae42009-06-28 21:50:27 +00009{
Paul Bakker367dae42009-06-28 21:50:27 +000010 unsigned char output[41];
11
Paul Bakker367dae42009-06-28 21:50:27 +000012 memset(output, 0x00, 41);
13
Paul Bakker367dae42009-06-28 21:50:27 +000014
TRodziewicz26371e42021-06-08 16:45:41 +020015 TEST_ASSERT( mbedtls_sha1( src_str->x, src_str->len, output ) == 0 );
Paul Bakker367dae42009-06-28 21:50:27 +000016
Ronald Cronac6ae352020-06-26 14:33:03 +020017 TEST_ASSERT( mbedtls_test_hexcmp( output, hash->x, 20, hash->len ) == 0 );
Paul Bakker367dae42009-06-28 21:50:27 +000018}
Paul Bakker33b43f12013-08-20 11:48:36 +020019/* END_CASE */
Paul Bakker367dae42009-06-28 21:50:27 +000020
Tuvshinzaya Erdenekhuu1db192b2022-07-29 15:44:38 +010021/* BEGIN_CASE depends_on:MBEDTLS_SHA256_C */
Andrzej Kurekc470b6b2019-01-31 08:20:20 -050022void sha256_invalid_param( )
23{
24 mbedtls_sha256_context ctx;
25 unsigned char buf[64] = { 0 };
26 size_t const buflen = sizeof( buf );
Andrzej Kurekc470b6b2019-01-31 08:20:20 -050027 int invalid_type = 42;
28
TRodziewicz062f3532021-05-25 15:15:57 +020029 TEST_EQUAL( MBEDTLS_ERR_SHA256_BAD_INPUT_DATA,
TRodziewicz26371e42021-06-08 16:45:41 +020030 mbedtls_sha256_starts( &ctx, invalid_type ) );
Andrzej Kurekc470b6b2019-01-31 08:20:20 -050031
TRodziewicz062f3532021-05-25 15:15:57 +020032 TEST_EQUAL( MBEDTLS_ERR_SHA256_BAD_INPUT_DATA,
TRodziewicz26371e42021-06-08 16:45:41 +020033 mbedtls_sha256( buf, buflen,
Andrzej Kurekc470b6b2019-01-31 08:20:20 -050034 buf, invalid_type ) );
35
36exit:
37 return;
38}
39/* END_CASE */
40
Mateusz Starzyke3c48b42021-04-19 16:46:28 +020041/* BEGIN_CASE depends_on:MBEDTLS_SHA224_C */
Ronald Cronac6ae352020-06-26 14:33:03 +020042void sha224( data_t * src_str, data_t * hash )
Paul Bakker367dae42009-06-28 21:50:27 +000043{
Paul Bakker367dae42009-06-28 21:50:27 +000044 unsigned char output[57];
45
Paul Bakker367dae42009-06-28 21:50:27 +000046 memset(output, 0x00, 57);
47
Paul Bakker367dae42009-06-28 21:50:27 +000048
Valerio Setti46e8fd82022-12-14 10:58:02 +010049 TEST_EQUAL( mbedtls_sha256( src_str->x, src_str->len, output, 1 ), 0 );
Paul Bakker367dae42009-06-28 21:50:27 +000050
Valerio Setti46e8fd82022-12-14 10:58:02 +010051 TEST_EQUAL( mbedtls_test_hexcmp( output, hash->x, 28, hash->len ), 0 );
Paul Bakker367dae42009-06-28 21:50:27 +000052}
Paul Bakker33b43f12013-08-20 11:48:36 +020053/* END_CASE */
Paul Bakker367dae42009-06-28 21:50:27 +000054
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +020055/* BEGIN_CASE depends_on:MBEDTLS_SHA256_C */
Ronald Cronac6ae352020-06-26 14:33:03 +020056void mbedtls_sha256( data_t * src_str, data_t * hash )
Paul Bakker367dae42009-06-28 21:50:27 +000057{
Paul Bakker367dae42009-06-28 21:50:27 +000058 unsigned char output[65];
59
Paul Bakker367dae42009-06-28 21:50:27 +000060 memset(output, 0x00, 65);
61
Paul Bakker367dae42009-06-28 21:50:27 +000062
Valerio Setti46e8fd82022-12-14 10:58:02 +010063 TEST_EQUAL( mbedtls_sha256( src_str->x, src_str->len, output, 0 ), 0 );
Paul Bakker367dae42009-06-28 21:50:27 +000064
Valerio Setti46e8fd82022-12-14 10:58:02 +010065 TEST_EQUAL( mbedtls_test_hexcmp( output, hash->x, 32, hash->len ), 0 );
Paul Bakker367dae42009-06-28 21:50:27 +000066}
Paul Bakker33b43f12013-08-20 11:48:36 +020067/* END_CASE */
Paul Bakker367dae42009-06-28 21:50:27 +000068
Tuvshinzaya Erdenekhuuca6fde22022-07-29 15:43:04 +010069/* BEGIN_CASE depends_on:MBEDTLS_SHA512_C */
Andrzej Kurekc470b6b2019-01-31 08:20:20 -050070void sha512_invalid_param( )
71{
72 mbedtls_sha512_context ctx;
73 unsigned char buf[64] = { 0 };
74 size_t const buflen = sizeof( buf );
Andrzej Kurekc470b6b2019-01-31 08:20:20 -050075 int invalid_type = 42;
76
TRodziewicz062f3532021-05-25 15:15:57 +020077 TEST_EQUAL( MBEDTLS_ERR_SHA512_BAD_INPUT_DATA,
TRodziewicz26371e42021-06-08 16:45:41 +020078 mbedtls_sha512_starts( &ctx, invalid_type ) );
Andrzej Kurekc470b6b2019-01-31 08:20:20 -050079
TRodziewicz062f3532021-05-25 15:15:57 +020080 TEST_EQUAL( MBEDTLS_ERR_SHA512_BAD_INPUT_DATA,
TRodziewicz26371e42021-06-08 16:45:41 +020081 mbedtls_sha512( buf, buflen,
Andrzej Kurekc470b6b2019-01-31 08:20:20 -050082 buf, invalid_type ) );
83
84exit:
85 return;
86}
87/* END_CASE */
88
Mateusz Starzykc6d94ab2021-05-19 13:31:59 +020089/* BEGIN_CASE depends_on:MBEDTLS_SHA384_C */
Ronald Cronac6ae352020-06-26 14:33:03 +020090void sha384( data_t * src_str, data_t * hash )
Paul Bakker367dae42009-06-28 21:50:27 +000091{
Paul Bakker367dae42009-06-28 21:50:27 +000092 unsigned char output[97];
93
Paul Bakker367dae42009-06-28 21:50:27 +000094 memset(output, 0x00, 97);
95
Paul Bakker367dae42009-06-28 21:50:27 +000096
Valerio Setti898e7a32022-12-14 08:55:53 +010097 TEST_EQUAL( mbedtls_sha512( src_str->x, src_str->len, output, 1 ), 0 );
Paul Bakker367dae42009-06-28 21:50:27 +000098
Valerio Setti898e7a32022-12-14 08:55:53 +010099 TEST_EQUAL( mbedtls_test_hexcmp( output, hash->x, 48, hash->len ), 0 );
Paul Bakker367dae42009-06-28 21:50:27 +0000100}
Paul Bakker33b43f12013-08-20 11:48:36 +0200101/* END_CASE */
Paul Bakker367dae42009-06-28 21:50:27 +0000102
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200103/* BEGIN_CASE depends_on:MBEDTLS_SHA512_C */
Ronald Cronac6ae352020-06-26 14:33:03 +0200104void mbedtls_sha512( data_t * src_str, data_t * hash )
Paul Bakker367dae42009-06-28 21:50:27 +0000105{
Paul Bakker367dae42009-06-28 21:50:27 +0000106 unsigned char output[129];
107
Paul Bakker367dae42009-06-28 21:50:27 +0000108 memset(output, 0x00, 129);
109
Paul Bakker367dae42009-06-28 21:50:27 +0000110
Valerio Setti898e7a32022-12-14 08:55:53 +0100111 TEST_EQUAL( mbedtls_sha512( src_str->x, src_str->len, output, 0 ), 0 );
Paul Bakker367dae42009-06-28 21:50:27 +0000112
Valerio Setti898e7a32022-12-14 08:55:53 +0100113 TEST_EQUAL( mbedtls_test_hexcmp( output, hash->x, 64, hash->len ), 0 );
Paul Bakker367dae42009-06-28 21:50:27 +0000114}
Paul Bakker33b43f12013-08-20 11:48:36 +0200115/* END_CASE */
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000116
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200117/* BEGIN_CASE depends_on:MBEDTLS_SHA1_C:MBEDTLS_SELF_TEST */
Azim Khanf1aaec92017-05-30 14:23:15 +0100118void sha1_selftest( )
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000119{
Andres AG93012e82016-09-09 09:10:28 +0100120 TEST_ASSERT( mbedtls_sha1_self_test( 1 ) == 0 );
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000121}
Paul Bakker33b43f12013-08-20 11:48:36 +0200122/* END_CASE */
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000123
Valerio Setti46e8fd82022-12-14 10:58:02 +0100124/* BEGIN_CASE depends_on:MBEDTLS_SHA224_C:MBEDTLS_SELF_TEST */
125void sha224_selftest( )
126{
127 TEST_EQUAL( mbedtls_sha224_self_test( 1 ), 0 );
128}
129/* END_CASE */
130
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200131/* BEGIN_CASE depends_on:MBEDTLS_SHA256_C:MBEDTLS_SELF_TEST */
Azim Khanf1aaec92017-05-30 14:23:15 +0100132void sha256_selftest( )
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000133{
Valerio Setti46e8fd82022-12-14 10:58:02 +0100134 TEST_EQUAL( mbedtls_sha256_self_test( 1 ), 0 );
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000135}
Paul Bakker33b43f12013-08-20 11:48:36 +0200136/* END_CASE */
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000137
Valerio Setti898e7a32022-12-14 08:55:53 +0100138/* BEGIN_CASE depends_on:MBEDTLS_SHA384_C:MBEDTLS_SELF_TEST */
139void sha384_selftest( )
140{
141 TEST_EQUAL( mbedtls_sha384_self_test( 1 ), 0 );
142}
143/* END_CASE */
144
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200145/* BEGIN_CASE depends_on:MBEDTLS_SHA512_C:MBEDTLS_SELF_TEST */
Azim Khanf1aaec92017-05-30 14:23:15 +0100146void sha512_selftest( )
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000147{
Valerio Setti898e7a32022-12-14 08:55:53 +0100148 TEST_EQUAL( mbedtls_sha512_self_test( 1 ), 0 );
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000149}
Paul Bakker33b43f12013-08-20 11:48:36 +0200150/* END_CASE */