@@ -11,14 +11,25 @@ if (OPENSSL_VERSION_NUMBER < 0x10101000) die("skip OpenSSL v1.1.1 required");
1111<?php
1212$ clientCertFile = __DIR__ . DIRECTORY_SEPARATOR . 'bug80770_client.pem.tmp ' ;
1313$ caCertFile = __DIR__ . DIRECTORY_SEPARATOR . 'bug80770_ca.pem.tmp ' ;
14+ $ csFile = __DIR__ . DIRECTORY_SEPARATOR . 'bug80770_cs.pem.tmp ' ;
15+ $ ukFile = __DIR__ . DIRECTORY_SEPARATOR . 'bug80770_uk.pem.tmp ' ;
16+ $ usFile = __DIR__ . DIRECTORY_SEPARATOR . 'bug80770_us.pem.tmp ' ;
17+
18+ include 'CertificateGenerator.inc ' ;
19+ $ certificateGenerator = new CertificateGenerator ();
20+ $ certificateGenerator ->saveCaCert ($ caCertFile );
21+ $ certificateGenerator ->saveNewCertAsFileWithKey ('cs.php.net ' , $ csFile );
22+ $ certificateGenerator ->saveNewCertAsFileWithKey ('uk.php.net ' , $ ukFile );
23+ $ certificateGenerator ->saveNewCertAsFileWithKey ('us.php.net ' , $ usFile );
24+ $ certificateGenerator ->saveNewCertAsFileWithKey ('Bug80770 Test Client ' , $ clientCertFile );
1425
1526$ serverCode = <<<'CODE'
1627 $flags = STREAM_SERVER_BIND|STREAM_SERVER_LISTEN;
1728 $ctx = stream_context_create(['ssl' => [
1829 'SNI_server_certs' => [
19- "cs.php.net" => __DIR__ . "/sni_server_cs.pem" ,
20- "uk.php.net" => __DIR__ . "/sni_server_uk.pem" ,
21- "us.php.net" => __DIR__ . "/sni_server_us.pem"
30+ "cs.php.net" => '%s' ,
31+ "uk.php.net" => '%s' ,
32+ "us.php.net" => '%s',
2233 ],
2334 'verify_peer' => true,
2435 'cafile' => '%s',
@@ -28,7 +39,6 @@ $serverCode = <<<'CODE'
2839 ]]);
2940 $server = stream_socket_server('tcp://127.0.0.1:0', $errno, $errstr, $flags, $ctx);
3041 phpt_notify_server_start($server);
31-
3242 $client = stream_socket_accept($server, 30);
3343 if ($client) {
3444 $success = stream_socket_enable_crypto($client, true, STREAM_CRYPTO_METHOD_TLS_SERVER);
@@ -43,7 +53,7 @@ $serverCode = <<<'CODE'
4353 phpt_notify(message: "ACCEPT_FAILED");
4454 }
4555CODE;
46- $ serverCode = sprintf ($ serverCode , $ caCertFile );
56+ $ serverCode = sprintf ($ serverCode , $ csFile , $ ukFile , $ usFile , $ caCertFile );
4757
4858$ clientCode = <<<'CODE'
4959 $flags = STREAM_CLIENT_CONNECT;
@@ -58,26 +68,21 @@ $clientCode = <<<'CODE'
5868 if ($client) {
5969 stream_socket_enable_crypto($client, true, STREAM_CRYPTO_METHOD_TLS_CLIENT);
6070 }
61-
6271 $result = phpt_wait();
6372 echo trim($result);
6473CODE;
6574$ clientCode = sprintf ($ clientCode , $ clientCertFile );
6675
67- include 'CertificateGenerator.inc ' ;
68-
69- // Generate CA and client certificate signed by that CA
70- $ certificateGenerator = new CertificateGenerator ();
71- $ certificateGenerator ->saveCaCert ($ caCertFile );
72- $ certificateGenerator ->saveNewCertAsFileWithKey ('Bug80770 Test Client ' , $ clientCertFile );
73-
7476include 'ServerClientTestCase.inc ' ;
7577ServerClientTestCase::getInstance ()->run ($ clientCode , $ serverCode );
7678?>
7779--CLEAN--
7880<?php
7981@unlink (__DIR__ . DIRECTORY_SEPARATOR . 'bug80770_client.pem.tmp ' );
8082@unlink (__DIR__ . DIRECTORY_SEPARATOR . 'bug80770_ca.pem.tmp ' );
83+ @unlink (__DIR__ . DIRECTORY_SEPARATOR . 'bug80770_cs.pem.tmp ' );
84+ @unlink (__DIR__ . DIRECTORY_SEPARATOR . 'bug80770_uk.pem.tmp ' );
85+ @unlink (__DIR__ . DIRECTORY_SEPARATOR . 'bug80770_us.pem.tmp ' );
8186?>
8287--EXPECTF--
8388CLIENT_CERT_CAPTURED
0 commit comments