]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
test/pytests/test_tls: remove resumption test
authorOto Šťáva <oto.stava@nic.cz>
Tue, 7 May 2024 11:29:32 +0000 (13:29 +0200)
committerOto Šťáva <oto.stava@nic.cz>
Mon, 13 May 2024 13:09:22 +0000 (15:09 +0200)
Knot Resolver disables resumption on TLS <=1.2 as it is vulnerable to
replay attacks, so the test makes no sense, as that one was specifically
disabled for TLS >=1.3 (Python had no support for it at the time).

We should make a new test for this with TLS 1.3 support.

tests/pytests/test_tls.py

index 7f5fa42fb7289123e8f0a9d09816cc8bd8e48d72..2187efbcff77a79ac54cb204641b7c8724806006 100644 (file)
@@ -1,15 +1,8 @@
 # SPDX-License-Identifier: GPL-3.0-or-later
 """TLS-specific tests"""
 
-import itertools
-import os
-from socket import AF_INET, AF_INET6
 import ssl
-import sys
-
 import pytest
-
-from kresd import make_kresd
 import utils
 
 
@@ -41,43 +34,3 @@ def test_tls_cert_hostname_mismatch(kresd_tt, sock_family):
 
     with pytest.raises(ssl.CertificateError):
         ssock.connect(dest)
-
-
-@pytest.mark.skipif(sys.version_info < (3, 6),
-                    reason="requires python3.6 or higher")
-@pytest.mark.parametrize('sf1, sf2, sf3', itertools.product(
-    [AF_INET, AF_INET6], [AF_INET, AF_INET6], [AF_INET, AF_INET6]))
-def test_tls_session_resumption(tmpdir, sf1, sf2, sf3):
-    """Attempt TLS session resumption against the same kresd instance and a different one."""
-    # TODO ensure that session can't be resumed after session ticket key regeneration
-    # at the first kresd instance
-
-    # NOTE TLS 1.3 is intentionally disabled for session resumption tests,
-    # because python's SSLSocket.session isn't compatible with TLS 1.3
-    # https://docs.python.org/3/library/ssl.html?highlight=ssl%20ticket#tls-1-3
-
-    def connect(kresd, ctx, sf, session=None):
-        sock, dest = kresd.stream_socket(sf, tls=True)
-        ssock = ctx.wrap_socket(
-            sock, server_hostname='transport-test-server.com', session=session)
-        ssock.connect(dest)
-        new_session = ssock.session
-        assert new_session.has_ticket
-        assert ssock.session_reused == (session is not None)
-        utils.ping_alive(ssock)
-        ssock.close()
-        return new_session
-
-    workdir = os.path.join(str(tmpdir), 'kresd')
-    os.makedirs(workdir)
-
-    with make_kresd(workdir, 'tt') as kresd:
-        ctx = utils.make_ssl_context(
-            verify_location=kresd.tls_cert_path, maximum_tls=ssl.TLSVersion.TLSv1_2)
-        session = connect(kresd, ctx, sf1)  # initial conn
-        connect(kresd, ctx, sf2, session)  # resume session on the same instance
-
-    workdir2 = os.path.join(str(tmpdir), 'kresd2')
-    os.makedirs(workdir2)
-    with make_kresd(workdir2, 'tt') as kresd2:
-        connect(kresd2, ctx, sf3, session)  # resume session on a different instance