Bootgen can generate AES-GCM keys. It uses the NIST-approved Counter Mode KDF, with CMAC as the pseudo random function. Bootgen takes seed as input in case you want to derive multiple keys from seed due to key rolling. If a seed is specified, the keys are derived using the seed. If seeds are not specified, keys are derived based on Key0. If an empty key file is specified, Bootgen automatically generates a seed, which in turn is the input for KDF to generate the Key/IV pairs. The following conditions apply.
- If you specify one encryption file and Bootgen generates the others, Bootgen ensures it uses the same Key0/IV0 pair for the generated keys. It matches the pair from the first partition's encryption file.
- If you generate an encryption file for the first partition and later specify another encryption file with Key0/IV0 for a later partition, Bootgen exits. It returns an error indicating an incorrect Key0/IV0 pair.
- If you do not specify a key file and you opt to encrypt a partition, Bootgen by default generated an AES key file. It used the partition's name for the file.
- Bootgen enables the usage of unique key files for each of the partition created due to multiple loadable sections by reading/generating key file names appended with ."1", ."2."..."n" and so on in the same directory of the key file meant for that partition.
Important:
AMD recommends that you generate
your own keys for fielded systems using a high-quality entropy source and then provide
those keys to the development tools. Bootgen key generation is intended for development
use only. See AR76171 for more information.
Note: In this flow you must generate the seed from a high-quality
entropy source when the seed is specified; otherwise generate Key0 from a high-quality
entropy source. That input should then be provided to the tools.