selftests: tpm: upgrade TPM2 tests from Python 2 to Python 3
Python 2 is no longer supported by the Python upstream project, so upgrade TPM2 tests to Python 3. Fixed minor merge conflicts Shuah Khan <skhan@linuxfoundation.org> Signed-off-by: Pengfei Xu <pengfei.xu@intel.com> Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com> Tested-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
This commit is contained in:
@@ -247,14 +247,14 @@ class ProtocolError(Exception):
|
||||
class AuthCommand(object):
|
||||
"""TPMS_AUTH_COMMAND"""
|
||||
|
||||
def __init__(self, session_handle=TPM2_RS_PW, nonce='', session_attributes=0,
|
||||
hmac=''):
|
||||
def __init__(self, session_handle=TPM2_RS_PW, nonce=bytes(),
|
||||
session_attributes=0, hmac=bytes()):
|
||||
self.session_handle = session_handle
|
||||
self.nonce = nonce
|
||||
self.session_attributes = session_attributes
|
||||
self.hmac = hmac
|
||||
|
||||
def __str__(self):
|
||||
def __bytes__(self):
|
||||
fmt = '>I H%us B H%us' % (len(self.nonce), len(self.hmac))
|
||||
return struct.pack(fmt, self.session_handle, len(self.nonce),
|
||||
self.nonce, self.session_attributes, len(self.hmac),
|
||||
@@ -268,11 +268,11 @@ class AuthCommand(object):
|
||||
class SensitiveCreate(object):
|
||||
"""TPMS_SENSITIVE_CREATE"""
|
||||
|
||||
def __init__(self, user_auth='', data=''):
|
||||
def __init__(self, user_auth=bytes(), data=bytes()):
|
||||
self.user_auth = user_auth
|
||||
self.data = data
|
||||
|
||||
def __str__(self):
|
||||
def __bytes__(self):
|
||||
fmt = '>H%us H%us' % (len(self.user_auth), len(self.data))
|
||||
return struct.pack(fmt, len(self.user_auth), self.user_auth,
|
||||
len(self.data), self.data)
|
||||
@@ -296,8 +296,9 @@ class Public(object):
|
||||
return '>HHIH%us%usH%us' % \
|
||||
(len(self.auth_policy), len(self.parameters), len(self.unique))
|
||||
|
||||
def __init__(self, object_type, name_alg, object_attributes, auth_policy='',
|
||||
parameters='', unique=''):
|
||||
def __init__(self, object_type, name_alg, object_attributes,
|
||||
auth_policy=bytes(), parameters=bytes(),
|
||||
unique=bytes()):
|
||||
self.object_type = object_type
|
||||
self.name_alg = name_alg
|
||||
self.object_attributes = object_attributes
|
||||
@@ -305,7 +306,7 @@ class Public(object):
|
||||
self.parameters = parameters
|
||||
self.unique = unique
|
||||
|
||||
def __str__(self):
|
||||
def __bytes__(self):
|
||||
return struct.pack(self.__fmt(),
|
||||
self.object_type,
|
||||
self.name_alg,
|
||||
@@ -343,7 +344,7 @@ def get_algorithm(name):
|
||||
|
||||
def hex_dump(d):
|
||||
d = [format(ord(x), '02x') for x in d]
|
||||
d = [d[i: i + 16] for i in xrange(0, len(d), 16)]
|
||||
d = [d[i: i + 16] for i in range(0, len(d), 16)]
|
||||
d = [' '.join(x) for x in d]
|
||||
d = os.linesep.join(d)
|
||||
|
||||
@@ -401,7 +402,7 @@ class Client:
|
||||
pcrsel_len = max((i >> 3) + 1, 3)
|
||||
pcrsel = [0] * pcrsel_len
|
||||
pcrsel[i >> 3] = 1 << (i & 7)
|
||||
pcrsel = ''.join(map(chr, pcrsel))
|
||||
pcrsel = ''.join(map(chr, pcrsel)).encode()
|
||||
|
||||
fmt = '>HII IHB%us' % (pcrsel_len)
|
||||
cmd = struct.pack(fmt,
|
||||
@@ -443,7 +444,7 @@ class Client:
|
||||
TPM2_CC_PCR_EXTEND,
|
||||
i,
|
||||
len(auth_cmd),
|
||||
str(auth_cmd),
|
||||
bytes(auth_cmd),
|
||||
1, bank_alg, dig)
|
||||
|
||||
self.send_cmd(cmd)
|
||||
@@ -457,7 +458,7 @@ class Client:
|
||||
TPM2_RH_NULL,
|
||||
TPM2_RH_NULL,
|
||||
16,
|
||||
'\0' * 16,
|
||||
('\0' * 16).encode(),
|
||||
0,
|
||||
session_type,
|
||||
TPM2_ALG_NULL,
|
||||
@@ -472,7 +473,7 @@ class Client:
|
||||
|
||||
for i in pcrs:
|
||||
pcr = self.read_pcr(i, bank_alg)
|
||||
if pcr == None:
|
||||
if pcr is None:
|
||||
return None
|
||||
x += pcr
|
||||
|
||||
@@ -489,7 +490,7 @@ class Client:
|
||||
pcrsel = [0] * pcrsel_len
|
||||
for i in pcrs:
|
||||
pcrsel[i >> 3] |= 1 << (i & 7)
|
||||
pcrsel = ''.join(map(chr, pcrsel))
|
||||
pcrsel = ''.join(map(chr, pcrsel)).encode()
|
||||
|
||||
fmt = '>HII IH%usIHB3s' % ds
|
||||
cmd = struct.pack(fmt,
|
||||
@@ -497,7 +498,8 @@ class Client:
|
||||
struct.calcsize(fmt),
|
||||
TPM2_CC_POLICY_PCR,
|
||||
handle,
|
||||
len(dig), str(dig),
|
||||
len(dig),
|
||||
bytes(dig),
|
||||
1,
|
||||
bank_alg,
|
||||
pcrsel_len, pcrsel)
|
||||
@@ -534,7 +536,7 @@ class Client:
|
||||
|
||||
self.send_cmd(cmd)
|
||||
|
||||
def create_root_key(self, auth_value = ''):
|
||||
def create_root_key(self, auth_value = bytes()):
|
||||
attributes = \
|
||||
Public.FIXED_TPM | \
|
||||
Public.FIXED_PARENT | \
|
||||
@@ -570,11 +572,11 @@ class Client:
|
||||
TPM2_CC_CREATE_PRIMARY,
|
||||
TPM2_RH_OWNER,
|
||||
len(auth_cmd),
|
||||
str(auth_cmd),
|
||||
bytes(auth_cmd),
|
||||
len(sensitive),
|
||||
str(sensitive),
|
||||
bytes(sensitive),
|
||||
len(public),
|
||||
str(public),
|
||||
bytes(public),
|
||||
0, 0)
|
||||
|
||||
return struct.unpack('>I', self.send_cmd(cmd)[10:14])[0]
|
||||
@@ -587,7 +589,7 @@ class Client:
|
||||
attributes = 0
|
||||
if not policy_dig:
|
||||
attributes |= Public.USER_WITH_AUTH
|
||||
policy_dig = ''
|
||||
policy_dig = bytes()
|
||||
|
||||
auth_cmd = AuthCommand()
|
||||
sensitive = SensitiveCreate(user_auth=auth_value, data=data)
|
||||
@@ -608,11 +610,11 @@ class Client:
|
||||
TPM2_CC_CREATE,
|
||||
parent_key,
|
||||
len(auth_cmd),
|
||||
str(auth_cmd),
|
||||
bytes(auth_cmd),
|
||||
len(sensitive),
|
||||
str(sensitive),
|
||||
bytes(sensitive),
|
||||
len(public),
|
||||
str(public),
|
||||
bytes(public),
|
||||
0, 0)
|
||||
|
||||
rsp = self.send_cmd(cmd)
|
||||
@@ -635,7 +637,7 @@ class Client:
|
||||
TPM2_CC_LOAD,
|
||||
parent_key,
|
||||
len(auth_cmd),
|
||||
str(auth_cmd),
|
||||
bytes(auth_cmd),
|
||||
blob)
|
||||
|
||||
data_handle = struct.unpack('>I', self.send_cmd(cmd)[10:14])[0]
|
||||
@@ -653,7 +655,7 @@ class Client:
|
||||
TPM2_CC_UNSEAL,
|
||||
data_handle,
|
||||
len(auth_cmd),
|
||||
str(auth_cmd))
|
||||
bytes(auth_cmd))
|
||||
|
||||
try:
|
||||
rsp = self.send_cmd(cmd)
|
||||
@@ -675,7 +677,7 @@ class Client:
|
||||
TPM2_CC_DICTIONARY_ATTACK_LOCK_RESET,
|
||||
TPM2_RH_LOCKOUT,
|
||||
len(auth_cmd),
|
||||
str(auth_cmd))
|
||||
bytes(auth_cmd))
|
||||
|
||||
self.send_cmd(cmd)
|
||||
|
||||
@@ -693,7 +695,7 @@ class Client:
|
||||
more_data, cap, cnt = struct.unpack('>BII', rsp[:9])
|
||||
rsp = rsp[9:]
|
||||
|
||||
for i in xrange(0, cnt):
|
||||
for i in range(0, cnt):
|
||||
handle = struct.unpack('>I', rsp[:4])[0]
|
||||
handles.append(handle)
|
||||
rsp = rsp[4:]
|
||||
|
Reference in New Issue
Block a user