downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

stream_socket_get_name> <stream_socket_client
Last updated: Sun, 16 Aug 2009

view this page in

stream_socket_enable_crypto

(PHP 5 >= 5.1.0)

stream_socket_enable_cryptoActive ou non le chiffrement, pour une socket déjà connectée

Description

mixed stream_socket_enable_crypto ( resource $stream , bool $enable [, int $crypto_type [, resource $session_stream ]] )

Active ou non le chiffrement, pour une socket déjà connectée.

Une fois les paramètres de chiffrement définis, le chiffrement peut être activé et désactivé dynamiquement en passant TRUE ou FALSE dans le paramètre enable .

Liste de paramètres

stream

La ressource de flux.

enable

Active ou non le chiffrement sur le flux.

crypto_type

Configure le chiffrement sur le flux. Les méthodes valides sont

  • STREAM_CRYPTO_METHOD_SSLv2_CLIENT
  • STREAM_CRYPTO_METHOD_SSLv3_CLIENT
  • STREAM_CRYPTO_METHOD_SSLv23_CLIENT
  • STREAM_CRYPTO_METHOD_TLS_CLIENT
  • STREAM_CRYPTO_METHOD_SSLv2_SERVER
  • STREAM_CRYPTO_METHOD_SSLv3_SERVER
  • STREAM_CRYPTO_METHOD_SSLv23_SERVER
  • STREAM_CRYPTO_METHOD_TLS_SERVER

session_stream

Initialise le flux avec la configuration issue du paramètre session_stream .

Valeurs de retour

Retourne TRUE en cas de succès, FALSE si la négociation a échoué ou 0 s'il n'y a pas assez de données et que vous devez essayer encore (uniquement pour les sockets non-bloquantes).

Exemples

Exemple #1 Exemple avec stream_socket_enable_crypto()

<?php
$fp 
stream_socket_client("tcp://myproto.example.com:31337"$errno$errstr30);
if (!
$fp) {
    die(
"Impossible de se connecter : $errstr ($errno)");
}

/* Activation du chiffrement durant l'identification */
stream_socket_enable_crypto($fptrueSTREAM_CRYPTO_METHOD_SSLv23_CLIENT);
fwrite($fp"USER god\r\n");
fwrite($fp"PASS secret\r\n");

/* Désactivation du chiffrement pour le reste */
stream_socket_enable_crypto($fpfalse);

while (
$motd fgets($fp)) {
    echo 
$motd;
}

fclose($fp);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :



add a note add a note User Contributed Notes
stream_socket_enable_crypto
mark at kinoko dot fr
06-Nov-2007 07:00
Just to avoid letting you search everywhere why your code doesn't work when using this function to enable crypto as a server, and when using TLS, you have to put the certificate in the "ssl" context, even if you start a TLS, SSLv3, etc.. server.

I had some troubles because of that...
tigger (AT) tiggerswelt d0t net
30-May-2007 10:15
As already mentioned above:

stream_socket_enable_crypto is likely to fail/return zero if the socket is in non-blocking mode.

You may either wait some seconds until all neccessary data has arrived or switch temporary to blocking mode:

<?PHP

  stream_set_blocking
($fd, true);
 
stream_socket_enable_crypto ($fd, true, STREAM_CRYPTO_METHOD_TLS_CLIENT);
 
stream_set_blocking ($fd, false);

?>

This works very fine for me ;-)

stream_socket_get_name> <stream_socket_client
Last updated: Sun, 16 Aug 2009
 
 
show source | credits | sitemap | contact | advertising | mirror sites