fix(esp_tee): Fix AEAD output buffer slicing in the tee_basic example

This commit is contained in:
Laukik Hase
2026-09-03 16:00:03 +05:30
parent c7f74fd751
commit 540e380321
3 changed files with 4 additions and 5 deletions

View File

@@ -98,14 +98,14 @@ static esp_err_t aes_gcm_crypt_common(example_aes_gcm_ctx_t *ctx, uint8_t *tag,
if (is_encrypt) {
size_t output_tag_len = 0;
status = psa_aead_finish(&operation, output + output_len, ctx->input_len + tag_len - output_len, &output_len, tag, tag_len, &output_tag_len);
status = psa_aead_finish(&operation, output + output_len, ctx->input_len - output_len, &output_len, tag, tag_len, &output_tag_len);
if (status != PSA_SUCCESS) {
ESP_LOGE(TAG, "Error in finishing encryption: %d", status);
goto cleanup;
}
} else {
size_t plaintext_len = 0;
status = psa_aead_verify(&operation, output, ctx->input_len, &plaintext_len, tag, tag_len);
status = psa_aead_verify(&operation, output + output_len, ctx->input_len - output_len, &plaintext_len, tag, tag_len);
if (status != PSA_SUCCESS) {
ESP_LOGE(TAG, "Error in verifying decryption: %d", status);
goto cleanup;

View File

@@ -45,7 +45,7 @@ void app_main(void)
uint8_t aad_buf[AES256_GCM_AAD_LEN];
/* Generate random plaintext and AAD */
esp_fill_random(plain_text, sizeof(EXAMPLE_BUF_SZ));
esp_fill_random(plain_text, sizeof(plain_text));
esp_fill_random(aad_buf, AES256_GCM_AAD_LEN);
/* Encryption operation */

View File

@@ -22,9 +22,8 @@ def test_example_tee_basic(dut: Dut) -> None:
logging.info(f'{log_label}: {bin_size // 1024}KB')
# Start test
dut.expect('AES-256-GCM operations in TEE', timeout=10)
dut.expect('Secure service call: PROTECTED M-mode', timeout=10)
dut.expect('AES-256-GCM encryption', timeout=10)
dut.expect('Secure service call: PROTECTED M-mode', timeout=10)
dut.expect('AES-256-GCM decryption', timeout=10)
dut.expect('AES-GCM decryption successful!', timeout=10)
dut.expect('Returned from app_main()', timeout=10)