update_engine: Add GetMinFirmwareKeyVersion to read tpm_fwver value
Add function to read the minimum allowed firmware key version, ie.
crossystem tpm_fwver.
This is the firmware key version equivalent of crrev.com/c/927827.
BUG=chromium:840432
TEST='cros_run_unit_tests --board=caroline --packages update_engine'
Change-Id: Iadd56b3283028722c94e4ebc7cf5b6470cf1fec9
Reviewed-on: https://chromium-review.googlesource.com/1049667
Commit-Ready: Marton Hunyady <hunyadym@chromium.org>
Tested-by: Marton Hunyady <hunyadym@chromium.org>
Reviewed-by: Amin Hassani <ahassani@chromium.org>
Reviewed-by: Zentaro Kavanagh <zentaro@chromium.org>
diff --git a/common/fake_hardware.h b/common/fake_hardware.h
index 021d891..68fdd5b 100644
--- a/common/fake_hardware.h
+++ b/common/fake_hardware.h
@@ -37,6 +37,9 @@
// Default value for crossystem tpm_kernver.
static const int kMinKernelKeyVersion = 3;
+ // Default value for crossystem tpm_fwver.
+ static const int kMinFirmwareKeyVersion = 13;
+
// Default value for crossystem max_kernel_rollforward. This value is the
// default for consumer devices and effectively means "unlimited rollforward
// is allowed", which is the same as the behavior prior to implementing
@@ -72,6 +75,10 @@
return min_kernel_key_version_;
}
+ int GetMinFirmwareKeyVersion() const override {
+ return min_firmware_key_version_;
+ }
+
bool SetMaxKernelKeyRollforward(int max_kernel_rollforward) override {
max_kernel_rollforward_ = max_kernel_rollforward;
return true;
@@ -151,6 +158,10 @@
min_kernel_key_version_ = min_kernel_key_version;
}
+ void SetMinFirmwareKeyVersion(int min_firmware_key_version) {
+ min_firmware_key_version_ = min_firmware_key_version;
+ }
+
void SetPowerwashCount(int powerwash_count) {
powerwash_count_ = powerwash_count;
}
@@ -170,6 +181,7 @@
std::string firmware_version_{"Fake Firmware v1.0.1"};
std::string ec_version_{"Fake EC v1.0a"};
int min_kernel_key_version_{kMinKernelKeyVersion};
+ int min_firmware_key_version_{kMinFirmwareKeyVersion};
int max_kernel_rollforward_{kMaxKernelRollforward};
int powerwash_count_{kPowerwashCountNotSet};
bool powerwash_scheduled_{false};