summaryrefslogtreecommitdiff
path: root/src/tests
diff options
context:
space:
mode:
authorThibault "bui" Koechlin2017-12-28 13:37:10 +0100
committerjvoisin2017-12-28 13:37:10 +0100
commitbc4d0e014e9fb1edd05e6f9c91cbf97b6c5546b4 (patch)
treecad37642d9c1e5ef786f29c18a030c4a8a288af2 /src/tests
parentfe057bba5baaef8fe428b971604194ef9c9119c0 (diff)
Implement regexp support for cookies encryption
It's now possible to encrypt cookies matching a specific regexp. This should close #106
Diffstat (limited to 'src/tests')
-rw-r--r--src/tests/broken_conf_no_cookie_name.phpt2
-rw-r--r--src/tests/config/config_encrypted_regexp_cookies.ini3
-rw-r--r--src/tests/config/config_encrypted_regexp_cookies_empty_env.ini2
-rw-r--r--src/tests/config/encrypt_regexp_cookies_no_env.ini2
-rw-r--r--src/tests/config/encrypt_regexp_cookies_no_key.ini2
-rw-r--r--src/tests/encrypt_cookies2.phpt2
-rw-r--r--src/tests/encrypt_cookies3.phpt2
-rw-r--r--src/tests/encrypt_regexp_cookies.phpt22
-rw-r--r--src/tests/encrypt_regexp_cookies2.phpt23
-rw-r--r--src/tests/encrypt_regexp_cookies3.phpt23
-rw-r--r--src/tests/encrypt_regexp_cookies4.phpt23
-rw-r--r--src/tests/encrypt_regexp_cookies_empty_env.phpt19
-rw-r--r--src/tests/encrypt_regexp_cookies_invalid_decryption.phpt23
-rw-r--r--src/tests/encrypt_regexp_cookies_invalid_decryption2.phpt23
-rw-r--r--src/tests/encrypt_regexp_cookies_invalid_decryption3.phpt21
-rw-r--r--src/tests/encrypt_regexp_cookies_no_env.phpt19
-rw-r--r--src/tests/encrypt_regexp_cookies_no_key.phpt19
17 files changed, 227 insertions, 3 deletions
diff --git a/src/tests/broken_conf_no_cookie_name.phpt b/src/tests/broken_conf_no_cookie_name.phpt
index 4616f12..10fde3e 100644
--- a/src/tests/broken_conf_no_cookie_name.phpt
+++ b/src/tests/broken_conf_no_cookie_name.phpt
@@ -6,4 +6,4 @@ Borken configuration - encrypted cookie with no name
6sp.configuration_file={PWD}/config/config_encrypted_cookies_noname.ini 6sp.configuration_file={PWD}/config/config_encrypted_cookies_noname.ini
7--FILE-- 7--FILE--
8--EXPECT-- 8--EXPECT--
9[snuffleupagus][0.0.0.0][config][error] You must specify a cookie name on line 2. 9[snuffleupagus][0.0.0.0][config][error] You must specify a cookie name/regexp on line 2.
diff --git a/src/tests/config/config_encrypted_regexp_cookies.ini b/src/tests/config/config_encrypted_regexp_cookies.ini
new file mode 100644
index 0000000..8ea77f7
--- /dev/null
+++ b/src/tests/config/config_encrypted_regexp_cookies.ini
@@ -0,0 +1,3 @@
1sp.global.secret_key("abcdef").cookie_env_var("REMOTE_ADDR");
2sp.cookie.name_r("^super_co[a-z]+$").encrypt();
3sp.auto_cookie_secure.enable();
diff --git a/src/tests/config/config_encrypted_regexp_cookies_empty_env.ini b/src/tests/config/config_encrypted_regexp_cookies_empty_env.ini
new file mode 100644
index 0000000..da84df7
--- /dev/null
+++ b/src/tests/config/config_encrypted_regexp_cookies_empty_env.ini
@@ -0,0 +1,2 @@
1sp.global.secret_key("abcdef").cookie_env_var("REMOTE_ADDR");
2sp.cookie.name_r("^super_coo[a-z]+$").encrypt();
diff --git a/src/tests/config/encrypt_regexp_cookies_no_env.ini b/src/tests/config/encrypt_regexp_cookies_no_env.ini
new file mode 100644
index 0000000..0e1fa30
--- /dev/null
+++ b/src/tests/config/encrypt_regexp_cookies_no_env.ini
@@ -0,0 +1,2 @@
1sp.global.secret_key("abcdef");
2sp.cookie.name_r("^super_co[a-z]+$").encrypt();
diff --git a/src/tests/config/encrypt_regexp_cookies_no_key.ini b/src/tests/config/encrypt_regexp_cookies_no_key.ini
new file mode 100644
index 0000000..52427f4
--- /dev/null
+++ b/src/tests/config/encrypt_regexp_cookies_no_key.ini
@@ -0,0 +1,2 @@
1sp.global.cookie_env_var("TEST");
2sp.cookie.name_r("^super_co[a-z]+$").encrypt();
diff --git a/src/tests/encrypt_cookies2.phpt b/src/tests/encrypt_cookies2.phpt
index be4c990..195cb24 100644
--- a/src/tests/encrypt_cookies2.phpt
+++ b/src/tests/encrypt_cookies2.phpt
@@ -3,7 +3,7 @@ Cookie encryption in ipv4
3--SKIPIF-- 3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) die "skip"; ?> 4<?php if (!extension_loaded("snuffleupagus")) die "skip"; ?>
5--INI-- 5--INI--
6sp.configuration_file={PWD}/config/config_encrypted_cookies.ini 6sp.configuration_file={PWD}/config/config_encrypted_regexp_cookies.ini
7--COOKIE-- 7--COOKIE--
8--ENV-- 8--ENV--
9return <<<EOF 9return <<<EOF
diff --git a/src/tests/encrypt_cookies3.phpt b/src/tests/encrypt_cookies3.phpt
index b4acbc0..ceb364c 100644
--- a/src/tests/encrypt_cookies3.phpt
+++ b/src/tests/encrypt_cookies3.phpt
@@ -3,7 +3,7 @@ Cookie decryption with ipv6
3--SKIPIF-- 3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) die "skip"; ?> 4<?php if (!extension_loaded("snuffleupagus")) die "skip"; ?>
5--INI-- 5--INI--
6sp.configuration_file={PWD}/config/config_encrypted_cookies.ini 6sp.configuration_file={PWD}/config/config_encrypted_regexp_cookies.ini
7--COOKIE-- 7--COOKIE--
8super_cookie=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABM84SCotZTpP6b27Lr5lavORPMvqaKpcUahvxw=;awful_cookie=awful_cookie_value; 8super_cookie=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABM84SCotZTpP6b27Lr5lavORPMvqaKpcUahvxw=;awful_cookie=awful_cookie_value;
9--ENV-- 9--ENV--
diff --git a/src/tests/encrypt_regexp_cookies.phpt b/src/tests/encrypt_regexp_cookies.phpt
new file mode 100644
index 0000000..6bc187a
--- /dev/null
+++ b/src/tests/encrypt_regexp_cookies.phpt
@@ -0,0 +1,22 @@
1--TEST--
2Cookie decryption in ipv4
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) die "skip"; ?>
5--INI--
6sp.configuration_file={PWD}/config/config_encrypted_regexp_cookies.ini
7--COOKIE--
8super_cookie=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP3gV9YJZL/pUeNAjCKFW0U2ywmf1CwHzwd2pWM=;awful_cookie=awful_cookie_value;
9--ENV--
10return <<<EOF
11REMOTE_ADDR=127.0.0.1
12HTTP_USER_AGENT=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/59.0.3071.109 Chrome/59.0.3071.109 Safari/537.36
13EOF;
14--FILE--
15<?php var_dump($_COOKIE); ?>
16--EXPECT--
17array(2) {
18 ["super_cookie"]=>
19 string(11) "super_value"
20 ["awful_cookie"]=>
21 string(18) "awful_cookie_value"
22}
diff --git a/src/tests/encrypt_regexp_cookies2.phpt b/src/tests/encrypt_regexp_cookies2.phpt
new file mode 100644
index 0000000..195cb24
--- /dev/null
+++ b/src/tests/encrypt_regexp_cookies2.phpt
@@ -0,0 +1,23 @@
1--TEST--
2Cookie encryption in ipv4
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) die "skip"; ?>
5--INI--
6sp.configuration_file={PWD}/config/config_encrypted_regexp_cookies.ini
7--COOKIE--
8--ENV--
9return <<<EOF
10REMOTE_ADDR=127.0.0.1
11HTTP_USER_AGENT=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/59.0.3071.109 Chrome/59.0.3071.109 Safari/537.36
12HTTPS=1
13EOF;
14--FILE--
15<?php
16setcookie("super_cookie", "super_value");
17setcookie("awful_cookie", "awful_value");
18setcookie("nice_cookie", "nice_value", 1, "1", "1", true, true);
19var_dump($_COOKIE);
20?>
21--EXPECT--
22array(0) {
23}
diff --git a/src/tests/encrypt_regexp_cookies3.phpt b/src/tests/encrypt_regexp_cookies3.phpt
new file mode 100644
index 0000000..ceb364c
--- /dev/null
+++ b/src/tests/encrypt_regexp_cookies3.phpt
@@ -0,0 +1,23 @@
1--TEST--
2Cookie decryption with ipv6
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) die "skip"; ?>
5--INI--
6sp.configuration_file={PWD}/config/config_encrypted_regexp_cookies.ini
7--COOKIE--
8super_cookie=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABM84SCotZTpP6b27Lr5lavORPMvqaKpcUahvxw=;awful_cookie=awful_cookie_value;
9--ENV--
10return <<<EOF
11REMOTE_ADDR=2001:0db8:0000:0000:0000:fe00:0042:8329
12HTTP_USER_AGENT=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/59.0.3071.109 Chrome/59.0.3071.109 Safari/537.36
13HTTPS=1
14EOF;
15--FILE--
16<?php var_dump($_COOKIE); ?>
17--EXPECT--
18array(2) {
19 ["super_cookie"]=>
20 string(11) "super_value"
21 ["awful_cookie"]=>
22 string(18) "awful_cookie_value"
23}
diff --git a/src/tests/encrypt_regexp_cookies4.phpt b/src/tests/encrypt_regexp_cookies4.phpt
new file mode 100644
index 0000000..14d737a
--- /dev/null
+++ b/src/tests/encrypt_regexp_cookies4.phpt
@@ -0,0 +1,23 @@
1--TEST--
2Cookie encryption in ipv6
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) die "skip"; ?>
5--INI--
6sp.configuration_file={PWD}/config/config_encrypted_cookies.ini
7--COOKIE--
8--ENV--
9return <<<EOF
10REMOTE_ADDR=2001:0db8:0000:0000:0000:fe00:0042:8329
11HTTP_USER_AGENT=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/59.0.3071.109 Chrome/59.0.3071.109 Safari/537.36
12HTTPS=1
13EOF;
14--FILE--
15<?php
16setcookie("super_cookie", "super_value");
17setcookie("awful_cookie", "awful_value");
18setcookie("nice_cookie", "nice_value", 1, "1", "1", true, true);
19var_dump($_COOKIE);
20?>
21--EXPECT--
22array(0) {
23}
diff --git a/src/tests/encrypt_regexp_cookies_empty_env.phpt b/src/tests/encrypt_regexp_cookies_empty_env.phpt
new file mode 100644
index 0000000..1ee6160
--- /dev/null
+++ b/src/tests/encrypt_regexp_cookies_empty_env.phpt
@@ -0,0 +1,19 @@
1--TEST--
2Cookie encryption - empty environment variable specified
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) die "skip"; ?>
5--INI--
6sp.configuration_file={PWD}/config/config_encrypted_regexp_cookies_empty_env.ini
7display_errors=1
8display_startup_errors=1
9error_reporting=E_ALL
10--COOKIE--
11super_cookie=1337;awful_cookie=awful_cookie_value;
12--ENV--
13return <<<EOF
14NOT_REMOTE_ADDR=127.0.0.1
15EOF;
16--FILE--
17<?php echo "1\n\n\n\n\n"; ?>
18--EXPECT--
191
diff --git a/src/tests/encrypt_regexp_cookies_invalid_decryption.phpt b/src/tests/encrypt_regexp_cookies_invalid_decryption.phpt
new file mode 100644
index 0000000..22bed26
--- /dev/null
+++ b/src/tests/encrypt_regexp_cookies_invalid_decryption.phpt
@@ -0,0 +1,23 @@
1--TEST--
2Cookie encryption
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) die "skip"; ?>
5--INI--
6sp.configuration_file={PWD}/config/config_encrypted_regexp_cookies.ini
7display_errors=1
8display_startup_errors=1
9error_reporting=E_ALL
10--COOKIE--
11super_cookie=jWjORGsgZyqzk3WA63XZBmUoSknXWnXDfAAAAAAAAAAAAAAAAAAAAAA7LiMDfkpP94jDnMVH%2Fm41GeL0Y00q3mbOFYz%2FS9mQGySu;awful_cookie=awful_cookie_value;
12--ENV--
13return <<<EOF
14REMOTE_ADDR=127.0.0.1
15EOF;
16--FILE--
17<?php var_dump($_COOKIE); ?>
18--EXPECT--
19
20array(1) {
21 ["awful_cookie"]=>
22 string(18) "awful_cookie_value"
23}
diff --git a/src/tests/encrypt_regexp_cookies_invalid_decryption2.phpt b/src/tests/encrypt_regexp_cookies_invalid_decryption2.phpt
new file mode 100644
index 0000000..1a740c0
--- /dev/null
+++ b/src/tests/encrypt_regexp_cookies_invalid_decryption2.phpt
@@ -0,0 +1,23 @@
1--TEST--
2Cookie encryption
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) die "skip"; ?>
5--INI--
6sp.configuration_file={PWD}/config/config_encrypted_regexp_cookies.ini
7display_errors=1
8display_startup_errors=1
9error_reporting=E_ALL
10--COOKIE--
11super_cookie=1337;awful_cookie=awful_cookie_value;
12--ENV--
13return <<<EOF
14REMOTE_ADDR=127.0.0.1
15EOF;
16--FILE--
17<?php var_dump($_COOKIE); ?>
18--EXPECT--
19
20array(1) {
21 ["awful_cookie"]=>
22 string(18) "awful_cookie_value"
23}
diff --git a/src/tests/encrypt_regexp_cookies_invalid_decryption3.phpt b/src/tests/encrypt_regexp_cookies_invalid_decryption3.phpt
new file mode 100644
index 0000000..28ffaad
--- /dev/null
+++ b/src/tests/encrypt_regexp_cookies_invalid_decryption3.phpt
@@ -0,0 +1,21 @@
1--TEST--
2Cookie encryption
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) die "skip"; ?>
5--INI--
6sp.configuration_file={PWD}/config/config_encrypted_regexp_cookies.ini
7--COOKIE--
8super_cookie=;awful_cookie=awful_cookie_value;
9--ENV--
10return <<<EOF
11REMOTE_ADDR=127.0.0.1
12EOF;
13--FILE--
14<?php var_dump($_COOKIE); ?>
15--EXPECT--
16array(2) {
17 ["super_cookie"]=>
18 string(0) ""
19 ["awful_cookie"]=>
20 string(18) "awful_cookie_value"
21}
diff --git a/src/tests/encrypt_regexp_cookies_no_env.phpt b/src/tests/encrypt_regexp_cookies_no_env.phpt
new file mode 100644
index 0000000..37b95c1
--- /dev/null
+++ b/src/tests/encrypt_regexp_cookies_no_env.phpt
@@ -0,0 +1,19 @@
1--TEST--
2Cookie encryption - no environment variable specified
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) die "skip"; ?>
5--INI--
6sp.configuration_file={PWD}/config/encrypt_regexp_cookies_no_env.ini
7display_errors=1
8display_startup_errors=1
9error_reporting=E_ALL
10--COOKIE--
11super_cookie=1337;awful_cookie=awful_cookie_value;
12--ENV--
13return <<<EOF
14REMOTE_ADDR=127.0.0.1
15EOF;
16--FILE--
17<?php echo "1\n\n\n\n\n"; ?>
18--EXPECT--
191
diff --git a/src/tests/encrypt_regexp_cookies_no_key.phpt b/src/tests/encrypt_regexp_cookies_no_key.phpt
new file mode 100644
index 0000000..12512ce
--- /dev/null
+++ b/src/tests/encrypt_regexp_cookies_no_key.phpt
@@ -0,0 +1,19 @@
1--TEST--
2Cookie encryption - no encryption key specified
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) die "skip"; ?>
5--INI--
6sp.configuration_file={PWD}/config/encrypt_regexp_cookies_no_key.ini
7display_errors=1
8display_startup_errors=1
9error_reporting=E_ALL
10--COOKIE--
11super_cookie=1337;awful_cookie=awful_cookie_value;
12--ENV--
13return <<<EOF
14REMOTE_ADDR=127.0.0.1
15EOF;
16--FILE--
17<?php echo "1\n\n\n\n\n"; ?>
18--EXPECT--
191