You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
2.4 KiB
68 lines
2.4 KiB
import pytest
|
|
from cryptography_s_des_exploring.sdes.blocks import encode, decode, encode_bytes, decode_bytes
|
|
|
|
|
|
@pytest.mark.parametrize("message, expected_message", [
|
|
# ab -> b'YWI='
|
|
('ab', ['01011001', '01010111', '01001001', '00111101']),
|
|
|
|
# bc -> b'YmM='
|
|
('bc', ['01011001', '01101101', '01001101', '00111101']),
|
|
|
|
# абвґд -> b'0LDQsdCy0pHQtA=='
|
|
('абвґд', ['00110000', '01001100', '01000100', '01010001', '01110011',
|
|
'01100100', '01000011', '01111001', '00110000', '01110000',
|
|
'01001000', '01010001', '01110100', '01000001', '00111101',
|
|
'00111101']),
|
|
|
|
# їґєі -> b'0ZfSkdGU0ZY='
|
|
('їґєі', ['00110000', '01011010', '01100110', '01010011', '01101011',
|
|
'01100100', '01000111', '01010101', '00110000', '01011010',
|
|
'01011001', '00111101']),
|
|
])
|
|
def test_encode(message, expected_message):
|
|
result = list(encode(message))
|
|
assert expected_message == result
|
|
|
|
|
|
@pytest.mark.parametrize("expected_message, encoded_message", [
|
|
# ab -> b'YWI='
|
|
('ab', ['01011001', '01010111', '01001001', '00111101']),
|
|
|
|
# bc -> b'YmM='
|
|
('bc', ['01011001', '01101101', '01001101', '00111101']),
|
|
|
|
# абвґд -> b'0LDQsdCy0pHQtA=='
|
|
('абвґд', ['00110000', '01001100', '01000100', '01010001', '01110011',
|
|
'01100100', '01000011', '01111001', '00110000', '01110000',
|
|
'01001000', '01010001', '01110100', '01000001', '00111101',
|
|
'00111101']),
|
|
|
|
# їґєі -> b'0ZfSkdGU0ZY='
|
|
('їґєі', ['00110000', '01011010', '01100110', '01010011', '01101011',
|
|
'01100100', '01000111', '01010101', '00110000', '01011010',
|
|
'01011001', '00111101']),
|
|
])
|
|
def test_decode(expected_message, encoded_message):
|
|
result = decode(encoded_message)
|
|
assert expected_message == result
|
|
|
|
|
|
@pytest.mark.parametrize("bytes, expected_message", [
|
|
(['01011001', '01010111', '01001001', '00111101'], b'WVdJPQ=='),
|
|
(['01011001', '01010111', '00000000', '00111101'], b'WVcAPQ==')
|
|
])
|
|
def test_encode_bytes(bytes, expected_message):
|
|
result = encode_bytes(bytes)
|
|
assert expected_message == result
|
|
|
|
|
|
@pytest.mark.parametrize("expected_bytes, message", [
|
|
(['01011001', '01010111', '01001001', '00111101'], 'WVdJPQ=='),
|
|
(['01011001', '01010111', '00000000', '00111101'], 'WVcAPQ==')
|
|
])
|
|
def test_encode_bytes(expected_bytes, message):
|
|
result = list(decode_bytes(message))
|
|
assert expected_bytes == result
|
|
|