Annotation of embedaddon/php/ext/openssl/tests/bug54992.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Bug #54992: Stream not closed and error not returned when SSL CN_match fails
! 3: --SKIPIF--
! 4: <?php
! 5: if (!extension_loaded("openssl")) die("skip");
! 6: if (!function_exists('pcntl_fork')) die("skip no fork");
! 7: --FILE--
! 8: <?php
! 9: $context = stream_context_create();
! 10:
! 11: stream_context_set_option($context, 'ssl', 'local_cert', __DIR__ . "/bug54992.pem");
! 12: stream_context_set_option($context, 'ssl', 'allow_self_signed', true);
! 13: $server = stream_socket_server('ssl://127.0.0.1:64321', $errno, $errstr,
! 14: STREAM_SERVER_BIND|STREAM_SERVER_LISTEN, $context);
! 15:
! 16:
! 17: $pid = pcntl_fork();
! 18: if ($pid == -1) {
! 19: die('could not fork');
! 20: } else if ($pid) {
! 21: $contextC = stream_context_create(
! 22: array(
! 23: 'ssl' => array(
! 24: 'verify_peer' => true,
! 25: 'cafile' => __DIR__ . '/bug54992-ca.pem',
! 26: 'CN_match' => 'buga_buga',
! 27: )
! 28: )
! 29: );
! 30: var_dump(stream_socket_client("ssl://127.0.0.1:64321", $errno, $errstr, 1,
! 31: STREAM_CLIENT_CONNECT, $contextC));
! 32: } else {
! 33: @pcntl_wait($status);
! 34: @stream_socket_accept($server, 1);
! 35: }
! 36: --EXPECTF--
! 37: Warning: stream_socket_client(): Peer certificate CN=`bug54992.local' did not match expected CN=`buga_buga' in %s on line %d
! 38:
! 39: Warning: stream_socket_client(): Failed to enable crypto in %s on line %d
! 40:
! 41: Warning: stream_socket_client(): unable to connect to ssl://127.0.0.1:64321 (Unknown error) in %s on line %d
! 42: bool(false)
! 43:
! 44:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>