[crypto] Allow trusted certificates to be stored in non-volatile options
authorMichael Brown <mcb30@ipxe.org>
Sun, 20 Mar 2016 17:26:09 +0000 (17:26 +0000)
committerMichael Brown <mcb30@ipxe.org>
Sun, 20 Mar 2016 17:26:09 +0000 (17:26 +0000)
commit0141ea3a773aea7a2f4e81b2b2143c85683cc21c
tree9c12c6ed4744bbe441516346494e535a717cd20c
parent4a861cc61cc2dca07f41d5932939c2c9993cec78
[crypto] Allow trusted certificates to be stored in non-volatile options

The intention of the existing code (as documented in its own comments)
is that it should be possible to override the list of trusted root
certificates using a "trust" setting held in non-volatile stored
options.  However, the rootcert_init() function currently executes
before any devices have been probed, and so will not be able to
retrieve any such non-volatile stored options.

Fix by executing rootcert_init() only after devices have been probed.
Since startup functions may be executed multiple times (unlike
initialisation functions), add an explicit flag to preserve the
property that rootcert_init() should run only once.

As before, if an explicit root of trust is specified at build time,
then any runtime "trust" setting will be ignored.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/crypto/rootcert.c