From acd14d7bf3b7dc313894133602c1c4e85e22385d Mon Sep 17 00:00:00 2001 From: NotAFile Date: Sat, 7 Dec 2019 20:43:29 +0100 Subject: [PATCH] add test checking for #1324 --- tests/telethon/crypto/test_rsa.py | 37 +++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 tests/telethon/crypto/test_rsa.py diff --git a/tests/telethon/crypto/test_rsa.py b/tests/telethon/crypto/test_rsa.py new file mode 100644 index 00000000..a1a949d2 --- /dev/null +++ b/tests/telethon/crypto/test_rsa.py @@ -0,0 +1,37 @@ +""" +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