04-23-2018 12:56 PM
I'm looking for any solution regarding the problem with retrieving the data back when the crypto engine has finished its operation. According to UG1085 the AES-GCM-256 hardened core is accessible for the user after the boot. I succeeded in encryption with using XSecure library API until the moment when the XSecure_AesEncryptUpdate() is being waiting for destination DMA done. This call hangs because the CSUDMA_DST_I_STS[DONE] bit is never set to 1. Secure-Stream switch path was configured according to common configuration 0x000005A0 (DMA-AES, AES-DMA).
I successfully checked the loopback mode hence I assume the issue isn't related with DMA. Besides AES engine indicates that operation has been completed (respective bits were set). Does somebody know what can cause such behavior? Any security features (restrictions)?
05-23-2018 10:49 PM
I found an issue with the XSecure library that sounds similar:
See my post:
"DMA writes to illegal adress in XSecure_AesEncryptData in xilskey_puf_registration sample code"
The DMA wrote a couple of words more than wanted. This caused the handle of my object beeing over-written and the DmaUpdate never returned. If my finding is correct, it seems to be an issue with the Xsecure library.
A temporary fix was to add some dummy memory after the key for the (wrong) extra bytes being transferred by the DMA.
08-25-2020 11:24 AM
I seems running into similar issue on ZCU104 when I imported xilsecure 4.2 library example simple_aes_enc_dec. It's failing at the spot on destination dma channel as the following screenshot.
Just wondering what if identified any root cause?
Thanks in advance!