CHERRY-PICK: Add autotest support for a new TPM class directory.
Kernel TPM patches from 4.x moved /sys/class/misc/tpm0 to /sys/class/tpm/tpm0.
Support both paths in autotest.
BUG=chromium:573368
TEST=grep for TPM_DICTIONARY_ATTACK_COUNTER in the keyval of Pkcs11 tests
and verify numeric values.
Confirm firmware_TPMExtend gives valid
"Dumping PCRs read from device" data.
Change-Id: I6801f1be24a67720b9e96d9ff769bad57501d32b
Reviewed-on: https://chromium-review.googlesource.com/320460
Commit-Ready: Bryan Freed <bfreed@chromium.org>
Tested-by: Bryan Freed <bfreed@chromium.org>
Reviewed-by: Duncan Laurie <dlaurie@chromium.org>
Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
(cherry picked from commit ed5bdb3b626cf524aec3b8801901223f2476484b)
Reviewed-on: https://chromium-review.googlesource.com/373758
Reviewed-by: David Wu <david_wu@quantatw.com>
Reviewed-by: Duncan Laurie <dlaurie@google.com>
Tested-by: David Wu <david_wu@quantatw.com>
Commit-Queue: David Wu <david_wu@quantatw.com>
diff --git a/client/cros/tpm_dam.py b/client/cros/tpm_dam.py
index 0c7666e..15887ae 100644
--- a/client/cros/tpm_dam.py
+++ b/client/cros/tpm_dam.py
@@ -11,7 +11,7 @@
mechanism is triggered.
"""
-import re
+import os, re
from autotest_lib.client.common_lib import utils
from autotest_lib.client.cros import service_stopper
@@ -43,8 +43,11 @@
'00 00 00 02 ' # Size = 2
'00 04'), # Entity Type = TPM_ET_SRK
'response_offset': 18}} # TPM_DA_INFO.currentCount LSB
+ caps_file='/sys/class/misc/tpm0/device/caps'
+ if not os.path.exists(caps_file):
+ caps_file='/sys/class/tpm/tpm0/device/caps'
try:
- with open('/sys/class/misc/tpm0/device/caps', 'r') as fp:
+ with open(caps_file, 'r') as fp:
caps = fp.read()
except IOError:
return 'Could not read TPM device caps.'
diff --git a/server/site_tests/firmware_TPMExtend/firmware_TPMExtend.py b/server/site_tests/firmware_TPMExtend/firmware_TPMExtend.py
index dbc28fd..44b355f 100644
--- a/server/site_tests/firmware_TPMExtend/firmware_TPMExtend.py
+++ b/server/site_tests/firmware_TPMExtend/firmware_TPMExtend.py
@@ -2,7 +2,7 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-import hashlib, logging
+import hashlib, logging, os
from autotest_lib.client.common_lib import error
from autotest_lib.server.cros.faft.firmware_test import FirmwareTest
@@ -19,8 +19,11 @@
def _check_pcr(self, num, hash_obj):
"""Returns true iff PCR |num| was extended with hashlib |hash_obj|."""
+ pcrs_file='/sys/class/misc/tpm0/device/pcrs'
+ if not os.path.exists(pcrs_file):
+ pcrs_file='/sys/class/tpm/tpm0/device/pcrs'
pcrs = '\n'.join(self.faft_client.system.run_shell_command_get_output(
- 'cat /sys/class/misc/tpm0/device/pcrs'))
+ 'cat %s' % pcrs_file))
logging.debug('Dumping PCRs read from device: \n%s', pcrs)
extended = hashlib.sha1('\0' * 20 + hash_obj.digest()[:20]).hexdigest()
spaced = ' '.join(extended[i:i+2] for i in xrange(0, len(extended), 2))