Lines Matching refs:stream

96 …name)               (PHP_STREAM_CONTEXT(stream) && (val = php_stream_context_get_option(PHP_STREAM…
113 static size_t php_openssl_sockop_io(int read, php_stream *stream, char *buf, size_t count);
166 static int is_http_stream_talking_to_iis(php_stream *stream) /* {{{ */ in is_http_stream_talking_to_iis() argument
168 …if (Z_TYPE(stream->wrapperdata) == IS_ARRAY && stream->wrapper && strcasecmp(stream->wrapper->wops… in is_http_stream_talking_to_iis()
175 ZEND_HASH_FOREACH_VAL(Z_ARRVAL(stream->wrapperdata), tmp) { in is_http_stream_talking_to_iis()
187 static int handle_ssl_error(php_stream *stream, int nr_bytes, zend_bool is_init) /* {{{ */ in handle_ssl_error() argument
189 php_openssl_netstream_data_t *sslsock = (php_openssl_netstream_data_t*)stream->abstract; in handle_ssl_error()
211 if (!is_http_stream_talking_to_iis(stream) && ERR_get_error() != 0) { in handle_ssl_error()
216 stream->eof = 1; in handle_ssl_error()
273 php_stream *stream; in verify_callback() local
288 stream = (php_stream*)SSL_get_ex_data(ssl, php_openssl_get_ssl_stream_data_index()); in verify_callback()
480 static int apply_peer_verification_policy(SSL *ssl, X509 *peer, php_stream *stream) /* {{{ */ in apply_peer_verification_policy() argument
489 php_openssl_netstream_data_t *sslsock = (php_openssl_netstream_data_t*)stream->abstract; in apply_peer_verification_policy()
574 php_stream *stream = (php_stream *)data; in passwd_callback() local
598 php_stream *stream; in win_cert_verify_callback() local
604 stream = (php_stream*)arg; in win_cert_verify_callback()
605 sslsock = (php_openssl_netstream_data_t*)stream->abstract; in win_cert_verify_callback()
757 php_stream *stream; in load_stream_cafile() local
765 stream = php_stream_open_wrapper(cafile, "rb", 0, NULL); in load_stream_cafile()
767 if (stream == NULL) { in load_stream_cafile()
770 } else if (stream->wrapper->is_url) { in load_stream_cafile()
771 php_stream_close(stream); in load_stream_cafile()
777 line = php_stream_get_line(stream, NULL, 0, &line_len); in load_stream_cafile()
795 line = php_stream_get_line(stream, NULL, 0, &line_len); in load_stream_cafile()
821 php_stream_close(stream); in load_stream_cafile()
835 static int enable_peer_verification(SSL_CTX *ctx, php_stream *stream) /* {{{ */ in enable_peer_verification() argument
840 php_openssl_netstream_data_t *sslsock = (php_openssl_netstream_data_t*)stream->abstract; in enable_peer_verification()
872 SSL_CTX_set_cert_verify_callback(ctx, win_cert_verify_callback, (void *)stream); in enable_peer_verification()
889 static void disable_peer_verification(SSL_CTX *ctx, php_stream *stream) /* {{{ */ in disable_peer_verification() argument
895 static int set_local_cert(SSL_CTX *ctx, php_stream *stream) /* {{{ */ in set_local_cert() argument
1048 php_stream *stream; in limit_handshake_reneg() local
1053 stream = php_openssl_get_stream_from_ssl_handle(ssl); in limit_handshake_reneg()
1054 sslsock = (php_openssl_netstream_data_t*)stream->abstract; in limit_handshake_reneg()
1079 if (PHP_STREAM_CONTEXT(stream) && (val = php_stream_context_get_option(PHP_STREAM_CONTEXT(stream), in limit_handshake_reneg()
1084 php_stream_to_zval(stream, &param); in limit_handshake_reneg()
1087 stream->flags |= PHP_STREAM_FLAG_NO_FCLOSE; in limit_handshake_reneg()
1091 stream->flags ^= PHP_STREAM_FLAG_NO_FCLOSE; in limit_handshake_reneg()
1116 static void init_server_reneg_limit(php_stream *stream, php_openssl_netstream_data_t *sslsock) /* {… in init_server_reneg_limit() argument
1122 if (PHP_STREAM_CONTEXT(stream) && in init_server_reneg_limit()
1123 NULL != (val = php_stream_context_get_option(PHP_STREAM_CONTEXT(stream), in init_server_reneg_limit()
1135 if (PHP_STREAM_CONTEXT(stream) && in init_server_reneg_limit()
1136 NULL != (val = php_stream_context_get_option(PHP_STREAM_CONTEXT(stream), in init_server_reneg_limit()
1144 php_stream_is_persistent(stream) in init_server_reneg_limit()
1182 static int set_server_dh_param(php_stream * stream, SSL_CTX *ctx) /* {{{ */ in set_server_dh_param() argument
1188 zdhpath = php_stream_context_get_option(PHP_STREAM_CONTEXT(stream), "ssl", "dh_param"); in set_server_dh_param()
1229 static int set_server_ecdh_curve(php_stream *stream, SSL_CTX *ctx) /* {{{ */ in set_server_ecdh_curve() argument
1235 zvcurve = php_stream_context_get_option(PHP_STREAM_CONTEXT(stream), "ssl", "ecdh_curve"); in set_server_ecdh_curve()
1266 static int set_server_specific_opts(php_stream *stream, SSL_CTX *ctx) /* {{{ */ in set_server_specific_opts() argument
1272 if (set_server_ecdh_curve(stream, ctx) == FAILURE) { in set_server_specific_opts()
1281 if (php_stream_context_get_option(PHP_STREAM_CONTEXT(stream), "ssl", "rsa_key_size") != NULL) { in set_server_specific_opts()
1286 set_server_dh_param(stream, ctx); in set_server_specific_opts()
1287 zv = php_stream_context_get_option(PHP_STREAM_CONTEXT(stream), "ssl", "single_dh_use"); in set_server_specific_opts()
1293 zv = php_stream_context_get_option(PHP_STREAM_CONTEXT(stream), "ssl", "honor_cipher_order"); in set_server_specific_opts()
1307 php_stream *stream; in server_sni_callback() local
1318 stream = (php_stream*)SSL_get_ex_data(ssl_handle, php_openssl_get_ssl_stream_data_index()); in server_sni_callback()
1319 sslsock = (php_openssl_netstream_data_t*)stream->abstract; in server_sni_callback()
1336 static int enable_server_sni(php_stream *stream, php_openssl_netstream_data_t *sslsock) in enable_server_sni() argument
1372 sizeof(php_openssl_sni_cert_t), 0, php_stream_is_persistent(stream) in enable_server_sni()
1408 sslsock->sni_certs[i].name = pestrdup(ZSTR_VAL(key), php_stream_is_persistent(stream)); in enable_server_sni()
1426 static void enable_client_sni(php_stream *stream, php_openssl_netstream_data_t *sslsock) /* {{{ */ in enable_client_sni() argument
1506 int php_openssl_setup_crypto(php_stream *stream, in php_openssl_setup_crypto() argument
1578 disable_peer_verification(sslsock->ctx, stream); in php_openssl_setup_crypto()
1579 } else if (FAILURE == enable_peer_verification(sslsock->ctx, stream)) { in php_openssl_setup_crypto()
1585 SSL_CTX_set_default_passwd_cb_userdata(sslsock->ctx, stream); in php_openssl_setup_crypto()
1617 … (php_openssl_alpn_ctx *) pemalloc(sizeof(php_openssl_alpn_ctx), php_stream_is_persistent(stream)); in php_openssl_setup_crypto()
1618 …>data = (unsigned char *) pestrndup((const char*)alpn, alpn_len, php_stream_is_persistent(stream)); in php_openssl_setup_crypto()
1631 if (FAILURE == set_local_cert(sslsock->ctx, stream)) { in php_openssl_setup_crypto()
1638 PHP_STREAM_CONTEXT(stream) && in php_openssl_setup_crypto()
1639 FAILURE == set_server_specific_opts(stream, sslsock->ctx) in php_openssl_setup_crypto()
1652 pefree(sslsock->alpn_ctx->data, php_stream_is_persistent(stream)); in php_openssl_setup_crypto()
1653 pefree(sslsock->alpn_ctx, php_stream_is_persistent(stream)); in php_openssl_setup_crypto()
1659 SSL_set_ex_data(sslsock->ssl_handle, php_openssl_get_ssl_stream_data_index(), stream); in php_openssl_setup_crypto()
1663 handle_ssl_error(stream, 0, 1); in php_openssl_setup_crypto()
1668 if (!sslsock->is_client && enable_server_sni(stream, sslsock) == FAILURE) { in php_openssl_setup_crypto()
1675 init_server_reneg_limit(stream, sslsock); in php_openssl_setup_crypto()
1741 static int capture_peer_certs(php_stream *stream, php_openssl_netstream_data_t *sslsock, X509 *peer… in capture_peer_certs() argument
1746 if (NULL != (val = php_stream_context_get_option(PHP_STREAM_CONTEXT(stream), in capture_peer_certs()
1751 php_stream_context_set_option(PHP_STREAM_CONTEXT(stream), "ssl", "peer_certificate", &zcert); in capture_peer_certs()
1756 if (NULL != (val = php_stream_context_get_option(PHP_STREAM_CONTEXT(stream), in capture_peer_certs()
1779 php_stream_context_set_option(PHP_STREAM_CONTEXT(stream), "ssl", "peer_certificate_chain", &arr); in capture_peer_certs()
1787 static int php_openssl_enable_crypto(php_stream *stream, in php_openssl_enable_crypto() argument
1805 enable_client_sni(stream, sslsock); in php_openssl_enable_crypto()
1861 retry = handle_ssl_error(stream, n, blocked); in php_openssl_enable_crypto()
1885 if (peer_cert && PHP_STREAM_CONTEXT(stream)) { in php_openssl_enable_crypto()
1886 cert_captured = capture_peer_certs(stream, sslsock, peer_cert); in php_openssl_enable_crypto()
1889 if (FAILURE == apply_peer_verification_policy(sslsock->ssl_handle, peer_cert, stream)) { in php_openssl_enable_crypto()
1895 if (PHP_STREAM_CONTEXT(stream)) { in php_openssl_enable_crypto()
1897 if (NULL != (val = php_stream_context_get_option(PHP_STREAM_CONTEXT(stream), in php_openssl_enable_crypto()
1908 php_stream_context_set_option(PHP_STREAM_CONTEXT(stream), "ssl", "session_meta", &meta_arr); in php_openssl_enable_crypto()
1919 if (peer_cert && PHP_STREAM_CONTEXT(stream)) { in php_openssl_enable_crypto()
1920 cert_captured = capture_peer_certs(stream, sslsock, peer_cert); in php_openssl_enable_crypto()
1939 static size_t php_openssl_sockop_read(php_stream *stream, char *buf, size_t count) /* {{{ */ in php_openssl_sockop_read() argument
1941 return php_openssl_sockop_io( 1, stream, buf, count ); in php_openssl_sockop_read()
1945 static size_t php_openssl_sockop_write(php_stream *stream, const char *buf, size_t count) /* {{{ */ in php_openssl_sockop_write() argument
1947 return php_openssl_sockop_io( 0, stream, (char*)buf, count ); in php_openssl_sockop_write()
1958 static size_t php_openssl_sockop_io(int read, php_stream *stream, char *buf, size_t count) /* {{{ */ in php_openssl_sockop_io() argument
1960 php_openssl_netstream_data_t *sslsock = (php_openssl_netstream_data_t*)stream->abstract; in php_openssl_sockop_io()
2020 php_stream_xport_shutdown(stream, (stream_shutdown_t)SHUT_RDWR); in php_openssl_sockop_io()
2022 stream->eof = 1; in php_openssl_sockop_io()
2039 retry = handle_ssl_error(stream, nr_bytes, 0); in php_openssl_sockop_io()
2051 stream->eof = (retry == 0 && errno != EAGAIN && !SSL_pending(sslsock->ssl_handle)); in php_openssl_sockop_io()
2097 php_stream_notify_progress_increment(PHP_STREAM_CONTEXT(stream), nr_bytes, 0); in php_openssl_sockop_io()
2113 nr_bytes = php_stream_socket_ops.read(stream, buf, count); in php_openssl_sockop_io()
2115 nr_bytes = php_stream_socket_ops.write(stream, buf, count); in php_openssl_sockop_io()
2149 static int php_openssl_sockop_close(php_stream *stream, int close_handle) /* {{{ */ in php_openssl_sockop_close() argument
2151 php_openssl_netstream_data_t *sslsock = (php_openssl_netstream_data_t*)stream->abstract; in php_openssl_sockop_close()
2172 pefree(sslsock->alpn_ctx->data, php_stream_is_persistent(stream)); in php_openssl_sockop_close()
2173 pefree(sslsock->alpn_ctx, php_stream_is_persistent(stream)); in php_openssl_sockop_close()
2204 pefree(sslsock->sni_certs[i].name, php_stream_is_persistent(stream)); in php_openssl_sockop_close()
2207 pefree(sslsock->sni_certs, php_stream_is_persistent(stream)); in php_openssl_sockop_close()
2212 pefree(sslsock->url_name, php_stream_is_persistent(stream)); in php_openssl_sockop_close()
2216 pefree(sslsock->reneg, php_stream_is_persistent(stream)); in php_openssl_sockop_close()
2219 pefree(sslsock, php_stream_is_persistent(stream)); in php_openssl_sockop_close()
2225 static int php_openssl_sockop_flush(php_stream *stream) /* {{{ */ in php_openssl_sockop_flush() argument
2227 return php_stream_socket_ops.flush(stream); in php_openssl_sockop_flush()
2231 static int php_openssl_sockop_stat(php_stream *stream, php_stream_statbuf *ssb) /* {{{ */ in php_openssl_sockop_stat() argument
2233 return php_stream_socket_ops.stat(stream, ssb); in php_openssl_sockop_stat()
2237 static inline int php_openssl_tcp_sockop_accept(php_stream *stream, php_openssl_netstream_data_t *s… in php_openssl_tcp_sockop_accept() argument
2268 xparam->outputs.client = php_stream_alloc_rel(stream->ops, clisockdata, NULL, "r+"); in php_openssl_tcp_sockop_accept()
2270 xparam->outputs.client->ctx = stream->ctx; in php_openssl_tcp_sockop_accept()
2271 if (stream->ctx) { in php_openssl_tcp_sockop_accept()
2272 GC_REFCOUNT(stream->ctx)++; in php_openssl_tcp_sockop_accept()
2300 static int php_openssl_sockop_set_option(php_stream *stream, int option, int value, void *ptrparam) in php_openssl_sockop_set_option() argument
2302 php_openssl_netstream_data_t *sslsock = (php_openssl_netstream_data_t*)stream->abstract; in php_openssl_sockop_set_option()
2356 add_assoc_bool((zval *)ptrparam, "eof", stream->eof); in php_openssl_sockop_set_option()
2422 cparam->outputs.returncode = php_openssl_setup_crypto(stream, sslsock, cparam); in php_openssl_sockop_set_option()
2426 cparam->outputs.returncode = php_openssl_enable_crypto(stream, sslsock, cparam); in php_openssl_sockop_set_option()
2443 php_stream_socket_ops.set_option(stream, option, value, ptrparam); in php_openssl_sockop_set_option()
2450 if (php_stream_xport_crypto_setup(stream, sslsock->method, NULL) < 0 || in php_openssl_sockop_set_option()
2451 php_stream_xport_crypto_enable(stream, 1) < 0) { in php_openssl_sockop_set_option()
2461 xparam->outputs.returncode = php_openssl_tcp_sockop_accept(stream, sslsock, xparam STREAMS_CC); in php_openssl_sockop_set_option()
2472 return php_stream_socket_ops.set_option(stream, option, value, ptrparam); in php_openssl_sockop_set_option()
2475 static int php_openssl_sockop_cast(php_stream *stream, int castas, void **ret) in php_openssl_sockop_cast() argument
2477 php_openssl_netstream_data_t *sslsock = (php_openssl_netstream_data_t*)stream->abstract; in php_openssl_sockop_cast()
2485 *ret = fdopen(sslsock->s.socket, stream->mode); in php_openssl_sockop_cast()
2496 if (stream->writepos == stream->readpos in php_openssl_sockop_cast()
2499 php_stream_fill_read_buffer(stream, pending < stream->chunk_size in php_openssl_sockop_cast()
2501 : stream->chunk_size); in php_openssl_sockop_cast()
2586 php_stream *stream = NULL; in php_openssl_ssl_socket_factory() local
2612 stream = php_stream_alloc_rel(&php_openssl_socket_ops, sslsock, persistent_id, "r+"); in php_openssl_ssl_socket_factory()
2614 if (stream == NULL) { in php_openssl_ssl_socket_factory()
2628 php_stream_close(stream); in php_openssl_ssl_socket_factory()
2637 php_stream_close(stream); in php_openssl_ssl_socket_factory()
2652 php_stream_close(stream); in php_openssl_ssl_socket_factory()
2661 php_stream_close(stream); in php_openssl_ssl_socket_factory()
2668 return stream; in php_openssl_ssl_socket_factory()