avb2.0: implement AVB ops
authorIgor Opaniuk <igor.opaniuk@linaro.org>
Sun, 3 Jun 2018 18:56:38 +0000 (21:56 +0300)
committerTom Rini <trini@konsulko.com>
Mon, 18 Jun 2018 17:55:13 +0000 (13:55 -0400)
commit3af30e4443aa2c8224bf15ba352a5ef81b02711a
tree5984999dd9b8c66f93d2f25b1bb2681eb9062f39
parent3330584d2c5247d65744939c139160502b4b8c87
avb2.0: implement AVB ops

Implement AVB ops on top of existing mmc subsystem API. Currently there
is a full implementation of such operations, defined by [1]
AVB2.0 specification:

.read_from_partition() - reads N bytes from a partition identified by
a name.
.write_to_partition() - Writes N bytes to a partition identified by a name.
.validate_vbmeta_public_key() - checks if the given public ‘vbmeta’
partition is trusted.
.get_unique_guid_for_partition() - Gets the GUID for a partition identified
by a string name.

As [1] specification recommends to use tamper-evident storage for storing
rollback indexes and device state (LOCKED/UNLOCKED),
currently are only stubs instead of full implementation for these ops:
.read_rollback_index() - Gets the rollback index for a given index location
.write_rollback_index() - Sets the rollback index to a given location
.read_is_device_unlocked() - Gets where the device is unlocked

[1] https://android.googlesource.com/platform/external/avb/+/master/README.md

Signed-off-by: Igor Opaniuk <igor.opaniuk@linaro.org>
common/Makefile
common/avb_verify.c [new file with mode: 0644]
include/avb_verify.h [new file with mode: 0644]