if TLS is specified it will use TLS 1.0. This is a similar issue to this bug report: https://bugs.php.net/bug.php?id=65329

Essentially, specifying TLS will use the STREAM_CRYPTO_METHOD_TLS_CLIENT option when the OpenSSL library encryption methods are called. Specifying the crypto method STREAM_CRYPTO_METHOD_SSLv23_CLIENT will negotiate TLS 1.1 and 1.2 if OpenSSL is recent enough. The latest versions of the OpenSSL extensions do give specifications for crypto methods for TLS 1.1 and 1.2:

STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT
STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT

Given that the OpenSSL extension has been brought up to date with the new crypto methods, the SOAP extension could be patched to include a specification for TLS 1.1 and 1.2 as well.

On Jan 9, 2014, at 5:35 AM, dargolf <notifications@github.com> wrote:

> In ext/soap/php_http.c:
> 
> > @@ -189,7 +190,41 @@ static php_stream* http_connect(zval* this_ptr, php_url *phpurl, int use_ssl, ph
> >  	old_error_reporting = EG(error_reporting);
> >  	EG(error_reporting) &= ~(E_WARNING|E_NOTICE|E_USER_WARNING|E_USER_NOTICE);
> >  
> > -	namelen = spprintf(&name, 0, "%s://%s:%d", (use_ssl && !*use_proxy)? "ssl" : "tcp", host, port);
> > +	/* Changed ternary operator to an if/else so that additional comparisons can be done on the ssl_method property */
> > +	if (use_ssl && !*use_proxy) {
> > +		if (zend_hash_find(Z_OBJPROP_P(this_ptr), "_ssl_method", sizeof("_ssl_method"), (void **) &tmp) == SUCCESS &&
> > +			Z_TYPE_PP(tmp) == IS_LONG) {
> > +			/* uses contants declared in soap.c to determine ssl uri protocol */
> > +			switch (Z_LVAL_PP(tmp)) {
> > +				case SOAP_SSL_METHOD_TLS:
> > +					protocol = "tls";
> Which TLS version is this?
> 
> —
> Reply to this email directly or view it on GitHub.
>