34 lines
777 B
Python
34 lines
777 B
Python
import pytest
|
|
|
|
from tea3 import Tea3
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"frame, expected_iv",
|
|
[
|
|
(0x11111111, 0xD5111111112B6C40),
|
|
],
|
|
)
|
|
def test_compute_iv(frame, expected_iv):
|
|
assert Tea3.compute_iv(frame) == expected_iv
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"key, frame, expected",
|
|
[
|
|
(
|
|
[0x00] * 10,
|
|
0x11111111,
|
|
[0x06, 0xA6, 0x58, 0x8C, 0x5D, 0x9A, 0x99, 0x6D, 0xD2, 0x5E],
|
|
),
|
|
(
|
|
[0xA7, 0x98, 0x39, 0xE4, 0xBA, 0x88, 0xEE, 0x54, 0xA0, 0x29],
|
|
0x01234567,
|
|
[0x02, 0x49, 0x1E, 0xF5, 0x57, 0xC5, 0x1C, 0x17, 0x73, 0x0C],
|
|
),
|
|
],
|
|
)
|
|
def test_known_vectors(key, frame, expected):
|
|
cipher = Tea3(frame, key)
|
|
assert cipher.keystream(len(expected)) == expected
|