summaryrefslogtreecommitdiff
path: root/test/tpm_test/ecies_test.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/tpm_test/ecies_test.py')
-rw-r--r--test/tpm_test/ecies_test.py86
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):