Skip to content

Commit 6b702ee

Browse files
committed
Migrate some tests to certificate generator
This migrates all the tests using ext/openssl/tests/streams_crypto_method.pem to the certificate generator, so we can easily adjust needed parameters. In particular, this makes the cert security level 2 compatible. However, we still need to downgrade security_level to 1 in a number of tests, because they are testing TLS < 1.2 connections.
1 parent 3dfa258 commit 6b702ee

9 files changed

+106
-41
lines changed

ext/openssl/tests/streams_crypto_method.pem

Lines changed: 0 additions & 33 deletions
This file was deleted.

ext/openssl/tests/streams_crypto_method.phpt

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,13 @@ if (!function_exists("proc_open")) die("skip no proc_open");
77
?>
88
--FILE--
99
<?php
10+
$certFile = __DIR__ . DIRECTORY_SEPARATOR . 'streams_crypto_method.pem.tmp';
11+
1012
$serverCode = <<<'CODE'
1113
$serverUri = "ssl://127.0.0.1:64321";
1214
$serverFlags = STREAM_SERVER_BIND | STREAM_SERVER_LISTEN;
1315
$serverCtx = stream_context_create(['ssl' => [
14-
'local_cert' => __DIR__ . '/streams_crypto_method.pem',
16+
'local_cert' => '%s',
1517
]]);
1618
1719
$server = stream_socket_server($serverUri, $errno, $errstr, $serverFlags, $serverCtx);
@@ -33,6 +35,7 @@ $serverCode = <<<'CODE'
3335
fclose($client);
3436
}
3537
CODE;
38+
$serverCode = sprintf($serverCode, $certFile);
3639

3740
$clientCode = <<<'CODE'
3841
$serverUri = "https://127.0.0.1:64321/";
@@ -47,8 +50,16 @@ $clientCode = <<<'CODE'
4750
echo file_get_contents($serverUri, false, $clientCtx);
4851
CODE;
4952

53+
include 'CertificateGenerator.inc';
54+
$certificateGenerator = new CertificateGenerator();
55+
$certificateGenerator->saveNewCertAsFileWithKey('streams_crypto_method', $certFile);
56+
5057
include 'ServerClientTestCase.inc';
5158
ServerClientTestCase::getInstance()->run($clientCode, $serverCode);
5259
?>
60+
--CLEAN--
61+
<?php
62+
@unlink(__DIR__ . DIRECTORY_SEPARATOR . 'streams_crypto_method.pem.tmp');
63+
?>
5364
--EXPECT--
5465
Hello World!

ext/openssl/tests/tls_min_v1.0_max_v1.1_wrapper.phpt

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,15 @@ if (!function_exists("proc_open")) die("skip no proc_open");
77
?>
88
--FILE--
99
<?php
10+
$certFile = __DIR__ . DIRECTORY_SEPARATOR . 'tls_min_v1.0_max_v1.1_wrapper.pem.tmp';
11+
1012
$serverCode = <<<'CODE'
1113
$flags = STREAM_SERVER_BIND|STREAM_SERVER_LISTEN;
1214
$ctx = stream_context_create(['ssl' => [
13-
'local_cert' => __DIR__ . '/streams_crypto_method.pem',
15+
'local_cert' => '%s',
1416
'min_proto_version' => STREAM_CRYPTO_PROTO_TLSv1_0,
1517
'max_proto_version' => STREAM_CRYPTO_PROTO_TLSv1_1,
18+
'security_level' => 1,
1619
]]);
1720
1821
$server = stream_socket_server('tls://127.0.0.1:64321', $errno, $errstr, $flags, $ctx);
@@ -22,12 +25,14 @@ $serverCode = <<<'CODE'
2225
@stream_socket_accept($server, 3);
2326
}
2427
CODE;
28+
$serverCode = sprintf($serverCode, $certFile);
2529

2630
$clientCode = <<<'CODE'
2731
$flags = STREAM_CLIENT_CONNECT;
2832
$ctx = stream_context_create(['ssl' => [
2933
'verify_peer' => false,
3034
'verify_peer_name' => false,
35+
'security_level' => 1,
3136
]]);
3237
3338
phpt_wait();
@@ -51,9 +56,17 @@ $clientCode = <<<'CODE'
5156
var_dump($client);
5257
CODE;
5358

