About
=====

Firmware binary signing is for audio DSP is mandatory on Intel products from
Skylake onwards. i.e. no code signing on Baytrail, Cherrytrail, Braswell,
Haswell and Broadwell but mandatory on Skylake, Kabylake, Apollolake,
Cannonlake Icelake and Tigerlake.

rimage can now sign firmware binaries for Apollolake,
Cannonlake and Icelake targets.
This is done automatically as part of the "make bin" part of the build.


Key Pairs
=========

The key included here is the Intel OTC (Opensource Technology Center) community
development key. It can be freely used by anyone and is intended for reference
board makers and firmware developers.

** This key is NOT intended for locking down firmware on end user production
devices since the "private" key has been published here. A new key pair must
be genrated for securing firmware ! **

RSA Private and Public keys are generated as follows :-

For cavs 1.5-2.0 platforms, 2k key is needed with following:
openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048

For cavs 2.5+ (TigerLake), 3k key is needed with following:
openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:3072

openssl rsa -pubout -in private_key.pem -out public_key.pem

The public key needs to be programmed into the OEM Key manifest (cavsManifest0)
within the BIOS in order to verify code signed with the private key.
Intel supplies tools to board makers to stitch the public key into the BIOS.

The private key is used by rimage to sign the SOF binary. It should be kept
secret and secure for production signing.
