Hi NXP team,
We are evaluating ECDSA P-384 black key/blob support on i.MX8DXL CAAM.
Starting from an externally provided plaintext P-256 private key:
Result: PASS
Result: PASS
Starting from an externally provided plaintext P-384 private key (48 bytes):
Result: FAIL
We noticed the following comments in the NXP patch:
We observed similar behavior.
Using the LOAD command instead of the KEY command allows us to handle keys larger than 32 bytes, including a 48-byte P-384 private key.
Any guidance would be appreciated.
Thanks and best regards,
hojames.
In our application, the COVER operation may also be used to protect general sensitive data, not only ECDSA private keys. Therefore, support for payload sizes larger than 32 bytes is an important consideration.
Based on our testing, using the LOAD-command workaround allows handling payloads larger than 32 bytes. Payloads below approximately 80 bytes appear to work, while larger sizes show inconsistent behavior. We would like to understand whether these observations reflect an actual CAAM limitation or an implementation issue.
Thank you.
We need to set up the environment to test this CAAM function. We will update you once We have some results.
Hi yipingwang,
Thanks for the reply.
>>For this part, what CAAM error did you observed?
>>Could you provide the error code?
We are using below code patch for all ECDSA related operations:
"https://github.com/nxp-imx-support/imx_sec_apps/blob/master/caam-ecdsa-blackkey/patch/0001-linux-imx..."
when calling caam_ecdsa_verify() for signature verification,
it returns 'ECDSA_VERIFY_FAIL (0)'.
The error occurs only with the case 'P-384 (external plaintext private key)'.
>> The application note "AN12838-Strengthening Public Key Cryptography using CAAM Secure Key" describe a demo for ECDSA signature using black key, are you testing with similar implementation?
For our succeed cases, yes, they are similar.
But for our failed case 'P-384 (external plaintext private key)',
it is a bit different: the key is from external.
Best regards,
"Plaintext key → COVER → black key blob
Restore black key from black blob
ECDSA sign/verify
Result: FAIL"
For this part, what CAAM error did you observed? Could you provide the error code? The application note "AN12838-Strengthening Public Key Cryptography using CAAM Secure Key" describe a demo for ECDSA signature using black key, are you testing with similar implementation? Thank you.
For the KEY command limitation, it is still under investigation.