59+
include 'CertificateGenerator.inc';
60+
$certificateGenerator = new CertificateGenerator();
61+
$certificateGenerator->saveNewCertAsFileWithKey('tls_min_v1.0_max_v1.1_wrapper', $certFile);
62+
5463
include 'ServerClientTestCase.inc';
5564
ServerClientTestCase::getInstance()->run($clientCode, $serverCode);
5665
?>
66+
--CLEAN--
67+
<?php
68+
@unlink(__DIR__ . DIRECTORY_SEPARATOR . 'tls_min_v1.0_max_v1.1_wrapper.pem.tmp');
69+
?>
5770
--EXPECTF--
5871
resource(%d) of type (stream)
5972
bool(false)

ext/openssl/tests/tls_wrapper.phpt

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,13 @@ if (OPENSSL_VERSION_NUMBER < 0x10101000) die("skip OpenSSL v1.1.1 required");
88
?>
99
--FILE--
1010
<?php
11+
$certFile = __DIR__ . DIRECTORY_SEPARATOR . 'tls_wrapper.pem.tmp';
12+
1113
$serverCode = <<<'CODE'
1214
$flags = STREAM_SERVER_BIND|STREAM_SERVER_LISTEN;
1315
$ctx = stream_context_create(['ssl' => [
14-
'local_cert' => __DIR__ . '/streams_crypto_method.pem',
16+
'local_cert' => '%s',
17+
'security_level' => 1,
1518
]]);
1619
1720
$server = stream_socket_server('tls://127.0.0.1:64321', $errno, $errstr, $flags, $ctx);
@@ -21,12 +24,14 @@ $serverCode = <<<'CODE'
2124
@stream_socket_accept($server, 3);
2225
}
2326
CODE;
27+
$serverCode = sprintf($serverCode, $certFile);
2428

2529
$clientCode = <<<'CODE'
2630
$flags = STREAM_CLIENT_CONNECT;
2731
$ctx = stream_context_create(['ssl' => [
2832
'verify_peer' => false,
2933
'verify_peer_name' => false,
34+
'security_level' => 1,
3035
]]);
3136
3237
phpt_wait();
@@ -50,9 +55,17 @@ $clientCode = <<<'CODE'
5055
var_dump($client);
5156
CODE;
5257

58+
include 'CertificateGenerator.inc';
59+
$certificateGenerator = new CertificateGenerator();
60+
$certificateGenerator->saveNewCertAsFileWithKey('tls_wrapper', $certFile);
61+
5362
include 'ServerClientTestCase.inc';
5463
ServerClientTestCase::getInstance()->run($clientCode, $serverCode);
5564
?>
65+
--CLEAN--
66+
<?php
67+
@unlink(__DIR__ . DIRECTORY_SEPARATOR . 'tls_wrapper.pem.tmp');
68+
?>
5669
--EXPECTF--
5770
resource(%d) of type (stream)
5871
bool(false)

ext/openssl/tests/tls_wrapper_with_tls_v1.3.phpt

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,13 @@ if (OPENSSL_VERSION_NUMBER < 0x10101000) die("skip OpenSSL v1.1.1 required");
88
?>
99
--FILE--
1010
<?php
11+
$certFile = __DIR__ . DIRECTORY_SEPARATOR . 'tls_wrapper_with_tls_v1.3.pem.tmp';
12+
1113
$serverCode = <<<'CODE'
1214
$flags = STREAM_SERVER_BIND|STREAM_SERVER_LISTEN;
1315
$ctx = stream_context_create(['ssl' => [
14-
'local_cert' => __DIR__ . '/streams_crypto_method.pem',
16+
'local_cert' => '%s',
17+
'security_level' => 1,
1518
]]);
1619
1720
$server = stream_socket_server('tls://127.0.0.1:64321', $errno, $errstr, $flags, $ctx);
@@ -21,12 +24,14 @@ $serverCode = <<<'CODE'
2124
@stream_socket_accept($server, 3);
2225
}
2326
CODE;
27+
$serverCode = sprintf($serverCode, $certFile);
2428

2529
$clientCode = <<<'CODE'
2630
$flags = STREAM_CLIENT_CONNECT;
2731
$ctx = stream_context_create(['ssl' => [
2832
'verify_peer' => false,
2933
'verify_peer_name' => false,
34+
'security_level' => 1,
3035
]]);
3136
3237
phpt_wait();
@@ -53,9 +58,17 @@ $clientCode = <<<'CODE'
5358
var_dump($client);
5459
CODE;
5560

