]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
pytests/proxy: run test_rehandshake with TLS 1.3 as well
authorTomas Krizek <tomas.krizek@nic.cz>
Mon, 21 Jan 2019 13:41:31 +0000 (14:41 +0100)
committerTomas Krizek <tomas.krizek@nic.cz>
Wed, 23 Jan 2019 13:58:47 +0000 (14:58 +0100)
tests/pytests/proxy.py
tests/pytests/test_rehandshake.py

index dd402e82253ae65bd2a3801e73dd69e9edd8dd04..610ca21a1904a6f742703f1de1689b28b6ad8c42 100644 (file)
@@ -89,7 +89,8 @@ class TLSProxy(Proxy):
                 upstream_port: Optional[int] = None,
                 certname: Optional[str] = 'tt',
                 close: Optional[int] = None,
-                rehandshake: bool = False
+                rehandshake: bool = False,
+                force_tls13: bool = False
             ) -> None:
         super().__init__(local_ip, local_port, upstream_ip, upstream_port)
         if certname is not None:
@@ -100,6 +101,7 @@ class TLSProxy(Proxy):
             self.key_path = None
         self.close = close
         self.rehandshake = rehandshake
+        self.force_tls13 = force_tls13
 
     def get_args(self):
         args = super().get_args()
@@ -114,6 +116,8 @@ class TLSProxy(Proxy):
             args.append(str(self.close))
         if self.rehandshake:
             args.append('--rehandshake')
+        if self.force_tls13:
+            args.append('--tls13')
         return args
 
 
index 27c2070002c9d56001732a957362e01433c362e2..6a0f5915e1dedfac126ac4081815652771b9e504 100644 (file)
@@ -11,12 +11,12 @@ and sent back to the client (this test).
 import re
 import time
 
-from proxy import HINTS, kresd_tls_client, resolve_hint, TLSProxy
+import pytest
 
+from proxy import HINTS, kresd_tls_client, resolve_hint, TLSProxy
 
-def test_proxy_rehandshake(tmpdir):
-    proxy = TLSProxy(rehandshake=True)
 
+def verify_rehandshake(tmpdir, proxy):
     with kresd_tls_client(str(tmpdir), proxy) as kresd:
         sock2 = kresd.ip_tcp_socket()
         try:
@@ -36,3 +36,16 @@ def test_proxy_rehandshake(tmpdir):
                     n_rehandshake += 1
             assert n_connecting_to == 1  # should connect exactly once
             assert n_rehandshake > 0
+
+
+def test_proxy_rehandshake_tls12(tmpdir):
+    proxy = TLSProxy(rehandshake=True)
+    verify_rehandshake(tmpdir, proxy)
+
+
+# TODO fix TLS v1.3 proxy / kresd rehandshake
+@pytest.mark.xfail(
+    reason="TLS 1.3 rehandshake isn't properly supported either in tlsproxy or in kresd")
+def test_proxy_rehandshake_tls13(tmpdir):
+    proxy = TLSProxy(rehandshake=True, force_tls13=True)
+    verify_rehandshake(tmpdir, proxy)