libavb: Only load and verify hash partition if requested.
Currently avb_slot_verify() will load _and_ verify all hash partitions mentioned in vbmeta structus even if a partition isn't in the |requested_partitions| parameter. The current behavior is not useful because verification of a hash partition only works if you keep the loaded data around. If you don't keep it around, you set yourself up for a time-of-check-to-time-of-use (TOCTTOU) attack insofar that an attacker can change the partition contents in the window between it was checked and until you load it again. This should save ~400ms (the cost of sha256'ing ~32 MiB of data) in fs_mgr / early-mount. This is because fs_mgr requests no partitions to be loaded since it is only interested in the vbmeta structs. Bug: None Test: New unit test + all unit tests pass. Test: Manually tested on UEFI-based boot loader. Change-Id: I3e60d6c01e431c43ee2c629ed84318cbeac44347
Loading
Please sign in to comment