(PHP 5 >= 5.1.0)
stream_socket_enable_crypto — Active ou non le chiffrement, pour un socket déjà connecté
$stream
, bool $enable
[, int $crypto_type
[, resource $session_stream
]] )Active ou non le chiffrement, pour un socket déjà connecté.
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
.
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
.
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-bloquants).
Exemple #1 Exemple avec stream_socket_enable_crypto()
<?php
$fp = stream_socket_client("tcp://myproto.example.com:31337", $errno, $errstr, 30);
if (!$fp) {
die("Impossible de se connecter : $errstr ($errno)");
}
/* Activation du chiffrement durant l'identification */
stream_socket_enable_crypto($fp, true, STREAM_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($fp, false);
while ($motd = fgets($fp)) {
echo $motd;
}
fclose($fp);
?>
L'exemple ci-dessus va afficher quelque chose de similaire à :