mirror of
https://github.com/php/php-src.git
synced 2024-10-01 23:06:11 +00:00
32484e3f5f
SSLv3 is going away. Debian8 already ships with an openssl with no SSLv3 support which was causing these tests to fail.
54 lines
1.6 KiB
PHP
54 lines
1.6 KiB
PHP
--TEST--
|
|
Specific crypto method for ssl:// transports.
|
|
--SKIPIF--
|
|
<?php
|
|
if (!extension_loaded("openssl")) die("skip openssl not loaded");
|
|
if (!function_exists("proc_open")) die("skip no proc_open");
|
|
if (OPENSSL_VERSION_NUMBER < 0x10001001) die("skip OpenSSLv1.0.1 required");
|
|
--FILE--
|
|
<?php
|
|
$serverCode = <<<'CODE'
|
|
$serverUri = "ssl://127.0.0.1:64321";
|
|
$serverFlags = STREAM_SERVER_BIND | STREAM_SERVER_LISTEN;
|
|
$serverCtx = stream_context_create(['ssl' => [
|
|
'local_cert' => __DIR__ . '/streams_crypto_method.pem',
|
|
]]);
|
|
|
|
$server = stream_socket_server($serverUri, $errno, $errstr, $serverFlags, $serverCtx);
|
|
phpt_notify();
|
|
|
|
$client = @stream_socket_accept($server);
|
|
if ($client) {
|
|
$in = '';
|
|
while (!preg_match('/\r?\n\r?\n/', $in)) {
|
|
$in .= fread($client, 2048);
|
|
}
|
|
$response = "HTTP/1.0 200 OK\r\n"
|
|
. "Content-Type: text/plain\r\n"
|
|
. "Content-Length: 12\r\n"
|
|
. "Connection: close\r\n"
|
|
. "\r\n"
|
|
. "Hello World!";
|
|
fwrite($client, $response);
|
|
fclose($client);
|
|
}
|
|
CODE;
|
|
|
|
$clientCode = <<<'CODE'
|
|
$serverUri = "https://127.0.0.1:64321/";
|
|
$clientFlags = STREAM_CLIENT_CONNECT;
|
|
$clientCtx = stream_context_create(['ssl' => [
|
|
'crypto_method' => STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT,
|
|
'verify_peer' => false,
|
|
'verify_peer_name' => false
|
|
]]);
|
|
|
|
phpt_wait();
|
|
echo file_get_contents($serverUri, false, $clientCtx);
|
|
CODE;
|
|
|
|
include 'ServerClientTestCase.inc';
|
|
ServerClientTestCase::getInstance()->run($clientCode, $serverCode);
|
|
--EXPECTF--
|
|
Hello World!
|