Telethon/tests/telethon/crypto/test_rsa.py
2019-12-07 20:43:29 +01:00

38 lines
1.1 KiB
Python

"""
tests for telethon.crypto.rsa
"""
import pytest
from telethon.crypto import rsa
@pytest.fixture
def server_key_fp():
"""factory to return a key, old if so chosen"""
def _server_key_fp(old: bool):
for fp, data in rsa._server_keys.items():
_, old_key = data
if old_key == old:
return fp
return _server_key_fp
def test_encryption_inv_key():
"""test for #1324"""
assert rsa.encrypt("invalid", b"testdata") is None
def test_encryption_old_key(server_key_fp):
"""test for #1324"""
assert rsa.encrypt(server_key_fp(old=True), b"testdata") is None
def test_encryption_allowed_old_key(server_key_fp):
data = rsa.encrypt(server_key_fp(old=True), b"testdata", use_old=True)
# we can't verify the data is actually valid because we don't have
# the decryption keys
assert data is not None and len(data) == 256
def test_encryption_current_key(server_key_fp):
data = rsa.encrypt(server_key_fp(old=False), b"testdata")
# we can't verify the data is actually valid because we don't have
# the decryption keys
assert data is not None and len(data) == 256