構文
• Zynq デバイスおよび FPGA の場合:
[aeskeyfile] <key filename>
• Zynq UltraScale+ MPSoC の場合:
[aeskeyfile = <keyfile name>] <partition>
• Versal ACAP の場合:
{ aeskeyfile = <keyfile name>, file = <filename> } 説明
AES キーファイルへのパスを指定します。キーファイルには、パーティションの暗号化に使用される AES キーが含 まれます。キー ファイルの内容は、eFUSE または BBRAM に書き込む必要があります。指定したパスにキー ファイ ルが存在しない場合は、Bootgen により暗号化に使用する新しいキーが生成されます。
注記: Zynq UltraScale+ MPSoC のみ: BIF ファイルで複数のキーファイルを指定できます。使用するすべての NKY フ
ァイルで Key0、IV0、および Key Opt を同じにする必要があります。1 つの ELF ファイルに対して複数のパーティシ ョンを生成する場合、各パーティションを固有のキー ファイルのキーを使用して暗号化できます。次の例を参照して ください。
引数
指定するファイルの名前。
戻り値 なし
all:
{ [keysrc_encryption] bbram_red_key [aeskeyfile] test.nky [bootloader, encryption=aes] fsbl.elf [encryption=aes] hello.elf }
サンプル キー (.nky) ファイルは test.nky です。
Device xc7z020clg484;
Key 0 8177B12032A7DEEE35D0F71A7FC399027BF....D608C58;
Key StartCBC 952FD2DF1DA543C46CDDE4F811506228;
Key HMAC 123177B12032A7DEEE35D0F71A7FC3990BF....127BD89;
Zynq UltraScale+ MPSoC 例 例 1:
fsbl.elf パーティションは test.nky のキーを使用し、hello.elf は test1.nky のキーを使用し、app.elf は test2.nky のキーを使用して暗号化されます。サンプル BIF は test_multipl.bif です。
all:
{ [keysrc_encryption] bbram_red_key [bootloader,encryption=aes,aeskeyfile=test.nky] fsbl.elf [encryption=aes,aeskeyfile=test1.nky] hello.elf [encryption=aes,aeskeyfile=test2.nky] app.elf }
例 2:
Bootgen が、hello.elf の hello.elf.0、hello.elf.1、および hello.elf.2 という 3 つのパーティション を作成するとします。サンプル BIF は test_mulitple.bif です。
all:
{ [keysrc_encryption] bbram_red_key [bootloader,encryption=aes,aeskeyfile=test.nky] fsbl.elf [encryption=aes,aeskeyfile=test1.nky] hello.elf }
その他の情報:
• fsbl.elf パーティションは、test.nky のキーで暗号化されます。すべての hello.elf パーティションは、
test1.nky のキーを使用して暗号化されます。
• test1.1.nky および test1.2.nky という名前のキー ファイルを test1.nky と同じパスに置くことで、hello パ ーティションごとに一意のキーファイルを使用できます。
• hello.elf.0 は test1.nky を使用
• aeskeyfile の形式:
.nky ファイルには次のフィールドを使用できます。
• Device: .nky ファイルを使用するデバイスの名前。Zynq デバイスおよび Zynq UltraScale+ MPSoC の両方で有 効です。
• Keyx, IVx: x は Key0、Key1、Key2 ...、IV0、IV1、IV2...といったキー/IV 番号に該当する整数。AES キーは 256 ビット、キーは 12 バイト長にする必要があります。Keyx は Zynq デバイスおよび Zynq UltraScale+ MPSoC に有効ですが、IVx は Zynq UltraScale+ MPSoC にのみ有効です。
• Key Opt: ブートローダーの最初のブロックを暗号化するのに使用するオプションのキー。Zynq UltraScale+
MPSoC にのみ有効です。
• StartCBC - CBC Key: CBC キーは 128 ビット長である必要があります。Zynq デバイスにのみ有効です。
• HMAC - HMAC Key: HMAC キーは 128 ビット長である必要があります。Zynq デバイスにのみ有効です。
• Seed: パーティションの暗号化に必要なキー/IV ペアを生成するために使用する必要のある最初のシード。
AES シードは 256 ビット長である必要があります。Zynq UltraScale+ MPSoC にのみ有効です。
• FixedInputData: カウンター モード KDF への入力としてシードと共に使用されるデータ。AES 固定入力デー タは 60 バイト長である必要があります。Zynq UltraScale+ MPSoC にのみ有効です。
注記:
• シードは FixedInputData と共に指定する必要があります。
• シードには、複数のキー/IV ペアは使用されません。
Versal ACAP の例:
all:
{ image { name = pmc_subsys, id = 0x1c000001 { type = bootloader, encryption = aes, keysrc = bbram_red_key, aeskeyfile = key1.nky, file = plm.elf } { type = pmcdata, load = 0xf2000000, aeskeyfile = key2.nky, file = pmc_cdo.bin } { type=cdo, encryption = aes, keysrc = efuse_red_key, aeskeyfile = key3.nky, file=fpd_data.cdo } } }
構文
boot_config { a_hwrot } 説明
非対称ハードウェアの信頼のルート (A-HWRoT) ブート モード。Bootgen で A-HWRoT ブート モードのデザイン ル ールがチェックされます。プロダクション PDI でのみ有効です。