@@ -92,7 +92,8 @@ static int ssl_handshake_params_init( mbedtls_ssl_handshake_params *handshake )
9292#if defined(MBEDTLS_DHM_C )
9393 mbedtls_dhm_init ( & handshake -> dhm_ctx );
9494#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 )
9697 mbedtls_ecdh_init ( & handshake -> ecdh_ctx );
9798#endif
9899#if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED )
@@ -121,9 +122,11 @@ static int ssl_handshake_params_init( mbedtls_ssl_handshake_params *handshake )
121122
122123static int ssl_handshake_init ( mbedtls_ssl_context * ssl )
123124{
125+ #if defined(MBEDTLS_SSL_PROTO_TLS1_2 )
124126 /* Clear old handshake information if present */
125127 if ( ssl -> transform_negotiate )
126128 mbedtls_ssl_transform_free ( ssl -> transform_negotiate );
129+ #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */
127130 if ( ssl -> session_negotiate )
128131 mbedtls_ssl_session_free ( ssl -> session_negotiate );
129132 if ( ssl -> handshake )
@@ -133,10 +136,12 @@ static int ssl_handshake_init( mbedtls_ssl_context *ssl )
133136 * Either the pointers are now NULL or cleared properly and can be freed.
134137 * Now allocate missing structures.
135138 */
139+ #if defined(MBEDTLS_SSL_PROTO_TLS1_2 )
136140 if ( ssl -> transform_negotiate == NULL )
137141 {
138142 ssl -> transform_negotiate = mbedtls_calloc ( 1 , sizeof (mbedtls_ssl_transform ) );
139143 }
144+ #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */
140145
141146 if ( ssl -> session_negotiate == NULL )
142147 {
@@ -156,25 +161,32 @@ static int ssl_handshake_init( mbedtls_ssl_context *ssl )
156161
157162 /* All pointers should exist and can be directly freed without issue */
158163 if ( ssl -> handshake == NULL ||
164+ #if defined(MBEDTLS_SSL_PROTO_TLS1_2 )
159165 ssl -> transform_negotiate == NULL ||
166+ #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */
160167 ssl -> session_negotiate == NULL )
161168 {
162169 ESP_LOGD (TAG , "alloc() of ssl sub-contexts failed" );
163170
164171 mbedtls_free ( ssl -> handshake );
165- mbedtls_free ( ssl -> transform_negotiate );
166- mbedtls_free ( ssl -> session_negotiate );
167-
168172 ssl -> handshake = NULL ;
173+
174+ #if defined(MBEDTLS_SSL_PROTO_TLS1_2 )
175+ mbedtls_free ( ssl -> transform_negotiate );
169176 ssl -> transform_negotiate = NULL ;
177+ #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */
178+
179+ mbedtls_free ( ssl -> session_negotiate );
170180 ssl -> session_negotiate = NULL ;
171181
172182 return ( MBEDTLS_ERR_SSL_ALLOC_FAILED );
173183 }
174184
175185 /* Initialize structures */
176186 mbedtls_ssl_session_init ( ssl -> session_negotiate );
187+ #if defined(MBEDTLS_SSL_PROTO_TLS1_2 )
177188 mbedtls_ssl_transform_init ( ssl -> transform_negotiate );
189+ #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */
178190 int ret = ssl_handshake_params_init ( ssl -> handshake );
179191 if (ret != 0 ) {
180192 return ret ;
0 commit comments