Part Number: AM263P4
1. DTHE AES/HMAC API Usage and Key Management
The DTHE AES and HMAC APIs (DTHE_AES_execute() and DTHE_HMACSHA_compute()) require the symmetric key to be provided directly by the caller.
As implemented, this appears to require the symmetric key to be present in application memory and referenced directly by the software.
What is the intended usage model for these APIs?
For example, is there a recommended method to avoid handling the symmetric key directly in the application, such as using the HSM to securely manage or access the key material without exposing it to the application?
2. Concurrent Access to DTHE AES/HMAC APIs
If the DTHE AES and HMAC APIs are used from multiple cores and/or multiple tasks, is any software synchronization required?
In other words, are these APIs internally protected against concurrent access, or is it the application's responsibility to implement mutual exclusion (for example, a mutex or other locking mechanism) when accessing the DTHE hardware resources?
3. DTHE AES (Multi-Shot) and AES-CBC Final Block Handling
DTHE_AES_execute(..., DTHE_AES_STREAM_FINISH);
When using DTHE AES (Multi-Shot) for AES-CBC encryption, is it valid to call
with a streamSize that is not a multiple of 16 bytes?
The API documentation appears to indicate that this is supported.
If so:
- How is the final partial block processed during encryption?
- What data is actually generated in the encrypted output for the incomplete block?
- Does the same behavior apply during decryption?
Could you please explain the handling of partial blocks when DTHE_AES_STREAM_FINISH is used in AES-CBC mode?
Requested response date: September 25, 2026