@@ -92,7 +92,8 @@ static int ssl_handshake_params_init( mbedtls_ssl_handshake_params *handshake )
92
92
#if defined(MBEDTLS_DHM_C )
93
93
mbedtls_dhm_init ( & handshake -> dhm_ctx );
94
94
#endif
95
- #if defined(MBEDTLS_ECDH_C )
95
+ #if defined(MBEDTLS_ECDH_C ) && \
96
+ defined(MBEDTLS_KEY_EXCHANGE_SOME_ECDH_OR_ECDHE_1_2_ENABLED )
96
97
mbedtls_ecdh_init ( & handshake -> ecdh_ctx );
97
98
#endif
98
99
#if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED )
@@ -121,9 +122,11 @@ static int ssl_handshake_params_init( mbedtls_ssl_handshake_params *handshake )
121
122
122
123
static int ssl_handshake_init ( mbedtls_ssl_context * ssl )
123
124
{
125
+ #if defined(MBEDTLS_SSL_PROTO_TLS1_2 )
124
126
/* Clear old handshake information if present */
125
127
if ( ssl -> transform_negotiate )
126
128
mbedtls_ssl_transform_free ( ssl -> transform_negotiate );
129
+ #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */
127
130
if ( ssl -> session_negotiate )
128
131
mbedtls_ssl_session_free ( ssl -> session_negotiate );
129
132
if ( ssl -> handshake )
@@ -133,10 +136,12 @@ static int ssl_handshake_init( mbedtls_ssl_context *ssl )
133
136
* Either the pointers are now NULL or cleared properly and can be freed.
134
137
* Now allocate missing structures.
135
138
*/
139
+ #if defined(MBEDTLS_SSL_PROTO_TLS1_2 )
136
140
if ( ssl -> transform_negotiate == NULL )
137
141
{
138
142
ssl -> transform_negotiate = mbedtls_calloc ( 1 , sizeof (mbedtls_ssl_transform ) );
139
143
}
144
+ #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */
140
145
141
146
if ( ssl -> session_negotiate == NULL )
142
147
{
@@ -156,25 +161,32 @@ static int ssl_handshake_init( mbedtls_ssl_context *ssl )
156
161
157
162
/* All pointers should exist and can be directly freed without issue */
158
163
if ( ssl -> handshake == NULL ||
164
+ #if defined(MBEDTLS_SSL_PROTO_TLS1_2 )
159
165
ssl -> transform_negotiate == NULL ||
166
+ #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */
160
167
ssl -> session_negotiate == NULL )
161
168
{
162
169
ESP_LOGD (TAG , "alloc() of ssl sub-contexts failed" );
163
170
164
171
mbedtls_free ( ssl -> handshake );
165
- mbedtls_free ( ssl -> transform_negotiate );
166
- mbedtls_free ( ssl -> session_negotiate );
167
-
168
172
ssl -> handshake = NULL ;
173
+
174
+ #if defined(MBEDTLS_SSL_PROTO_TLS1_2 )
175
+ mbedtls_free ( ssl -> transform_negotiate );
169
176
ssl -> transform_negotiate = NULL ;
177
+ #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */
178
+
179
+ mbedtls_free ( ssl -> session_negotiate );
170
180
ssl -> session_negotiate = NULL ;
171
181
172
182
return ( MBEDTLS_ERR_SSL_ALLOC_FAILED );
173
183
}
174
184
175
185
/* Initialize structures */
176
186
mbedtls_ssl_session_init ( ssl -> session_negotiate );
187
+ #if defined(MBEDTLS_SSL_PROTO_TLS1_2 )
177
188
mbedtls_ssl_transform_init ( ssl -> transform_negotiate );
189
+ #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */
178
190
int ret = ssl_handshake_params_init ( ssl -> handshake );
179
191
if (ret != 0 ) {
180
192
return ret ;
0 commit comments