I have been using AES on the DW3000 and am now trying to get it working using the AES engine from my microcontroller and a DW1000. I can receive the encrypted packet fine however I just can’t get decryption using mbedtls to work. I use the ccm* function from mbedtls to do decryption. I noticed that mbedtls uses the structure (flags,iv,ctr) for their IV. The DW3000 sdk however, does this differently in their ull_update_ nonce_ccm method. Would anyone know anything about this and should the dw3000 packets work with mbedtls?
For over the air frames decoding, one can use any AES-CCM* implementation. The trick is how to correctly configure everything - this portion you can only get from reading of a standard called FiRa which explains how to form Keys, IVs, nonce, which size of MIC to use, how many bytes in the MHR, how to rotate these depending on the ranging method…
It even has test vectors.
I personally know several methods, including using the built-in to DW3000 aes-ccm* block to encode or decode the frames.
Mbedtls for sure has AES-CCM*.
Nooner else would give you such info. Join FiRa, read the documentation.
Ah, perfect thanks. For now only using the dw3000 is sufficient and I was mostly curious, I’m not sure however if the sdk itself is Fira compliant but that won’t be an issue for now. Thanks for the info I will definitely look into it!