blob: 60dd3c873c6b4446354f9d407286a74feba4505b [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 */
David Horstmann71159f42023-01-03 12:51:59 +00008void 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
David Horstmann71159f42023-01-03 12:51:59 +000015 TEST_ASSERT(mbedtls_sha1(src_str->x, src_str->len, output) == 0);
Paul Bakker367dae42009-06-28 21:50:27 +000016
David Horstmann71159f42023-01-03 12:51:59 +000017 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 */
David Horstmann71159f42023-01-03 12:51:59 +000022void sha256_invalid_param()
Andrzej Kurekc470b6b2019-01-31 08:20:20 -050023{
24 mbedtls_sha256_context ctx;
25 unsigned char buf[64] = { 0 };
David Horstmann71159f42023-01-03 12:51:59 +000026 size_t const buflen = sizeof(buf);
Andrzej Kurekc470b6b2019-01-31 08:20:20 -050027 int invalid_type = 42;
28
David Horstmann71159f42023-01-03 12:51:59 +000029 TEST_EQUAL(MBEDTLS_ERR_SHA256_BAD_INPUT_DATA,
30 mbedtls_sha256_starts(&ctx, invalid_type));
Andrzej Kurekc470b6b2019-01-31 08:20:20 -050031
David Horstmann71159f42023-01-03 12:51:59 +000032 TEST_EQUAL(MBEDTLS_ERR_SHA256_BAD_INPUT_DATA,
33 mbedtls_sha256(buf, buflen,
34 buf, invalid_type));
Andrzej Kurekc470b6b2019-01-31 08:20:20 -050035
36exit:
37 return;
38}
39/* END_CASE */
40
Mateusz Starzyke3c48b42021-04-19 16:46:28 +020041/* BEGIN_CASE depends_on:MBEDTLS_SHA224_C */
David Horstmann71159f42023-01-03 12:51:59 +000042void 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
David Horstmann71159f42023-01-03 12:51:59 +000049 TEST_EQUAL(mbedtls_sha256(src_str->x, src_str->len, output, 1), 0);
Paul Bakker367dae42009-06-28 21:50:27 +000050
David Horstmann71159f42023-01-03 12:51:59 +000051 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 */
David Horstmann71159f42023-01-03 12:51:59 +000056void 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
David Horstmann71159f42023-01-03 12:51:59 +000063 TEST_EQUAL(mbedtls_sha256(src_str->x, src_str->len, output, 0), 0);
Paul Bakker367dae42009-06-28 21:50:27 +000064
David Horstmann71159f42023-01-03 12:51:59 +000065 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 */
David Horstmann71159f42023-01-03 12:51:59 +000070void sha512_invalid_param()
Andrzej Kurekc470b6b2019-01-31 08:20:20 -050071{
72 mbedtls_sha512_context ctx;
73 unsigned char buf[64] = { 0 };
David Horstmann71159f42023-01-03 12:51:59 +000074 size_t const buflen = sizeof(buf);
Andrzej Kurekc470b6b2019-01-31 08:20:20 -050075 int invalid_type = 42;
76
David Horstmann71159f42023-01-03 12:51:59 +000077 TEST_EQUAL(MBEDTLS_ERR_SHA512_BAD_INPUT_DATA,
78 mbedtls_sha512_starts(&ctx, invalid_type));
Andrzej Kurekc470b6b2019-01-31 08:20:20 -050079
David Horstmann71159f42023-01-03 12:51:59 +000080 TEST_EQUAL(MBEDTLS_ERR_SHA512_BAD_INPUT_DATA,
81 mbedtls_sha512(buf, buflen,
82 buf, invalid_type));
Andrzej Kurekc470b6b2019-01-31 08:20:20 -050083
84exit:
85 return;
86}
87/* END_CASE */
88
Mateusz Starzykc6d94ab2021-05-19 13:31:59 +020089/* BEGIN_CASE depends_on:MBEDTLS_SHA384_C */
David Horstmann71159f42023-01-03 12:51:59 +000090void 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
David Horstmann71159f42023-01-03 12:51:59 +000097 TEST_EQUAL(mbedtls_sha512(src_str->x, src_str->len, output, 1), 0);
Paul Bakker367dae42009-06-28 21:50:27 +000098
David Horstmann71159f42023-01-03 12:51:59 +000099 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 */
David Horstmann71159f42023-01-03 12:51:59 +0000104void 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
David Horstmann71159f42023-01-03 12:51:59 +0000111 TEST_EQUAL(mbedtls_sha512(src_str->x, src_str->len, output, 0), 0);
Paul Bakker367dae42009-06-28 21:50:27 +0000112
David Horstmann71159f42023-01-03 12:51:59 +0000113 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 */
David Horstmann71159f42023-01-03 12:51:59 +0000118void sha1_selftest()
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000119{
David Horstmann71159f42023-01-03 12:51:59 +0000120 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 */
David Horstmann71159f42023-01-03 12:51:59 +0000125void sha224_selftest()
Valerio Setti46e8fd82022-12-14 10:58:02 +0100126{
David Horstmann71159f42023-01-03 12:51:59 +0000127 TEST_EQUAL(mbedtls_sha224_self_test(1), 0);
Valerio Setti46e8fd82022-12-14 10:58:02 +0100128}
129/* END_CASE */
130
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200131/* BEGIN_CASE depends_on:MBEDTLS_SHA256_C:MBEDTLS_SELF_TEST */
David Horstmann71159f42023-01-03 12:51:59 +0000132void sha256_selftest()
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000133{
David Horstmann71159f42023-01-03 12:51:59 +0000134 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 */
David Horstmann71159f42023-01-03 12:51:59 +0000139void sha384_selftest()
Valerio Setti898e7a32022-12-14 08:55:53 +0100140{
David Horstmann71159f42023-01-03 12:51:59 +0000141 TEST_EQUAL(mbedtls_sha384_self_test(1), 0);
Valerio Setti898e7a32022-12-14 08:55:53 +0100142}
143/* END_CASE */
144
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200145/* BEGIN_CASE depends_on:MBEDTLS_SHA512_C:MBEDTLS_SELF_TEST */
David Horstmann71159f42023-01-03 12:51:59 +0000146void sha512_selftest()
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000147{
David Horstmann71159f42023-01-03 12:51:59 +0000148 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 */