https_server: Fix example when MBEDTLS_DYNAMIC_BUFFER is enabled

- While checking if ciphersuite uses RSA key exchange methods,
  the APIs `mbedtls_ssl_get_ciphersuite_id_from_ssl` and
  `mbedtls_ssl_ciphersuite_from_id` were used to get the ciphersuite
  info.
- However, this is incorrect as we need the ciphersuite info from the
  handshake instance and not the ssl_session instance.
This commit is contained in:
Laukik Hase 2022-09-30 15:26:48 +05:30
parent 9bc18ba480
commit aeb42ce3a7
No known key found for this signature in database
GPG Key ID: 11C571361F51A199
2 changed files with 3 additions and 2 deletions

View File

@ -219,6 +219,7 @@
- "components/esp_wifi/**/*"
- "components/esp_netif/**/*"
- "components/lwip/**/*"
- "components/mbedtls/port/dynamic/*"
# for cases with wifi_high_traffic marker
- "examples/system/ota/**/*"

View File

@ -18,8 +18,8 @@ static const char *TAG = "SSL Server";
*/
static bool ssl_ciphersuite_uses_rsa_key_ex(mbedtls_ssl_context *ssl)
{
int suite_id = mbedtls_ssl_get_ciphersuite_id_from_ssl(ssl);
const mbedtls_ssl_ciphersuite_t *ciphersuite_info = mbedtls_ssl_ciphersuite_from_id(suite_id);
const mbedtls_ssl_ciphersuite_t *ciphersuite_info =
ssl->MBEDTLS_PRIVATE(handshake)->ciphersuite_info;
if (ciphersuite_info->MBEDTLS_PRIVATE(key_exchange) == MBEDTLS_KEY_EXCHANGE_RSA ||
ciphersuite_info->MBEDTLS_PRIVATE(key_exchange) == MBEDTLS_KEY_EXCHANGE_RSA_PSK) {