diff options
Diffstat (limited to 'test/tpm_test/u2f_test.py')
-rw-r--r-- | test/tpm_test/u2f_test.py | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/test/tpm_test/u2f_test.py b/test/tpm_test/u2f_test.py index a0118c7b13..a5f9e0743c 100644 --- a/test/tpm_test/u2f_test.py +++ b/test/tpm_test/u2f_test.py @@ -57,12 +57,20 @@ def u2f_sign(tpm, origin, user, auth, kh, msg, flag, fail=False): return b'' return sig -def u2f_attest(tpm, origin, user, challenge, kh, public_key, fail=False): +def u2f_attest(tpm, origin, user, challenge, kh, public_key, corp_format=False, fail=False): origin = origin[:32].ljust(32, b'\0') user = user[:32].ljust(32, b'\0') - challenge = challenge[:32].ljust(32, b'\0') - g2f_cmd = b'\0' + origin + challenge + kh + public_key - cmd = user + b'\0' + len(g2f_cmd).to_bytes(1, 'big') + g2f_cmd + if not corp_format: + challenge = challenge[:32].ljust(32, b'\0') + g2f_cmd = b'\0' + origin + challenge + kh + public_key + cmd = user + b'\0' + len(g2f_cmd).to_bytes(1, 'big') + g2f_cmd + else: + challenge = challenge[:16].ljust(16, b'\0') + salt = b'\0' * 65 + corp_data = challenge + public_key + salt + corp_cmd = corp_data + origin + kh + cmd = user + b'\1' + len(corp_cmd).to_bytes(1, 'big') + corp_cmd + if fail==False: wrapped_response = tpm.command(tpm.wrap_ext_command( subcmd.U2F_ATTEST, cmd)) @@ -171,4 +179,9 @@ def u2f_test(tpm): sig_attest = u2f_attest(tpm, origin, user, auth, khv0, public_key0) if tpm.debug_enabled(): print('sig attest = ',utils.hex_dump(sig_attest), len(sig_attest)) + + print('U2F_ATTEST corp'); + sig_attest = u2f_attest(tpm, origin, user, auth, khv0, public_key0, corp_format=True) + if tpm.debug_enabled(): + print('sig attest = ',utils.hex_dump(sig_attest), len(sig_attest)) print('%sSUCCESS: %s' % (utils.cursor_back(), 'U2F test')) |