61+
include 'CertificateGenerator.inc';
62+
$certificateGenerator = new CertificateGenerator();
63+
$certificateGenerator->saveNewCertAsFileWithKey('tls_wrapper_with_tls_v1.3', $certFile);
64+
5665
include 'ServerClientTestCase.inc';
5766
ServerClientTestCase::getInstance()->run($clientCode, $serverCode);
5867
?>
68+
--CLEAN--
69+
<?php
70+
@unlink(__DIR__ . DIRECTORY_SEPARATOR . 'tls_wrapper_with_tls_v1.3.pem.tmp');
71+
?>
5972
--EXPECTF--
6073
resource(%d) of type (stream)
6174
bool(false)

ext/openssl/tests/tlsv1.0_wrapper.phpt

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,13 @@ if (!function_exists("proc_open")) die("skip no proc_open");
77
?>
88
--FILE--
99
<?php
10+
$certFile = __DIR__ . DIRECTORY_SEPARATOR . 'tlsv1.0_wrapper.pem.tmp';
11+
1012
$serverCode = <<<'CODE'
1113
$flags = STREAM_SERVER_BIND|STREAM_SERVER_LISTEN;
1214
$ctx = stream_context_create(['ssl' => [
13-
'local_cert' => __DIR__ . '/streams_crypto_method.pem',
15+
'local_cert' => '%s',
16+
'security_level' => 1,
1417
]]);
1518
1619
$server = stream_socket_server('tlsv1.0://127.0.0.1:64321', $errno, $errstr, $flags, $ctx);
@@ -20,12 +23,14 @@ $serverCode = <<<'CODE'
2023
@stream_socket_accept($server, 3);
2124
}
2225
CODE;
26+
$serverCode = sprintf($serverCode, $certFile);
2327

2428
$clientCode = <<<'CODE'
2529
$flags = STREAM_CLIENT_CONNECT;
2630
$ctx = stream_context_create(['ssl' => [
2731
'verify_peer' => false,
2832
'verify_peer_name' => false,
33+
'security_level' => 1,
2934
]]);
3035
3136
phpt_wait();
@@ -40,9 +45,17 @@ $clientCode = <<<'CODE'
4045
var_dump($client);
4146
CODE;
4247

48+
include 'CertificateGenerator.inc';
49+
$certificateGenerator = new CertificateGenerator();
50+
$certificateGenerator->saveNewCertAsFileWithKey('tlsv1.0_wrapper', $certFile);
51+
4352
include 'ServerClientTestCase.inc';
4453
ServerClientTestCase::getInstance()->run($clientCode, $serverCode);
4554
?>
55+
--CLEAN--
56+
<?php
57+
@unlink(__DIR__ . DIRECTORY_SEPARATOR . 'tlsv1.0_wrapper.pem.tmp');
58+
?>
4659
--EXPECTF--
4760
resource(%d) of type (stream)
4861
bool(false)

ext/openssl/tests/tlsv1.1_wrapper.phpt

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,13 @@ if (!function_exists("proc_open")) die("skip no proc_open");
77
?>
88
--FILE--
99
<?php
10+
$certFile = __DIR__ . DIRECTORY_SEPARATOR . 'tlsv1.1_wrapper.pem.tmp';
11+
1012
$serverCode = <<<'CODE'
1113
$flags = STREAM_SERVER_BIND|STREAM_SERVER_LISTEN;
1214
$ctx = stream_context_create(['ssl' => [
13-
'local_cert' => __DIR__ . '/streams_crypto_method.pem',
15+
'local_cert' => '%s',
16+
'security_level' => 1,
1417
]]);
1518
1619
$server = stream_socket_server('tlsv1.1://127.0.0.1:64321', $errno, $errstr, $flags, $ctx);
@@ -20,12 +23,14 @@ $serverCode = <<<'CODE'
2023
@stream_socket_accept($server, 3);
2124
}
2225
CODE;
26+
$serverCode = sprintf($serverCode, $certFile);
2327

2428
$clientCode = <<<'CODE'
2529
$flags = STREAM_CLIENT_CONNECT;
2630
$ctx = stream_context_create(['ssl' => [
2731
'verify_peer' => false,
2832
'verify_peer_name' => false,
33+
'security_level' => 1,
2934
]]);
3035
3136
phpt_wait();
@@ -40,9 +45,17 @@ $clientCode = <<<'CODE'
4045
var_dump($client);
4146
CODE;
4247

