TBB: add a platform specific function to validate the ROTPK
authorJuan Castillo <juan.castillo@arm.com>
Wed, 7 Jan 2015 10:39:25 +0000 (10:39 +0000)
committerDan Handley <dan.handley@arm.com>
Wed, 28 Jan 2015 18:26:59 +0000 (18:26 +0000)
commit6eadf7627fe1c2adb10b720210293fceea503b23
treee24769e6adb091bd7ec1cf5c7b887de1e48c6fed
parentb7124ea7f6fe1e1e73a0975cfb0fa34cabd73b2a
TBB: add a platform specific function to validate the ROTPK

This patch adds the function plat_match_rotpk() to the platform
porting layer to provide a Root Of Trust Public key (ROTPK)
verification mechanism. This function is called during the
Trusted Board Boot process and receives a supposed valid copy
of the ROTPK as a parameter, usually obtained from an external
source (for instance, a certificate). It returns 0 (success) if
that key matches the actual ROTPK stored in the system or any
other value otherwise.

The mechanism to access the actual ROTPK stored in the system
is platform specific and should be implemented as part of this
function. The format of the ROTPK is also platform specific
(to save memory, some platforms might store a hash of the key
instead of the whole key).

TRUSTED_BOARD_BOOT build option has been added to allow the user
to enable the Trusted Board Boot features. The implementation of
the plat_match_rotpk() funtion is mandatory when Trusted Board
Boot is enabled.

For development purposes, FVP and Juno ports provide a dummy
function that returns always success (valid key). A safe trusted
boot implementation should provide a proper matching function.

Documentation updated accordingly.

Change-Id: I74ff12bc2b041556c48533375527d9e8c035b8c3
Makefile
docs/porting-guide.md
include/plat/common/platform.h
plat/fvp/fvp_trusted_boot.c [new file with mode: 0644]
plat/fvp/platform.mk
plat/juno/juno_trusted_boot.c [new file with mode: 0644]
plat/juno/platform.mk