[ATFT] Log at-attest-uuid to log.
Test: Local test. Verify at-attest-uuid appears in log.
Bug: b/76169025
Change-Id: I8fc89a201b9eff8746da4f34a41b37b7a5f07a51
diff --git a/at-factory-tool/atft.py b/at-factory-tool/atft.py
index 56276e6..a471f06 100644
--- a/at-factory-tool/atft.py
+++ b/at-factory-tool/atft.py
@@ -3242,6 +3242,9 @@
self._EndOperation(target)
self._SendOperationSucceedEvent(operation, target)
+ self.log.Info(
+ 'Key Provisioning',
+ 'Device: ' + str(target) + ' AT-ATTEST-UUID: ' + target.at_attest_uuid)
self._CheckLowKeyAlert()
def _HandleStateTransition(self, target):
diff --git a/at-factory-tool/atft_unittest.py b/at-factory-tool/atft_unittest.py
index 09bf015..1897216 100644
--- a/at-factory-tool/atft_unittest.py
+++ b/at-factory-tool/atft_unittest.py
@@ -70,6 +70,7 @@
self.time_set = False
self.operation_lock = MagicMock()
self.operation = None
+ self.at_attest_uuid = None
def __eq__(self, other):
return (self.serial_number == other.serial_number and
@@ -98,6 +99,7 @@
TEST_PASSWORD1 = 'password 1'
TEST_PASSWORD2 = 'PassWord 2!'
TEST_FILENAME = 'filename'
+ TEST_ATTEST_UUID = 'test attest uuid'
def setUp(self):
self.test_target_devs = []
@@ -1025,6 +1027,7 @@
def MockSuccessProvision(self, target):
self.atfa_keys -= 1
+ self.MockSetAttestUuid(target)
def MockFailedProvision(self, target):
pass
@@ -1159,6 +1162,9 @@
mock_atft._Shutdown()
mock_atft._HandleException.assert_called_once()
+ def MockSetAttestUuid(self, target):
+ target.at_attest_uuid = self.TEST_ATTEST_UUID
+
# Test atft._ManualProvision
def testManualProvision(self):
mock_atft = MockAtft()
@@ -1168,6 +1174,7 @@
mock_atft._SendSucceedMessageEvent = MagicMock()
mock_atft._HandleException = MagicMock()
mock_atft.atft_manager.Provision = MagicMock()
+ mock_atft.atft_manager.Provision.side_effect = self.MockSetAttestUuid
mock_atft._SendAlertEvent = MagicMock()
mock_atft._CheckLowKeyAlert = MagicMock()
mock_atft.atft_manager.GetTargetDevice.side_effect = (
@@ -1206,6 +1213,7 @@
mock_atft._SendSucceedMessageEvent = MagicMock()
mock_atft._HandleException = MagicMock()
mock_atft.atft_manager.Provision = MagicMock()
+ mock_atft.atft_manager.Provision.side_effect = self.MockSetAttestUuid
mock_atft._SendAlertEvent = MagicMock()
mock_atft._CheckLowKeyAlert = MagicMock()
mock_atft.atft_manager.GetTargetDevice.side_effect = (
@@ -1251,6 +1259,7 @@
mock_atft._SendSucceedMessageEvent = MagicMock()
mock_atft._HandleException = MagicMock()
mock_atft.atft_manager.Provision = MagicMock()
+ mock_atft.atft_manager.Provision.side_effect = self.MockSetAttestUuid
mock_atft._SendAlertEvent = MagicMock()
mock_atft._CheckLowKeyAlert = MagicMock()
mock_atft.atft_manager.GetTargetDevice.side_effect = (
diff --git a/at-factory-tool/atftman.py b/at-factory-tool/atftman.py
index 92fc3e5..2006349 100644
--- a/at-factory-tool/atftman.py
+++ b/at-factory-tool/atftman.py
@@ -157,6 +157,8 @@
self.operation_lock = threading.Lock()
# Current operation.
self.operation = None
+ # The at-attest-uuid for the provisioned key in this device.
+ self.at_attest_uuid = None
def Copy(self):
return DeviceInfo(None, self.serial_number, self.location,
@@ -544,6 +546,7 @@
# TODO(shanyu): We only need empty string here
# NOT_PROVISIONED is for test purpose.
if at_attest_uuid and at_attest_uuid != 'NOT_PROVISIONED':
+ target_dev.at_attest_uuid = at_attest_uuid
target_dev.provision_status = ProvisionStatus.PROVISION_SUCCESS
status_set = True
target_dev.provision_state.provisioned = True