]> git.ipfire.org Git - thirdparty/openvpn.git/commitdiff
Add unit test for mssfix with compression involved
authorArne Schwabe <arne@rfc2549.org>
Mon, 14 Feb 2022 00:33:21 +0000 (01:33 +0100)
committerGert Doering <gert@greenie.muc.de>
Mon, 14 Feb 2022 07:22:51 +0000 (08:22 +0100)
Acked-by: Gert Doering <gert@greenie.muc.de>
Message-Id: <20220214003321.3741582-1-arne@rfc2549.org>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg23777.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
tests/unit_tests/openvpn/test_crypto.c

index 7fb9d624ee316f5018c358321d7cc6f8b1375f99..ca17054729a0bef6c1e86a5299c1c403e5d3f7c7 100644 (file)
@@ -426,6 +426,34 @@ test_mssfix_mtu_calculation(void **state)
             assert_int_equal(f.mss_fix, 927);
         }
     }
+#ifdef USE_COMP
+    o.comp.alg = COMP_ALG_LZO;
+
+    /* Same but with compression added. Compression adds one byte extra to the
+     * payload so the payload should be reduced by compared to the no
+     * compression calculation before */
+    for (int i = 990;i <= 1010;i++)
+    {
+        /* 992 - 1008 should end up with the same mssfix value all they
+         * all result in the same CBC block size/padding and <= 991 and >=1008
+         * should be one block less and more respectively */
+        o.ce.mssfix = i;
+        frame_calculate_dynamic(&f, &kt, &o, NULL);
+        if (i <= 991)
+        {
+            assert_int_equal(f.mss_fix, 910);
+        }
+        else if (i >= 1008)
+        {
+            assert_int_equal(f.mss_fix, 942);
+        }
+        else
+        {
+            assert_int_equal(f.mss_fix, 926);
+        }
+    }
+    o.comp.alg = COMP_ALG_UNDEF;
+#endif
 
     /* tls client, auth SHA1, cipher AES-256-GCM */
     o.authname = "SHA1";