mirror of
https://github.com/espressif/esp-nimble.git
synced 2026-09-13 12:40:01 +00:00
NimBLE: Free the AES context after use by calling mbetls_aes_free
* ESP32C3 allocates DMA channel when using HW AES accelerator. * Deallocate the DMA channel properly i.e. call `mbedtls_aes_free` after using HW AES encryption. Fixes BT-1435
This commit is contained in:
@@ -133,13 +133,16 @@ bt_encrypt_be(const uint8_t *key, const uint8_t *plaintext, uint8_t *enc_data)
|
|||||||
mbedtls_aes_init(&s);
|
mbedtls_aes_init(&s);
|
||||||
|
|
||||||
if (mbedtls_aes_setkey_enc(&s, key, 128) != 0) {
|
if (mbedtls_aes_setkey_enc(&s, key, 128) != 0) {
|
||||||
|
mbedtls_aes_free(&s);
|
||||||
return BLE_HS_EUNKNOWN;
|
return BLE_HS_EUNKNOWN;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mbedtls_aes_crypt_ecb(&s, MBEDTLS_AES_ENCRYPT, plaintext, enc_data) != 0) {
|
if (mbedtls_aes_crypt_ecb(&s, MBEDTLS_AES_ENCRYPT, plaintext, enc_data) != 0) {
|
||||||
|
mbedtls_aes_free(&s);
|
||||||
return BLE_HS_EUNKNOWN;
|
return BLE_HS_EUNKNOWN;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mbedtls_aes_free(&s);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -87,14 +87,18 @@ ble_sm_alg_encrypt(uint8_t *key, uint8_t *plaintext, uint8_t *enc_data)
|
|||||||
|
|
||||||
mbedtls_aes_init(&s);
|
mbedtls_aes_init(&s);
|
||||||
if (mbedtls_aes_setkey_enc(&s, tmp, 128) != 0) {
|
if (mbedtls_aes_setkey_enc(&s, tmp, 128) != 0) {
|
||||||
|
mbedtls_aes_free(&s);
|
||||||
return BLE_HS_EUNKNOWN;
|
return BLE_HS_EUNKNOWN;
|
||||||
}
|
}
|
||||||
|
|
||||||
swap_buf(tmp, plaintext, 16);
|
swap_buf(tmp, plaintext, 16);
|
||||||
|
|
||||||
if (mbedtls_aes_crypt_ecb(&s, MBEDTLS_AES_ENCRYPT, tmp, enc_data) != 0) {
|
if (mbedtls_aes_crypt_ecb(&s, MBEDTLS_AES_ENCRYPT, tmp, enc_data) != 0) {
|
||||||
|
mbedtls_aes_free(&s);
|
||||||
return BLE_HS_EUNKNOWN;
|
return BLE_HS_EUNKNOWN;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mbedtls_aes_free(&s);
|
||||||
#else
|
#else
|
||||||
struct tc_aes_key_sched_struct s;
|
struct tc_aes_key_sched_struct s;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user