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 */ 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 invalid_type = 42; 28 29 TEST_EQUAL( MBEDTLS_ERR_SHA256_BAD_INPUT_DATA, 30 mbedtls_sha256_starts( &ctx, invalid_type ) ); 31 32 TEST_EQUAL( MBEDTLS_ERR_SHA256_BAD_INPUT_DATA, 33 mbedtls_sha256( buf, buflen, 34 buf, invalid_type ) ); 35 36exit: 37 return; 38} 39/* END_CASE */ 40 41/* BEGIN_CASE depends_on:MBEDTLS_SHA224_C */ 42void sha224( data_t * src_str, data_t * hash ) 43{ 44 unsigned char output[57]; 45 46 memset(output, 0x00, 57); 47 48 49 TEST_ASSERT( mbedtls_sha256( src_str->x, src_str->len, output, 1 ) == 0 ); 50 51 TEST_ASSERT( mbedtls_test_hexcmp( output, hash->x, 28, hash->len ) == 0 ); 52} 53/* END_CASE */ 54 55/* BEGIN_CASE depends_on:MBEDTLS_SHA256_C */ 56void mbedtls_sha256( data_t * src_str, data_t * hash ) 57{ 58 unsigned char output[65]; 59 60 memset(output, 0x00, 65); 61 62 63 TEST_ASSERT( mbedtls_sha256( src_str->x, src_str->len, output, 0 ) == 0 ); 64 65 TEST_ASSERT( mbedtls_test_hexcmp( output, hash->x, 32, hash->len ) == 0 ); 66} 67/* END_CASE */ 68 69/* BEGIN_CASE depends_on:MBEDTLS_SHA512_C */ 70void sha512_invalid_param( ) 71{ 72 mbedtls_sha512_context ctx; 73 unsigned char buf[64] = { 0 }; 74 size_t const buflen = sizeof( buf ); 75 int invalid_type = 42; 76 77 TEST_EQUAL( MBEDTLS_ERR_SHA512_BAD_INPUT_DATA, 78 mbedtls_sha512_starts( &ctx, invalid_type ) ); 79 80 TEST_EQUAL( MBEDTLS_ERR_SHA512_BAD_INPUT_DATA, 81 mbedtls_sha512( buf, buflen, 82 buf, invalid_type ) ); 83 84exit: 85 return; 86} 87/* END_CASE */ 88 89/* BEGIN_CASE depends_on:MBEDTLS_SHA384_C */ 90void sha384( data_t * src_str, data_t * hash ) 91{ 92 unsigned char output[97]; 93 94 memset(output, 0x00, 97); 95 96 97 TEST_ASSERT( mbedtls_sha512( src_str->x, src_str->len, output, 1 ) == 0 ); 98 99 TEST_ASSERT( mbedtls_test_hexcmp( output, hash->x, 48, hash->len ) == 0 ); 100} 101/* END_CASE */ 102 103/* BEGIN_CASE depends_on:MBEDTLS_SHA512_C */ 104void mbedtls_sha512( data_t * src_str, data_t * hash ) 105{ 106 unsigned char output[129]; 107 108 memset(output, 0x00, 129); 109 110 111 TEST_ASSERT( mbedtls_sha512( src_str->x, src_str->len, output, 0 ) == 0 ); 112 113 TEST_ASSERT( mbedtls_test_hexcmp( output, hash->x, 64, hash->len ) == 0 ); 114} 115/* END_CASE */ 116 117/* BEGIN_CASE depends_on:MBEDTLS_SHA1_C:MBEDTLS_SELF_TEST */ 118void sha1_selftest( ) 119{ 120 TEST_ASSERT( mbedtls_sha1_self_test( 1 ) == 0 ); 121} 122/* END_CASE */ 123 124/* BEGIN_CASE depends_on:MBEDTLS_SHA256_C:MBEDTLS_SELF_TEST */ 125void sha256_selftest( ) 126{ 127 TEST_ASSERT( mbedtls_sha256_self_test( 1 ) == 0 ); 128} 129/* END_CASE */ 130 131/* BEGIN_CASE depends_on:MBEDTLS_SHA512_C:MBEDTLS_SELF_TEST */ 132void sha512_selftest( ) 133{ 134 TEST_ASSERT( mbedtls_sha512_self_test( 1 ) == 0 ); 135} 136/* END_CASE */ 137