]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
tests: 780 - 783, new HSTS tests
authorDaniel Stenberg <daniel@haxx.se>
Wed, 9 Oct 2024 09:27:29 +0000 (11:27 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Wed, 9 Oct 2024 11:48:14 +0000 (13:48 +0200)
test780: verify updated HSTS data in response header

test781: HSTS update expiry, with parent includeSubDomains domain
present

test782: HSTS update expiry, with two includeSubDomains domains present

test783: HSTS update expiry, removing includesubdomains in update

tests/data/Makefile.am
tests/data/test780 [new file with mode: 0644]
tests/data/test781 [new file with mode: 0644]
tests/data/test782 [new file with mode: 0644]
tests/data/test783 [new file with mode: 0644]

index 5b028a05b24d5d9c0490506d92daf3e015da2d53..480a88208b56a8c6cdaf1c6c2c3c2897fe010b4f 100644 (file)
@@ -109,6 +109,8 @@ test718 test719 test720 test721 test722 test723 test724 test725 test726 \
 test727 test728 test729 test730 test731 test732 test733 test734 test735 \
 test736 test737 test738 test739 test740 test741 test742 \
 \
+test780 test781 test782 test783 \
+\
 test799 test800 test801 test802 test803 test804 test805 test806 test807 \
 test808 test809 test810 test811 test812 test813 test814 test815 test816 \
 test817 test818 test819 test820 test821 test822 test823 test824 test825 \
diff --git a/tests/data/test780 b/tests/data/test780
new file mode 100644 (file)
index 0000000..3db14d1
--- /dev/null
@@ -0,0 +1,81 @@
+<testcase>
+<info>
+<keywords>
+HTTP
+HTTP proxy
+HSTS
+</keywords>
+</info>
+
+<reply>
+
+# we use this as response to a CONNECT
+<connect nocheck="yes">
+HTTP/1.1 200 OK\r
+Server: fake\r
+\r
+</connect>
+
+<data nocheck="yes">
+HTTP/1.1 200 OK
+Date: Tue, 09 Nov 2010 14:49:00 GMT
+Server: test-server/fake swsclose
+Content-Type: text/html
+Funny-head: yesyes
+Strict-Transport-Security: max-age=1000
+
+</data>
+</reply>
+
+<client>
+<server>
+http
+http-proxy
+https
+</server>
+<features>
+HSTS
+proxy
+https
+Debug
+</features>
+
+<setenv>
+CURL_HSTS_HTTP=yes
+CURL_TIME=1728465947
+</setenv>
+
+<file name="%LOGDIR/input%TESTNUMBER">
+this.hsts.example "99991001 04:47:41"
+</file>
+
+<name>
+HSTS with updated expiry in response
+</name>
+<command>
+-x http://%HOSTIP:%PROXYPORT http://this.hsts.example:%HTTPSPORT/%TESTNUMBER --hsts %LOGDIR/input%TESTNUMBER -k
+</command>
+</client>
+
+<verify>
+
+<stdout>
+HTTP/1.1 200 OK\r
+Server: fake\r
+\r
+HTTP/1.1 200 OK
+Date: Tue, 09 Nov 2010 14:49:00 GMT
+Server: test-server/fake swsclose
+Content-Type: text/html
+Funny-head: yesyes
+Strict-Transport-Security: max-age=1000
+
+</stdout>
+
+<file name="%LOGDIR/input%TESTNUMBER" mode="text">
+# Your HSTS cache. https://curl.se/docs/hsts.html
+# This file was generated by libcurl! Edit at your own risk.
+this.hsts.example "20241009 09:42:27"
+</file>
+</verify>
+</testcase>
diff --git a/tests/data/test781 b/tests/data/test781
new file mode 100644 (file)
index 0000000..e931da4
--- /dev/null
@@ -0,0 +1,84 @@
+<testcase>
+<info>
+<keywords>
+HTTP
+HTTP proxy
+HSTS
+</keywords>
+</info>
+
+<reply>
+
+# we use this as response to a CONNECT
+<connect nocheck="yes">
+HTTP/1.1 200 OK\r
+Server: fake\r
+\r
+</connect>
+
+<data nocheck="yes">
+HTTP/1.1 200 OK
+Date: Tue, 09 Nov 2010 14:49:00 GMT
+Server: test-server/fake swsclose
+Content-Type: text/html
+Funny-head: yesyes
+Strict-Transport-Security: max-age=1000
+
+</data>
+</reply>
+
+<client>
+<server>
+http
+http-proxy
+https
+</server>
+<features>
+HSTS
+proxy
+https
+Debug
+large-time
+</features>
+
+<setenv>
+CURL_HSTS_HTTP=yes
+CURL_TIME=1728465947
+</setenv>
+
+<file name="%LOGDIR/input%TESTNUMBER">
+.hsts.example "20991001 04:47:41"
+this.hsts.example "99991001 04:47:41"
+</file>
+
+<name>
+HSTS update expiry, with parent includeSubDomains domain present
+</name>
+<command>
+-x http://%HOSTIP:%PROXYPORT http://this.hsts.example:%HTTPSPORT/%TESTNUMBER --hsts %LOGDIR/input%TESTNUMBER -k
+</command>
+</client>
+
+<verify>
+
+<stdout>
+HTTP/1.1 200 OK\r
+Server: fake\r
+\r
+HTTP/1.1 200 OK
+Date: Tue, 09 Nov 2010 14:49:00 GMT
+Server: test-server/fake swsclose
+Content-Type: text/html
+Funny-head: yesyes
+Strict-Transport-Security: max-age=1000
+
+</stdout>
+
+<file name="%LOGDIR/input%TESTNUMBER" mode="text">
+# Your HSTS cache. https://curl.se/docs/hsts.html
+# This file was generated by libcurl! Edit at your own risk.
+.hsts.example "20991001 04:47:41"
+this.hsts.example "20241009 09:42:27"
+</file>
+</verify>
+</testcase>
diff --git a/tests/data/test782 b/tests/data/test782
new file mode 100644 (file)
index 0000000..ae0d747
--- /dev/null
@@ -0,0 +1,84 @@
+<testcase>
+<info>
+<keywords>
+HTTP
+HTTP proxy
+HSTS
+</keywords>
+</info>
+
+<reply>
+
+# we use this as response to a CONNECT
+<connect nocheck="yes">
+HTTP/1.1 200 OK\r
+Server: fake\r
+\r
+</connect>
+
+<data nocheck="yes">
+HTTP/1.1 200 OK
+Date: Tue, 09 Nov 2010 14:49:00 GMT
+Server: test-server/fake swsclose
+Content-Type: text/html
+Funny-head: yesyes
+Strict-Transport-Security: max-age=1000; includesubdomains
+
+</data>
+</reply>
+
+<client>
+<server>
+http
+http-proxy
+https
+</server>
+<features>
+HSTS
+proxy
+https
+Debug
+large-time
+</features>
+
+<setenv>
+CURL_HSTS_HTTP=yes
+CURL_TIME=1728465947
+</setenv>
+
+<file name="%LOGDIR/input%TESTNUMBER">
+.hsts.example "20991001 04:47:41"
+.this.hsts.example "99991001 04:47:41"
+</file>
+
+<name>
+HSTS update expiry, with two includeSubDomains domains present
+</name>
+<command>
+-x http://%HOSTIP:%PROXYPORT http://this.hsts.example:%HTTPSPORT/%TESTNUMBER --hsts %LOGDIR/input%TESTNUMBER -k
+</command>
+</client>
+
+<verify>
+
+<stdout>
+HTTP/1.1 200 OK\r
+Server: fake\r
+\r
+HTTP/1.1 200 OK
+Date: Tue, 09 Nov 2010 14:49:00 GMT
+Server: test-server/fake swsclose
+Content-Type: text/html
+Funny-head: yesyes
+Strict-Transport-Security: max-age=1000; includesubdomains
+
+</stdout>
+
+<file name="%LOGDIR/input%TESTNUMBER" mode="text">
+# Your HSTS cache. https://curl.se/docs/hsts.html
+# This file was generated by libcurl! Edit at your own risk.
+.hsts.example "20991001 04:47:41"
+.this.hsts.example "20241009 09:42:27"
+</file>
+</verify>
+</testcase>
diff --git a/tests/data/test783 b/tests/data/test783
new file mode 100644 (file)
index 0000000..dc58fa4
--- /dev/null
@@ -0,0 +1,84 @@
+<testcase>
+<info>
+<keywords>
+HTTP
+HTTP proxy
+HSTS
+</keywords>
+</info>
+
+<reply>
+
+# we use this as response to a CONNECT
+<connect nocheck="yes">
+HTTP/1.1 200 OK\r
+Server: fake\r
+\r
+</connect>
+
+<data nocheck="yes">
+HTTP/1.1 200 OK
+Date: Tue, 09 Nov 2010 14:49:00 GMT
+Server: test-server/fake swsclose
+Content-Type: text/html
+Funny-head: yesyes
+Strict-Transport-Security: max-age=1000;
+
+</data>
+</reply>
+
+<client>
+<server>
+http
+http-proxy
+https
+</server>
+<features>
+HSTS
+proxy
+https
+Debug
+large-time
+</features>
+
+<setenv>
+CURL_HSTS_HTTP=yes
+CURL_TIME=1728465947
+</setenv>
+
+<file name="%LOGDIR/input%TESTNUMBER">
+.hsts.example "20991001 04:47:41"
+.this.hsts.example "99991001 04:47:41"
+</file>
+
+<name>
+HSTS update expiry, removing includesubdomains in update
+</name>
+<command>
+-x http://%HOSTIP:%PROXYPORT http://this.hsts.example:%HTTPSPORT/%TESTNUMBER --hsts %LOGDIR/input%TESTNUMBER -k
+</command>
+</client>
+
+<verify>
+
+<stdout>
+HTTP/1.1 200 OK\r
+Server: fake\r
+\r
+HTTP/1.1 200 OK
+Date: Tue, 09 Nov 2010 14:49:00 GMT
+Server: test-server/fake swsclose
+Content-Type: text/html
+Funny-head: yesyes
+Strict-Transport-Security: max-age=1000;
+
+</stdout>
+
+<file name="%LOGDIR/input%TESTNUMBER" mode="text">
+# Your HSTS cache. https://curl.se/docs/hsts.html
+# This file was generated by libcurl! Edit at your own risk.
+.hsts.example "20991001 04:47:41"
+this.hsts.example "20241009 09:42:27"
+</file>
+</verify>
+</testcase>