This folder contains tools supporting secure boot of the second stage
bootloader (SSBL) and the linux kernel. Secure booting of the first stage
bootloader (FSBL) is supported by tools found in ../ImageGenerator and
../../commands/otp_key.c.

Tools found in this folder:

1. generate_public_key_code:

  Given an RSA public key, generates C code that contains the necessary data for
  runtime verification of an image signed with the corresponding private key.
  For more details see rsa_verify.c in $(srcroot)/lib/rsa.
