mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2024-11-22 17:36:34 +03:00
43 lines
1.1 KiB
Python
43 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
|