1/* BEGIN_HEADER */ 2#include "mbedtls/sha1.h" 3#include "mbedtls/sha256.h" 4#include "mbedtls/sha512.h" 5/* END_HEADER */ 6 7/* BEGIN_CASE depends_on:MBEDTLS_SHA1_C */ 8void mbedtls_sha1( data_t * src_str, data_t * hash ) 9{ 10 unsigned char output[41]; 11 12 memset(output, 0x00, 41); 13 14 15 TEST_ASSERT( mbedtls_sha1( src_str->x, src_str->len, output ) == 0 ); 16 17 TEST_ASSERT( mbedtls_test_hexcmp( output, hash->x, 20, hash->len ) == 0 ); 18} 19/* END_CASE */ 20 21/* BEGIN_CASE depends_on:MBEDTLS_SHA256_C:NOT_DEFINED */ 22void sha256_invalid_param( ) 23{ 24 mbedtls_sha256_context ctx; 25 unsigned char buf[64] = { 0 }; 26 size_t const buflen = sizeof( buf ); 27 int valid_type = 0; 28 int invalid_type = 42; 29 30 TEST_EQUAL( MBEDTLS_ERR_SHA256_BAD_INPUT_DATA, 31 mbedtls_sha256_starts( &ctx, invalid_type ) ); 32 33 TEST_EQUAL( MBEDTLS_ERR_SHA256_BAD_INPUT_DATA, 34 mbedtls_sha256( buf, buflen, 35 buf, invalid_type ) ); 36 37exit: 38 return; 39} 40/* END_CASE */ 41 42/* BEGIN_CASE depends_on:MBEDTLS_SHA224_C */ 43void sha224( data_t * src_str, data_t * hash ) 44{ 45 unsigned char output[57]; 46 47 memset(output, 0x00, 57); 48 49 50 TEST_ASSERT( mbedtls_sha256( src_str->x, src_str->len, output, 1 ) == 0 ); 51 52 TEST_ASSERT( mbedtls_test_hexcmp( output, hash->x, 28, hash->len ) == 0 ); 53} 54/* END_CASE */ 55 56/* BEGIN_CASE depends_on:MBEDTLS_SHA256_C */ 57void mbedtls_sha256( data_t * src_str, data_t * hash ) 58{ 59 unsigned char output[65]; 60 61 memset(output, 0x00, 65); 62 63 64 TEST_ASSERT( mbedtls_sha256( src_str->x, src_str->len, output, 0 ) == 0 ); 65 66 TEST_ASSERT( mbedtls_test_hexcmp( output, hash->x, 32, hash->len ) == 0 ); 67} 68/* END_CASE */ 69 70/* BEGIN_CASE depends_on:MBEDTLS_SHA512_C:NOT_DEFINED */ 71void sha512_invalid_param( ) 72{ 73 mbedtls_sha512_context ctx; 74 unsigned char buf[64] = { 0 }; 75 size_t const buflen = sizeof( buf ); 76 int valid_type = 0; 77 int invalid_type = 42; 78 79 TEST_EQUAL( MBEDTLS_ERR_SHA512_BAD_INPUT_DATA, 80 mbedtls_sha512_starts( &ctx, invalid_type ) ); 81 82 TEST_EQUAL( MBEDTLS_ERR_SHA512_BAD_INPUT_DATA, 83 mbedtls_sha512( buf, buflen, 84 buf, invalid_type ) ); 85 86exit: 87 return; 88} 89/* END_CASE */ 90 91/* BEGIN_CASE depends_on:MBEDTLS_SHA384_C */ 92void sha384( data_t * src_str, data_t * hash ) 93{ 94 unsigned char output[97]; 95 96 memset(output, 0x00, 97); 97 98 99 TEST_ASSERT( mbedtls_sha512( src_str->x, src_str->len, output, 1 ) == 0 ); 100 101 TEST_ASSERT( mbedtls_test_hexcmp( output, hash->x, 48, hash->len ) == 0 ); 102} 103/* END_CASE */ 104 105/* BEGIN_CASE depends_on:MBEDTLS_SHA512_C */ 106void mbedtls_sha512( data_t * src_str, data_t * hash ) 107{ 108 unsigned char output[129]; 109 110 memset(output, 0x00, 129); 111 112 113 TEST_ASSERT( mbedtls_sha512( src_str->x, src_str->len, output, 0 ) == 0 ); 114 115 TEST_ASSERT( mbedtls_test_hexcmp( output, hash->x, 64, hash->len ) == 0 ); 116} 117/* END_CASE */ 118 119/* BEGIN_CASE depends_on:MBEDTLS_SHA1_C:MBEDTLS_SELF_TEST */ 120void sha1_selftest( ) 121{ 122 TEST_ASSERT( mbedtls_sha1_self_test( 1 ) == 0 ); 123} 124/* END_CASE */ 125 126/* BEGIN_CASE depends_on:MBEDTLS_SHA256_C:MBEDTLS_SELF_TEST */ 127void sha256_selftest( ) 128{ 129 TEST_ASSERT( mbedtls_sha256_self_test( 1 ) == 0 ); 130} 131/* END_CASE */ 132 133/* BEGIN_CASE depends_on:MBEDTLS_SHA512_C:MBEDTLS_SELF_TEST */ 134void sha512_selftest( ) 135{ 136 TEST_ASSERT( mbedtls_sha512_self_test( 1 ) == 0 ); 137} 138/* END_CASE */ 139