• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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