diff options
Diffstat (limited to 'test/tpm_test/ecies_test.py')
-rw-r--r-- | test/tpm_test/ecies_test.py | 86 |
1 files changed, 40 insertions, 46 deletions
diff --git a/test/tpm_test/ecies_test.py b/test/tpm_test/ecies_test.py index 04d5963310..c19be8d123 100644 --- a/test/tpm_test/ecies_test.py +++ b/test/tpm_test/ecies_test.py @@ -5,7 +5,6 @@ """Module for testing ECIES using extended commands.""" from binascii import a2b_hex as a2b -from struct import pack import subcmd import utils @@ -39,18 +38,16 @@ _ECIES_OPCODES = { # 1 LSB INFO LEN # INFO_LEN INFO # -_ECIES_CMD_FORMAT = ('{o:c}{inl:s}{input}{al:s}{iv}' - '{xl:s}{x}{yl:s}{y}{sl:s}{s}{il:s}{i}') -_DEFAULT_SALT = 'Salt!' -_DEFAULT_INFO = 'Info!' -_STATIC_IV = ''.join([chr(x) for x in range(16)]) +_DEFAULT_SALT = b'Salt!' +_DEFAULT_INFO = b'Info!' +_STATIC_IV = bytes([x for x in range(16)]) _ECIES_INPUTS = ( ( - '', - 'Test message!!', + b'', + b'Test message!!', _STATIC_IV, a2b('6fdaf5e2e11dd61c116222c748d99b45f69031c9d4d3d5787a9a0fdd3b9c471a'), a2b('98e76f53febd6bedc8fa19ce1543cb3f8f5cbc72c74602f1bfdee88c19d3d9d0'), @@ -60,8 +57,8 @@ _ECIES_INPUTS = ( 'SIMPLE' ), ( - '', - 'Multi block test message!!!!', + b'', + b'Multi block test message!!!!', _STATIC_IV, a2b('6fdaf5e2e11dd61c116222c748d99b45f69031c9d4d3d5787a9a0fdd3b9c471a'), a2b('98e76f53febd6bedc8fa19ce1543cb3f8f5cbc72c74602f1bfdee88c19d3d9d0'), @@ -71,8 +68,8 @@ _ECIES_INPUTS = ( 'MULTI-BLOCK' ), ( - 'Auth data', - 'Test message!!!!', + b'Auth data', + b'Test message!!!!', _STATIC_IV, a2b('6fdaf5e2e11dd61c116222c748d99b45f69031c9d4d3d5787a9a0fdd3b9c471a'), a2b('98e76f53febd6bedc8fa19ce1543cb3f8f5cbc72c74602f1bfdee88c19d3d9d0'), @@ -82,8 +79,8 @@ _ECIES_INPUTS = ( 'AUTH-DATA' ), ( - 'Auth data' * 10, - 'Test message!!!!', + b'Auth data' * 10, + b'Test message!!!!', _STATIC_IV, a2b('6fdaf5e2e11dd61c116222c748d99b45f69031c9d4d3d5787a9a0fdd3b9c471a'), a2b('98e76f53febd6bedc8fa19ce1543cb3f8f5cbc72c74602f1bfdee88c19d3d9d0'), @@ -93,8 +90,8 @@ _ECIES_INPUTS = ( 'LARGE-AUTH-DATA' ), ( - 'Auth data', - 'Test message!!!!' * 5, + b'Auth data', + b'Test message!!!!' * 5, _STATIC_IV, a2b('6fdaf5e2e11dd61c116222c748d99b45f69031c9d4d3d5787a9a0fdd3b9c471a'), a2b('98e76f53febd6bedc8fa19ce1543cb3f8f5cbc72c74602f1bfdee88c19d3d9d0'), @@ -104,19 +101,19 @@ _ECIES_INPUTS = ( 'LARGE-PLAINTEXT-DATA' ), ( - '', - 'Test message!!', + b'', + b'Test message!!', _STATIC_IV, a2b('6fdaf5e2e11dd61c116222c748d99b45f69031c9d4d3d5787a9a0fdd3b9c471a'), a2b('98e76f53febd6bedc8fa19ce1543cb3f8f5cbc72c74602f1bfdee88c19d3d9d0'), a2b('8750c295cd33be5846868e2869bf2c8cfeefbc4a574874c7388bf40f74e8e0e6'), - '', - '', + b'', + b'', 'NO-SALT-INFO' ), ( - 'Auth data', - '', + b'Auth data', + b'', _STATIC_IV, a2b('6fdaf5e2e11dd61c116222c748d99b45f69031c9d4d3d5787a9a0fdd3b9c471a'), a2b('98e76f53febd6bedc8fa19ce1543cb3f8f5cbc72c74602f1bfdee88c19d3d9d0'), @@ -126,8 +123,8 @@ _ECIES_INPUTS = ( 'AUTH-NULL-PLAINTEXT' ), ( - '', - '', + b'', + b'', _STATIC_IV, a2b('6fdaf5e2e11dd61c116222c748d99b45f69031c9d4d3d5787a9a0fdd3b9c471a'), a2b('98e76f53febd6bedc8fa19ce1543cb3f8f5cbc72c74602f1bfdee88c19d3d9d0'), @@ -141,7 +138,7 @@ _ECIES_INPUTS = ( _ECIES_COMPAT_INPUTS = ( ( a2b('d61262f22e8c70414777cbc060d1e387'), - 'The quick brown fox jumps over the lazy dog.', + b'The quick brown fox jumps over the lazy dog.', a2b('d61262f22e8c70414777cbc060d1e387'), a2b('040c23b1abb7f7e3d2da6ffd70ce9e6f5bf90467c0e1f2e708483d2e61220f0a' '0257110d695bec78ac1e15333219d7ba3f8f2f155b76acd56d99680031d83853' @@ -155,7 +152,7 @@ _ECIES_COMPAT_INPUTS = ( ), ( a2b('b3a89ed5a7fb6685a67db54c62e663e7'), - 'Test message!!', + b'Test message!!', a2b('b3a89ed5a7fb6685a67db54c62e663e7'), a2b('04b9d46d1f333baf6896ce7b64d344092671795438b1dc35a21b0d13b004f28a1c' 'edd4f1f7ff63106772270050cb62152b07e9c02bbee79db7a3fb4155c464e0d5b3' @@ -170,26 +167,23 @@ _ECIES_COMPAT_INPUTS = ( # pylint: disable=too-many-arguments def _encrypt_cmd(auth, in_data, init_vec, pubx, puby, salt, info): - ecies_op = _ECIES_OPCODES['ENCRYPT'] - return _ECIES_CMD_FORMAT.format(o=ecies_op, - inl=pack('>H', len(auth+in_data)), - input=auth+in_data, - al=pack('>H', len(auth)), iv=init_vec, - xl=pack('>H', len(pubx)), x=pubx, - yl=pack('>H', len(puby)), y=puby, - sl=pack('>H', len(salt)), s=salt, - il=pack('>H', len(info)), i=info) - -# pylint: disable=too-many-arguments -def _decrypt_cmd(auth, in_data, init_vec, tag, salt, info): - ecies_op = _ECIES_OPCODES['DECRYPT'] - return _ECIES_CMD_FORMAT.format(o=ecies_op, inl=pack('>H', len(in_data)), - input=in_data, - al=pack('>H', len(auth)), iv=init_vec, - xl=pack('>H', len(tag)), x=tag, - yl=pack('>H', 0), y='', - sl=pack('>H', len(salt)), s=salt, - il=pack('>H', len(info)), i=info) + return _ECIES_OPCODES['ENCRYPT'].to_bytes(1, 'big') +\ + len(auth+in_data).to_bytes(2, 'big') + auth + in_data +\ + len(auth).to_bytes(2, 'big') + init_vec +\ + len(pubx).to_bytes(2, 'big') + pubx +\ + len(puby).to_bytes(2, 'big') + puby +\ + len(salt).to_bytes(2, 'big') + salt +\ + len(info).to_bytes(2, 'big') + info + + +def _decrypt_cmd(auth, in_data, init_vec, d, salt, info): + return _ECIES_OPCODES['DECRYPT'].to_bytes(1, 'big') +\ + len(in_data).to_bytes(2, 'big') + in_data +\ + len(auth).to_bytes(2, 'big') + init_vec +\ + len(d).to_bytes(2, 'big') + d +\ + bytes([0, 0]) +\ + len(salt).to_bytes(2, 'big') + salt +\ + len(info).to_bytes(2, 'big') + info # pylint: disable=too-many-locals def _ecies_test(tpm): |