Signing Process
The process for firmware signing is shown in the figure below.
To sign the firmware:
- The message sender (the user) creates a key pair (RSA_Public_Key and RSA_Private_Key) with GProgrammer. The key pair helps sign and verify signatures. The message sender creates signatures with the private key (RSA_Private_Key), and the message receiver (GR5xx SoC) verifies the signatures with the public key (RSA_Public_Key).
- RSA_Public_Key is stored in Application Image and is passed to GR5xx SoCs; the hash value of the public key is stored in eFuse. The hash value generated based on RSA_Public_Key shall be consistent with the RSA_PUBLIC_KEY_HASH value stored in eFuse.
- To generate a digital signature, generate firmware digests by using one-way hash functions, and encrypt the digest with RSA_Private_Key.