Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of mbedtls by
tests/suites/test_suite_ecjpake.function@2:bbdeda018a3c, 2017-09-29 (annotated)
- Committer:
- Jasper Wallace
- Date:
- Fri Sep 29 19:50:30 2017 +0100
- Revision:
- 2:bbdeda018a3c
- Parent:
- 0:cdf462088d13
Update to mbedtls 2.6.0, many changes.
Changes to mbedtls sources made:
in include/mbedtls/config.h comment out:
#define MBEDTLS_FS_IO
#define MBEDTLS_NET_C
#define MBEDTLS_TIMING_C
uncomment:
#define MBEDTLS_NO_PLATFORM_ENTROPY
remove the following directorys:
programs
yotta
visualc
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| markrad | 0:cdf462088d13 | 1 | /* BEGIN_HEADER */ |
| markrad | 0:cdf462088d13 | 2 | #include "mbedtls/ecjpake.h" |
| markrad | 0:cdf462088d13 | 3 | |
| markrad | 0:cdf462088d13 | 4 | #if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) && defined(MBEDTLS_SHA256_C) |
| markrad | 0:cdf462088d13 | 5 | static const unsigned char ecjpake_test_x1[] = { |
| markrad | 0:cdf462088d13 | 6 | 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, |
| markrad | 0:cdf462088d13 | 7 | 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, |
| markrad | 0:cdf462088d13 | 8 | 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x21 |
| markrad | 0:cdf462088d13 | 9 | }; |
| markrad | 0:cdf462088d13 | 10 | |
| markrad | 0:cdf462088d13 | 11 | static const unsigned char ecjpake_test_x2[] = { |
| markrad | 0:cdf462088d13 | 12 | 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, |
| markrad | 0:cdf462088d13 | 13 | 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, |
| markrad | 0:cdf462088d13 | 14 | 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x81 |
| markrad | 0:cdf462088d13 | 15 | }; |
| markrad | 0:cdf462088d13 | 16 | |
| markrad | 0:cdf462088d13 | 17 | static const unsigned char ecjpake_test_x3[] = { |
| markrad | 0:cdf462088d13 | 18 | 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, |
| markrad | 0:cdf462088d13 | 19 | 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, |
| markrad | 0:cdf462088d13 | 20 | 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x81 |
| markrad | 0:cdf462088d13 | 21 | }; |
| markrad | 0:cdf462088d13 | 22 | |
| markrad | 0:cdf462088d13 | 23 | static const unsigned char ecjpake_test_x4[] = { |
| markrad | 0:cdf462088d13 | 24 | 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, |
| markrad | 0:cdf462088d13 | 25 | 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, |
| markrad | 0:cdf462088d13 | 26 | 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe1 |
| markrad | 0:cdf462088d13 | 27 | }; |
| markrad | 0:cdf462088d13 | 28 | |
| markrad | 0:cdf462088d13 | 29 | static const unsigned char ecjpake_test_X1[] = { |
| markrad | 0:cdf462088d13 | 30 | 0x04, 0xac, 0xcf, 0x01, 0x06, 0xef, 0x85, 0x8f, 0xa2, 0xd9, 0x19, 0x33, |
| markrad | 0:cdf462088d13 | 31 | 0x13, 0x46, 0x80, 0x5a, 0x78, 0xb5, 0x8b, 0xba, 0xd0, 0xb8, 0x44, 0xe5, |
| markrad | 0:cdf462088d13 | 32 | 0xc7, 0x89, 0x28, 0x79, 0x14, 0x61, 0x87, 0xdd, 0x26, 0x66, 0xad, 0xa7, |
| markrad | 0:cdf462088d13 | 33 | 0x81, 0xbb, 0x7f, 0x11, 0x13, 0x72, 0x25, 0x1a, 0x89, 0x10, 0x62, 0x1f, |
| markrad | 0:cdf462088d13 | 34 | 0x63, 0x4d, 0xf1, 0x28, 0xac, 0x48, 0xe3, 0x81, 0xfd, 0x6e, 0xf9, 0x06, |
| markrad | 0:cdf462088d13 | 35 | 0x07, 0x31, 0xf6, 0x94, 0xa4 |
| markrad | 0:cdf462088d13 | 36 | }; |
| markrad | 0:cdf462088d13 | 37 | |
| markrad | 0:cdf462088d13 | 38 | static const unsigned char ecjpake_test_X2[] = { |
| markrad | 0:cdf462088d13 | 39 | 0x04, 0x7e, 0xa6, 0xe3, 0xa4, 0x48, 0x70, 0x37, 0xa9, 0xe0, 0xdb, 0xd7, |
| markrad | 0:cdf462088d13 | 40 | 0x92, 0x62, 0xb2, 0xcc, 0x27, 0x3e, 0x77, 0x99, 0x30, 0xfc, 0x18, 0x40, |
| markrad | 0:cdf462088d13 | 41 | 0x9a, 0xc5, 0x36, 0x1c, 0x5f, 0xe6, 0x69, 0xd7, 0x02, 0xe1, 0x47, 0x79, |
| markrad | 0:cdf462088d13 | 42 | 0x0a, 0xeb, 0x4c, 0xe7, 0xfd, 0x65, 0x75, 0xab, 0x0f, 0x6c, 0x7f, 0xd1, |
| markrad | 0:cdf462088d13 | 43 | 0xc3, 0x35, 0x93, 0x9a, 0xa8, 0x63, 0xba, 0x37, 0xec, 0x91, 0xb7, 0xe3, |
| markrad | 0:cdf462088d13 | 44 | 0x2b, 0xb0, 0x13, 0xbb, 0x2b |
| markrad | 0:cdf462088d13 | 45 | }; |
| markrad | 0:cdf462088d13 | 46 | |
| markrad | 0:cdf462088d13 | 47 | static const unsigned char ecjpake_test_X3[] = { |
| markrad | 0:cdf462088d13 | 48 | 0x04, 0x7e, 0xa6, 0xe3, 0xa4, 0x48, 0x70, 0x37, 0xa9, 0xe0, 0xdb, 0xd7, |
| markrad | 0:cdf462088d13 | 49 | 0x92, 0x62, 0xb2, 0xcc, 0x27, 0x3e, 0x77, 0x99, 0x30, 0xfc, 0x18, 0x40, |
| markrad | 0:cdf462088d13 | 50 | 0x9a, 0xc5, 0x36, 0x1c, 0x5f, 0xe6, 0x69, 0xd7, 0x02, 0xe1, 0x47, 0x79, |
| markrad | 0:cdf462088d13 | 51 | 0x0a, 0xeb, 0x4c, 0xe7, 0xfd, 0x65, 0x75, 0xab, 0x0f, 0x6c, 0x7f, 0xd1, |
| markrad | 0:cdf462088d13 | 52 | 0xc3, 0x35, 0x93, 0x9a, 0xa8, 0x63, 0xba, 0x37, 0xec, 0x91, 0xb7, 0xe3, |
| markrad | 0:cdf462088d13 | 53 | 0x2b, 0xb0, 0x13, 0xbb, 0x2b |
| markrad | 0:cdf462088d13 | 54 | }; |
| markrad | 0:cdf462088d13 | 55 | |
| markrad | 0:cdf462088d13 | 56 | static const unsigned char ecjpake_test_X4[] = { |
| markrad | 0:cdf462088d13 | 57 | 0x04, 0x19, 0x0a, 0x07, 0x70, 0x0f, 0xfa, 0x4b, 0xe6, 0xae, 0x1d, 0x79, |
| markrad | 0:cdf462088d13 | 58 | 0xee, 0x0f, 0x06, 0xae, 0xb5, 0x44, 0xcd, 0x5a, 0xdd, 0xaa, 0xbe, 0xdf, |
| markrad | 0:cdf462088d13 | 59 | 0x70, 0xf8, 0x62, 0x33, 0x21, 0x33, 0x2c, 0x54, 0xf3, 0x55, 0xf0, 0xfb, |
| markrad | 0:cdf462088d13 | 60 | 0xfe, 0xc7, 0x83, 0xed, 0x35, 0x9e, 0x5d, 0x0b, 0xf7, 0x37, 0x7a, 0x0f, |
| markrad | 0:cdf462088d13 | 61 | 0xc4, 0xea, 0x7a, 0xce, 0x47, 0x3c, 0x9c, 0x11, 0x2b, 0x41, 0xcc, 0xd4, |
| markrad | 0:cdf462088d13 | 62 | 0x1a, 0xc5, 0x6a, 0x56, 0x12 |
| markrad | 0:cdf462088d13 | 63 | }; |
| markrad | 0:cdf462088d13 | 64 | |
| markrad | 0:cdf462088d13 | 65 | /* Load my private and public keys, and peer's public keys */ |
| markrad | 0:cdf462088d13 | 66 | static int ecjpake_test_load( mbedtls_ecjpake_context *ctx, |
| markrad | 0:cdf462088d13 | 67 | const unsigned char *xm1, size_t len_xm1, |
| markrad | 0:cdf462088d13 | 68 | const unsigned char *xm2, size_t len_xm2, |
| markrad | 0:cdf462088d13 | 69 | const unsigned char *Xm1, size_t len_Xm1, |
| markrad | 0:cdf462088d13 | 70 | const unsigned char *Xm2, size_t len_Xm2, |
| markrad | 0:cdf462088d13 | 71 | const unsigned char *Xp1, size_t len_Xp1, |
| markrad | 0:cdf462088d13 | 72 | const unsigned char *Xp2, size_t len_Xp2 ) |
| markrad | 0:cdf462088d13 | 73 | { |
| markrad | 0:cdf462088d13 | 74 | int ret; |
| markrad | 0:cdf462088d13 | 75 | |
| markrad | 0:cdf462088d13 | 76 | MBEDTLS_MPI_CHK( mbedtls_mpi_read_binary( &ctx->xm1, xm1, len_xm1 ) ); |
| markrad | 0:cdf462088d13 | 77 | MBEDTLS_MPI_CHK( mbedtls_mpi_read_binary( &ctx->xm2, xm2, len_xm2 ) ); |
| markrad | 0:cdf462088d13 | 78 | |
| markrad | 0:cdf462088d13 | 79 | MBEDTLS_MPI_CHK( mbedtls_ecp_point_read_binary( &ctx->grp, |
| markrad | 0:cdf462088d13 | 80 | &ctx->Xm1, Xm1, len_Xm1 ) ); |
| markrad | 0:cdf462088d13 | 81 | MBEDTLS_MPI_CHK( mbedtls_ecp_point_read_binary( &ctx->grp, |
| markrad | 0:cdf462088d13 | 82 | &ctx->Xm2, Xm2, len_Xm2 ) ); |
| markrad | 0:cdf462088d13 | 83 | MBEDTLS_MPI_CHK( mbedtls_ecp_point_read_binary( &ctx->grp, |
| markrad | 0:cdf462088d13 | 84 | &ctx->Xp1, Xp1, len_Xp1 ) ); |
| markrad | 0:cdf462088d13 | 85 | MBEDTLS_MPI_CHK( mbedtls_ecp_point_read_binary( &ctx->grp, |
| markrad | 0:cdf462088d13 | 86 | &ctx->Xp2, Xp2, len_Xp2 ) ); |
| markrad | 0:cdf462088d13 | 87 | |
| markrad | 0:cdf462088d13 | 88 | cleanup: |
| markrad | 0:cdf462088d13 | 89 | return( ret ); |
| markrad | 0:cdf462088d13 | 90 | } |
| markrad | 0:cdf462088d13 | 91 | |
| markrad | 0:cdf462088d13 | 92 | #define ADD_SIZE( x ) x, sizeof( x ) |
| markrad | 0:cdf462088d13 | 93 | #endif /* MBEDTLS_ECP_DP_SECP256R1_ENABLED && MBEDTLS_SHA256_C */ |
| markrad | 0:cdf462088d13 | 94 | /* END_HEADER */ |
| markrad | 0:cdf462088d13 | 95 | |
| markrad | 0:cdf462088d13 | 96 | /* BEGIN_DEPENDENCIES |
| markrad | 0:cdf462088d13 | 97 | * depends_on:MBEDTLS_ECJPAKE_C |
| markrad | 0:cdf462088d13 | 98 | * END_DEPENDENCIES |
| markrad | 0:cdf462088d13 | 99 | */ |
| markrad | 0:cdf462088d13 | 100 | |
| markrad | 0:cdf462088d13 | 101 | /* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */ |
| markrad | 0:cdf462088d13 | 102 | void ecjpake_selftest() |
| markrad | 0:cdf462088d13 | 103 | { |
| markrad | 0:cdf462088d13 | 104 | TEST_ASSERT( mbedtls_ecjpake_self_test( 1 ) == 0 ); |
| markrad | 0:cdf462088d13 | 105 | } |
| markrad | 0:cdf462088d13 | 106 | /* END_CASE */ |
| markrad | 0:cdf462088d13 | 107 | |
| markrad | 0:cdf462088d13 | 108 | /* BEGIN_CASE depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_SHA256_C */ |
| markrad | 0:cdf462088d13 | 109 | void read_round_one( int role, char *data, int ref_ret ) |
| markrad | 0:cdf462088d13 | 110 | { |
| markrad | 0:cdf462088d13 | 111 | mbedtls_ecjpake_context ctx; |
| Jasper Wallace |
2:bbdeda018a3c | 112 | |
| Jasper Wallace |
2:bbdeda018a3c | 113 | const unsigned char * pw = NULL; |
| Jasper Wallace |
2:bbdeda018a3c | 114 | const size_t pw_len = 0; |
| Jasper Wallace |
2:bbdeda018a3c | 115 | |
| markrad | 0:cdf462088d13 | 116 | unsigned char *msg; |
| markrad | 0:cdf462088d13 | 117 | size_t len; |
| markrad | 0:cdf462088d13 | 118 | |
| markrad | 0:cdf462088d13 | 119 | mbedtls_ecjpake_init( &ctx ); |
| markrad | 0:cdf462088d13 | 120 | |
| markrad | 0:cdf462088d13 | 121 | msg = unhexify_alloc( data, &len ); |
| markrad | 0:cdf462088d13 | 122 | TEST_ASSERT( msg != NULL ); |
| markrad | 0:cdf462088d13 | 123 | |
| markrad | 0:cdf462088d13 | 124 | TEST_ASSERT( mbedtls_ecjpake_setup( &ctx, role, |
| Jasper Wallace |
2:bbdeda018a3c | 125 | MBEDTLS_MD_SHA256, MBEDTLS_ECP_DP_SECP256R1, pw, pw_len ) == 0 ); |
| markrad | 0:cdf462088d13 | 126 | |
| markrad | 0:cdf462088d13 | 127 | TEST_ASSERT( mbedtls_ecjpake_read_round_one( &ctx, msg, len ) == ref_ret ); |
| markrad | 0:cdf462088d13 | 128 | |
| markrad | 0:cdf462088d13 | 129 | exit: |
| markrad | 0:cdf462088d13 | 130 | mbedtls_ecjpake_free( &ctx ); |
| markrad | 0:cdf462088d13 | 131 | mbedtls_free( msg ); |
| markrad | 0:cdf462088d13 | 132 | } |
| markrad | 0:cdf462088d13 | 133 | /* END_CASE */ |
| markrad | 0:cdf462088d13 | 134 | |
| markrad | 0:cdf462088d13 | 135 | /* BEGIN_CASE depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_SHA256_C */ |
| markrad | 0:cdf462088d13 | 136 | void read_round_two_cli( char *data, int ref_ret ) |
| markrad | 0:cdf462088d13 | 137 | { |
| markrad | 0:cdf462088d13 | 138 | mbedtls_ecjpake_context ctx; |
| Jasper Wallace |
2:bbdeda018a3c | 139 | |
| Jasper Wallace |
2:bbdeda018a3c | 140 | const unsigned char * pw = NULL; |
| Jasper Wallace |
2:bbdeda018a3c | 141 | const size_t pw_len = 0; |
| Jasper Wallace |
2:bbdeda018a3c | 142 | |
| markrad | 0:cdf462088d13 | 143 | unsigned char *msg; |
| markrad | 0:cdf462088d13 | 144 | size_t len; |
| markrad | 0:cdf462088d13 | 145 | |
| markrad | 0:cdf462088d13 | 146 | mbedtls_ecjpake_init( &ctx ); |
| markrad | 0:cdf462088d13 | 147 | |
| markrad | 0:cdf462088d13 | 148 | msg = unhexify_alloc( data, &len ); |
| markrad | 0:cdf462088d13 | 149 | TEST_ASSERT( msg != NULL ); |
| markrad | 0:cdf462088d13 | 150 | |
| markrad | 0:cdf462088d13 | 151 | TEST_ASSERT( mbedtls_ecjpake_setup( &ctx, MBEDTLS_ECJPAKE_CLIENT, |
| Jasper Wallace |
2:bbdeda018a3c | 152 | MBEDTLS_MD_SHA256, MBEDTLS_ECP_DP_SECP256R1, pw, pw_len ) == 0 ); |
| markrad | 0:cdf462088d13 | 153 | |
| markrad | 0:cdf462088d13 | 154 | TEST_ASSERT( ecjpake_test_load( &ctx, |
| markrad | 0:cdf462088d13 | 155 | ADD_SIZE( ecjpake_test_x1 ), ADD_SIZE( ecjpake_test_x2 ), |
| markrad | 0:cdf462088d13 | 156 | ADD_SIZE( ecjpake_test_X1 ), ADD_SIZE( ecjpake_test_X2 ), |
| markrad | 0:cdf462088d13 | 157 | ADD_SIZE( ecjpake_test_X3 ), ADD_SIZE( ecjpake_test_X4 ) ) |
| markrad | 0:cdf462088d13 | 158 | == 0 ); |
| markrad | 0:cdf462088d13 | 159 | |
| markrad | 0:cdf462088d13 | 160 | TEST_ASSERT( mbedtls_ecjpake_read_round_two( &ctx, msg, len ) == ref_ret ); |
| markrad | 0:cdf462088d13 | 161 | |
| markrad | 0:cdf462088d13 | 162 | exit: |
| markrad | 0:cdf462088d13 | 163 | mbedtls_ecjpake_free( &ctx ); |
| markrad | 0:cdf462088d13 | 164 | mbedtls_free( msg ); |
| markrad | 0:cdf462088d13 | 165 | } |
| markrad | 0:cdf462088d13 | 166 | /* END_CASE */ |
| markrad | 0:cdf462088d13 | 167 | |
| markrad | 0:cdf462088d13 | 168 | /* BEGIN_CASE depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_SHA256_C */ |
| markrad | 0:cdf462088d13 | 169 | void read_round_two_srv( char *data, int ref_ret ) |
| markrad | 0:cdf462088d13 | 170 | { |
| markrad | 0:cdf462088d13 | 171 | mbedtls_ecjpake_context ctx; |
| Jasper Wallace |
2:bbdeda018a3c | 172 | |
| Jasper Wallace |
2:bbdeda018a3c | 173 | const unsigned char * pw = NULL; |
| Jasper Wallace |
2:bbdeda018a3c | 174 | const size_t pw_len = 0; |
| Jasper Wallace |
2:bbdeda018a3c | 175 | |
| markrad | 0:cdf462088d13 | 176 | unsigned char *msg; |
| markrad | 0:cdf462088d13 | 177 | size_t len; |
| markrad | 0:cdf462088d13 | 178 | |
| markrad | 0:cdf462088d13 | 179 | mbedtls_ecjpake_init( &ctx ); |
| markrad | 0:cdf462088d13 | 180 | |
| markrad | 0:cdf462088d13 | 181 | msg = unhexify_alloc( data, &len ); |
| markrad | 0:cdf462088d13 | 182 | TEST_ASSERT( msg != NULL ); |
| markrad | 0:cdf462088d13 | 183 | |
| markrad | 0:cdf462088d13 | 184 | TEST_ASSERT( mbedtls_ecjpake_setup( &ctx, MBEDTLS_ECJPAKE_SERVER, |
| Jasper Wallace |
2:bbdeda018a3c | 185 | MBEDTLS_MD_SHA256, MBEDTLS_ECP_DP_SECP256R1, pw, pw_len ) == 0 ); |
| markrad | 0:cdf462088d13 | 186 | |
| markrad | 0:cdf462088d13 | 187 | TEST_ASSERT( ecjpake_test_load( &ctx, |
| markrad | 0:cdf462088d13 | 188 | ADD_SIZE( ecjpake_test_x3 ), ADD_SIZE( ecjpake_test_x4 ), |
| markrad | 0:cdf462088d13 | 189 | ADD_SIZE( ecjpake_test_X3 ), ADD_SIZE( ecjpake_test_X4 ), |
| markrad | 0:cdf462088d13 | 190 | ADD_SIZE( ecjpake_test_X1 ), ADD_SIZE( ecjpake_test_X2 ) ) |
| markrad | 0:cdf462088d13 | 191 | == 0 ); |
| markrad | 0:cdf462088d13 | 192 | |
| markrad | 0:cdf462088d13 | 193 | TEST_ASSERT( mbedtls_ecjpake_read_round_two( &ctx, msg, len ) == ref_ret ); |
| markrad | 0:cdf462088d13 | 194 | |
| markrad | 0:cdf462088d13 | 195 | exit: |
| markrad | 0:cdf462088d13 | 196 | mbedtls_ecjpake_free( &ctx ); |
| markrad | 0:cdf462088d13 | 197 | mbedtls_free( msg ); |
| markrad | 0:cdf462088d13 | 198 | } |
| markrad | 0:cdf462088d13 | 199 | /* END_CASE */ |