48+
include 'CertificateGenerator.inc';
49+
$certificateGenerator = new CertificateGenerator();
50+
$certificateGenerator->saveNewCertAsFileWithKey('tlsv1.1_wrapper', $certFile);
51+
4352
include 'ServerClientTestCase.inc';
4453
ServerClientTestCase::getInstance()->run($clientCode, $serverCode);
4554
?>
55+
--CLEAN--
56+
<?php
57+
@unlink(__DIR__ . DIRECTORY_SEPARATOR . 'tlsv1.1_wrapper.pem.tmp');
58+
?>
4659
--EXPECTF--
4760
resource(%d) of type (stream)
4861
bool(false)

ext/openssl/tests/tlsv1.2_wrapper.phpt

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,12 @@ if (!function_exists("proc_open")) die("skip no proc_open");
77
?>
88
--FILE--
99
<?php
10+
$certFile = __DIR__ . DIRECTORY_SEPARATOR . 'tlsv1.2_wrapper.pem.tmp';
11+
1012
$serverCode = <<<'CODE'
1113
$flags = STREAM_SERVER_BIND|STREAM_SERVER_LISTEN;
1214
$ctx = stream_context_create(['ssl' => [
13-
'local_cert' => __DIR__ . '/streams_crypto_method.pem',
15+
'local_cert' => '%s',
1416
]]);
1517
1618
$server = stream_socket_server('tlsv1.2://127.0.0.1:64321', $errno, $errstr, $flags, $ctx);
@@ -20,6 +22,7 @@ $serverCode = <<<'CODE'
2022
@stream_socket_accept($server, 3);
2123
}
2224
CODE;
25+
$serverCode = sprintf($serverCode, $certFile);
2326

2427
$clientCode = <<<'CODE'
2528
$flags = STREAM_CLIENT_CONNECT;
@@ -40,9 +43,17 @@ $clientCode = <<<'CODE'
4043
var_dump($client);
4144
CODE;
4245

46+
include 'CertificateGenerator.inc';
47+
$certificateGenerator = new CertificateGenerator();
48+
$certificateGenerator->saveNewCertAsFileWithKey('tlsv1.2_wrapper', $certFile);
49+
4350
include 'ServerClientTestCase.inc';
4451
ServerClientTestCase::getInstance()->run($clientCode, $serverCode);
4552
?>
53+
--CLEAN--
54+
<?php
55+
@unlink(__DIR__ . DIRECTORY_SEPARATOR . 'tlsv1.2_wrapper.pem.tmp');
56+
?>
4657
--EXPECTF--
4758
resource(%d) of type (stream)
4859
bool(false)

ext/openssl/tests/tlsv1.3_wrapper.phpt

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,12 @@ if (OPENSSL_VERSION_NUMBER < 0x10101000) die("skip OpenSSL v1.1.1 required");
88
?>
99
--FILE--
1010
<?php
11+
$certFile = __DIR__ . DIRECTORY_SEPARATOR . 'tlsv1.3_wrapper.pem.tmp';
12+
1113
$serverCode = <<<'CODE'
1214
$flags = STREAM_SERVER_BIND|STREAM_SERVER_LISTEN;
1315
$ctx = stream_context_create(['ssl' => [
14-
'local_cert' => __DIR__ . '/streams_crypto_method.pem',
16+
'local_cert' => '%s',
1517
]]);
1618
1719
$server = stream_socket_server('tlsv1.3://127.0.0.1:64321', $errno, $errstr, $flags, $ctx);
@@ -21,6 +23,7 @@ $serverCode = <<<'CODE'
2123
@stream_socket_accept($server, 3);
2224
}
2325
CODE;
26+
$serverCode = sprintf($serverCode, $certFile);
2427

2528
$clientCode = <<<'CODE'
2629
$flags = STREAM_CLIENT_CONNECT;
@@ -41,9 +44,17 @@ $clientCode = <<<'CODE'
4144
var_dump($client);
4245
CODE;
4346

47+
include 'CertificateGenerator.inc';
48+
$certificateGenerator = new CertificateGenerator();
49+
$certificateGenerator->saveNewCertAsFileWithKey('tlsv1.3_wrapper', $certFile);
50+
4451
include 'ServerClientTestCase.inc';
4552
ServerClientTestCase::getInstance()->run($clientCode, $serverCode);
4653
?>
54+
--CLEAN--
55+
<?php
56+
@unlink(__DIR__ . DIRECTORY_SEPARATOR . 'tlsv1.3_wrapper.pem.tmp');
57+
?>
4758
--EXPECTF--
4859
resource(%d) of type (stream)
4960
bool(false)

0 commit comments

Comments
 (0)