From e82878a200b0e29da468c10e64beceaf6eb844fd Mon Sep 17 00:00:00 2001 From: Daniel Lowrey Date: Thu, 5 Mar 2015 22:00:38 -0700 Subject: [PATCH] Update test to run locally instead of remotely --- ext/openssl/tests/bug68920.phpt | 62 +++++++++++++++++++++++---------- 1 file changed, 43 insertions(+), 19 deletions(-) diff --git a/ext/openssl/tests/bug68920.phpt b/ext/openssl/tests/bug68920.phpt index 72e3f6c8f9..52a103f641 100644 --- a/ext/openssl/tests/bug68920.phpt +++ b/ext/openssl/tests/bug68920.phpt @@ -1,29 +1,53 @@ --TEST-- Bug #68920: peer_fingerprint input checks should be strict --SKIPIF-- - ['verify_peer'=> false, 'peer_fingerprint' => true]]); -$sock = stream_socket_client("ssl://php.net:443", $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $ctx); -var_dump($sock); - -$ctx = stream_context_create(['ssl' => ['verify_peer'=> false, 'peer_fingerprint' => null]]); -$sock = stream_socket_client("ssl://php.net:443", $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $ctx); -var_dump($sock); - -$ctx = stream_context_create(['ssl' => ['verify_peer'=> false, 'peer_fingerprint' => []]]); -$sock = stream_socket_client("ssl://php.net:443", $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $ctx); -var_dump($sock); - -$ctx = stream_context_create(['ssl' => ['verify_peer'=> false, 'peer_fingerprint' => ['foo']]]); -$sock = stream_socket_client("ssl://php.net:443", $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $ctx); -var_dump($sock); +$serverCode = <<<'CODE' + $serverUri = "ssl://127.0.0.1:64321"; + $serverFlags = STREAM_SERVER_BIND | STREAM_SERVER_LISTEN; + $serverCtx = stream_context_create(['ssl' => [ + 'local_cert' => __DIR__ . '/san-cert.pem', + ]]); + + $server = stream_socket_server($serverUri, $errno, $errstr, $serverFlags, $serverCtx); + phpt_notify(); + + stream_socket_accept($server, 30); + stream_socket_accept($server, 30); + stream_socket_accept($server, 30); + stream_socket_accept($server, 30); +CODE; + +$clientCode = <<<'CODE' + $serverUri = "ssl://127.0.0.1:64321"; + $clientFlags = STREAM_CLIENT_CONNECT; + + phpt_wait(); + + $ctx = stream_context_create(['ssl' => ['verify_peer'=> false, 'peer_fingerprint' => true]]); + $sock = stream_socket_client($serverUri, $errno, $errstr, 30, $clientFlags, $ctx); + var_dump($sock); + + $ctx = stream_context_create(['ssl' => ['verify_peer'=> false, 'peer_fingerprint' => null]]); + $sock = stream_socket_client($serverUri, $errno, $errstr, 30, $clientFlags, $ctx); + var_dump($sock); + + $ctx = stream_context_create(['ssl' => ['verify_peer'=> false, 'peer_fingerprint' => []]]); + $sock = stream_socket_client($serverUri, $errno, $errstr, 30, $clientFlags, $ctx); + var_dump($sock); + + $ctx = stream_context_create(['ssl' => ['verify_peer'=> false, 'peer_fingerprint' => ['foo']]]); + $sock = stream_socket_client($serverUri, $errno, $errstr, 30, $clientFlags, $ctx); + var_dump($sock); +CODE; + +include 'ServerClientTestCase.inc'; +ServerClientTestCase::getInstance()->run($clientCode, $serverCode); --EXPECTF-- - Warning: stream_socket_client(): Expected peer fingerprint must be a string or an array in %s on line %d Warning: stream_socket_client(): Failed to enable crypto in %s on line %d -- 2.50.1