avb: add support for named persistent values

AVB 2.0 spec. revision 1.1 introduces support for named persistent values
that must be tamper evident and allows AVB to store arbitrary key-value
pairs [1].

Introduce implementation of two additional AVB operations
read_persistent_value()/write_persistent_value() for retrieving/storing
named persistent values.

Correspondent pull request in the OP-TEE OS project repo [2].

[1]: https://android.googlesource.com/platform/external/avb/+/android-9.0.0_r22
[2]: https://github.com/OP-TEE/optee_os/pull/2699

Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Igor Opaniuk <igor.opaniuk@gmail.com>
This commit is contained in:
Igor Opaniuk 2019-04-09 15:38:14 +02:00 committed by Tom Rini
parent b85d155199
commit fc1fe01b08
7 changed files with 351 additions and 22 deletions

View file

@ -6,16 +6,25 @@
#ifndef __SANDBOXTEE_H
#define __SANDBOXTEE_H
#include <search.h>
#include <tee/optee_ta_avb.h>
/**
* struct sandbox_tee_state - internal state of the sandbox TEE
* @session: current open session
* @num_shms: number of registered shared memory objects
* @ta: Trusted Application of current session
* @session: current open session
* @num_shms: number of registered shared memory objects
* @ta: Trusted Application of current session
* @ta_avb_rollback_indexes TA avb rollback indexes storage
* @ta_avb_lock_state TA avb lock state storage
* @pstorage_htab named persistent values storage
*/
struct sandbox_tee_state {
u32 session;
int num_shms;
void *ta;
u64 ta_avb_rollback_indexes[TA_AVB_MAX_ROLLBACK_LOCATIONS];
u32 ta_avb_lock_state;
struct hsearch_data pstorage_htab;
};
#endif /*__SANDBOXTEE_H*/