ID:               36445
 Comment by:       eddi at ai000 dot de
 Reported By:      Jacek at veo dot pl
 Status:           Assigned
 Bug Type:         Sockets related
 Operating System: SuSE Linux 9.1
 PHP Version:      5.1.2
 Assigned To:      wez
 New Comment:

#!/opt/php/513/bin/php
<?php
error_reporting(2047);
$c=array('tls'=>array(  'verify_peer'           =>false,
                        'allow_self_signed'     =>true,
                        'cafile'                
=>'/opt/php/testscripts/newkey.pem',
                        'capath'                =>'/opt/php/testscripts/',
                        'local_cert'            
=>'/opt/php/testscripts/newkey.pem',
                        'passphrase'            =>'smtp',
                        'CN_match'              =>'ai000.de'
                        )
        );
$tls=stream_context_create($c);
$c=stream_socket_server('tcp://127.0.0.1:1100',$er,$es,STREAM_SERVER_BIND|STREAM_SERVER_LISTEN,$tls);
while(1){
        if([EMAIL PROTECTED]($c)){
                echo "Verbindung\n".openssl_error_string()."\n\n";
                @fwrite($s,"220 ESMTP\r\n");
                echo @fgets($s);
                @fwrite($s,"250 STARTTLS\r\n");
                echo @fgets($s);
                @fwrite($s,"220 ESMTP\r\n");
                
var_dump(stream_socket_enable_crypto($s,true,STREAM_CRYPTO_METHOD_TLS_SERVER));
                echo @fgets($s);
        }
}
?>


This is my test code. The negotation is endless among server script and
Mozilla-Thunderbird.
When I start the script below, my browser tell me: there are no
conforming algorithms available.

$c=stream_socket_server('ssl://127.0.0.1:1100',$er,$es,STREAM_SERVER_BIND|STREAM_SERVER_LISTEN,$tls);

The Discription ("stream_socket_enable_crypto ( resource stream, bool
enable [, int crypto_type [, resource session_stream]] )") is obscure.
What is "resource session_stream"? This word is singly used there and
no records describe it.


Previous Comments:
------------------------------------------------------------------------

[2006-02-22 11:13:23] Jacek at veo dot pl

The same problem.

------------------------------------------------------------------------

[2006-02-22 11:06:28] [EMAIL PROTECTED]

Wez, plz take a look at this reproduce code:
<?php
$ssl = stream_socket_server('tcp://127.0.0.1:4445', $errnum, $errstr);
stream_socket_enable_crypto($ssl, TRUE,
STREAM_CRYPTO_METHOD_SSLv23_SERVER);
?>

------------------------------------------------------------------------

[2006-02-18 18:20:45] Jacek at veo dot pl

Description:
------------
I am creating a SMTP server based on PHP. I have a problem with TLS
encryption. I tried to enable crypto after stream_socket_accept - it
failed.

./configure --with-apxs2 --with-config-file-path --with-libxml-dir
--with-zlib --with-zlib-dir --enable-bcmath --with-bz2
--enable-calendar --with-curl --enable-dba --with-inifile
--with-flatfile --enable-dbase --enable-exif --enable-filepro
--enable-ftp --with-openssl --with-openssl-dir --with-gd
--with-jpeg-dir --with-png-dir --without-xpm-dir --with-freetype-dir
--enable-gd-native-ttf --with-imap --with-imap-ssl --enable-mbstring
--with-mysql --with-mysqli --with-pdo-mysql --enable-soap
--enable-sockets --enable-sqlite-utf8 --with-xmlreader
--enable-memory-limit --with-iconv --with-ncurses

Reproduce code:
---------------
<?php
$context = stream_context_create();
stream_context_set_option($context, 'tls', 'local_cert',
'/server.misc');

echo 1;
$ssl = stream_socket_server('tls://0.0.0.0:4445', $errnum, $errstr,
STREAM_SERVER_BIND | STREAM_SERVER_LISTEN, $context);
echo 2;
stream_socket_enable_crypto($ssl, TRUE,
STREAM_CRYPTO_METHOD_TLS_SERVER);
echo 3;
fclose($ssl);
?>

Expected result:
----------------
123

Actual result:
--------------
12

And script is running. When I try to connect - I can, but script don't
"go ahead".


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=36445&edit=1

Reply via email to