summaryrefslogtreecommitdiff
path: root/ext/openssl/tests/stream_verify_peer_name_001.phpt
diff options
context:
space:
mode:
authorAlexander Kurilo <alex@kurilo.me>2018-12-02 17:08:01 +0300
committerJakub Zelenka <bukka@php.net>2019-01-10 20:09:42 +0000
commit1fab01be5bef046ff6dcbf843cc3db66faacda12 (patch)
treeedd939240295bcb63cba1c5a98912f45c450b608 /ext/openssl/tests/stream_verify_peer_name_001.phpt
parent6b4cdbaade1b077e8f0eceecb0e07921fed00aff (diff)
downloadphp-git-1fab01be5bef046ff6dcbf843cc3db66faacda12.tar.gz
Generate certs for openssl tests on the fly
The idea is to create an easy way to provide a certificate that never expires. In order to make it cross-platform, PHP is used rather than openssl CLI app. Using openssl to generate certificates for tests that test openssl might be not the best idea but pros seem to outweight cons that this "recursice dependency" adds
Diffstat (limited to 'ext/openssl/tests/stream_verify_peer_name_001.phpt')
-rw-r--r--ext/openssl/tests/stream_verify_peer_name_001.phpt17
1 files changed, 15 insertions, 2 deletions
diff --git a/ext/openssl/tests/stream_verify_peer_name_001.phpt b/ext/openssl/tests/stream_verify_peer_name_001.phpt
index e39994b12f..4863a8cbf4 100644
--- a/ext/openssl/tests/stream_verify_peer_name_001.phpt
+++ b/ext/openssl/tests/stream_verify_peer_name_001.phpt
@@ -7,11 +7,13 @@ if (!function_exists("proc_open")) die("skip no proc_open");
?>
--FILE--
<?php
+$certFile = __DIR__ . DIRECTORY_SEPARATOR . 'stream_verify_peer_name_001.pem.tmp';
+
$serverCode = <<<'CODE'
$serverUri = "ssl://127.0.0.1:64321";
$serverFlags = STREAM_SERVER_BIND | STREAM_SERVER_LISTEN;
$serverCtx = stream_context_create(['ssl' => [
- 'local_cert' => __DIR__ . '/bug54992.pem'
+ 'local_cert' => '%s'
]]);
$server = stream_socket_server($serverUri, $errno, $errstr, $serverFlags, $serverCtx);
@@ -19,13 +21,15 @@ $serverCode = <<<'CODE'
@stream_socket_accept($server, 1);
CODE;
+$serverCode = sprintf($serverCode, $certFile);
+$peerName = 'stream_verify_peer_name_001';
$clientCode = <<<'CODE'
$serverUri = "ssl://127.0.0.1:64321";
$clientFlags = STREAM_CLIENT_CONNECT;
$clientCtx = stream_context_create(['ssl' => [
'verify_peer' => false,
- 'peer_name' => 'bug54992.local'
+ 'peer_name' => '%s'
]]);
phpt_wait();
@@ -33,9 +37,18 @@ $clientCode = <<<'CODE'
var_dump($client);
CODE;
+$clientCode = sprintf($clientCode, $peerName);
+
+include 'CertificateGenerator.inc';
+$certificateGenerator = new CertificateGenerator();
+$certificateGenerator->saveNewCertAsFileWithKey($peerName, $certFile);
include 'ServerClientTestCase.inc';
ServerClientTestCase::getInstance()->run($clientCode, $serverCode);
?>
+--CLEAN--
+<?php
+@unlink(__DIR__ . DIRECTORY_SEPARATOR . 'stream_verify_peer_name_001.pem.tmp');
+?>
--EXPECTF--
resource(%d) of type (stream)