(PHP 5 >= 5.1.0, PHP 7, PHP 8)
stream_socket_enable_crypto — Activa o desactiva el cifrado para un socket ya conectado
$stream,$enable,$crypto_method = null,$session_stream = nullActiva o desactiva el cifrado para un socket ya conectado.
Una vez definidos los parámetros de cifrado, este puede ser activado
y desactivado dinámicamente pasando true o false en el argumento
enable.
streamEl recurso de flujo.
enableActiva o desactiva el cifrado en el flujo.
crypto_methodConfigura el cifrado en el flujo. Los métodos válidos son
STREAM_CRYPTO_METHOD_SSLv2_CLIENTSTREAM_CRYPTO_METHOD_SSLv3_CLIENTSTREAM_CRYPTO_METHOD_SSLv23_CLIENTSTREAM_CRYPTO_METHOD_ANY_CLIENTSTREAM_CRYPTO_METHOD_TLS_CLIENTSTREAM_CRYPTO_METHOD_TLSv1_0_CLIENTSTREAM_CRYPTO_METHOD_TLSv1_1_CLIENTSTREAM_CRYPTO_METHOD_TLSv1_2_CLIENTSTREAM_CRYPTO_METHOD_TLSv1_3_CLIENT (disponible a partir de PHP 7.4.0)STREAM_CRYPTO_METHOD_SSLv2_SERVERSTREAM_CRYPTO_METHOD_SSLv3_SERVERSTREAM_CRYPTO_METHOD_SSLv23_SERVERSTREAM_CRYPTO_METHOD_ANY_SERVERSTREAM_CRYPTO_METHOD_TLS_SERVERSTREAM_CRYPTO_METHOD_TLSv1_0_SERVERSTREAM_CRYPTO_METHOD_TLSv1_1_SERVERSTREAM_CRYPTO_METHOD_TLSv1_2_SERVERSTREAM_CRYPTO_METHOD_TLSv1_3_SERVER (disponible a partir de PHP 7.4.0)
Si se omite, la opción de contexto crypto_method
en el contexto SSL del flujo será utilizada en su lugar.
session_stream
Inicializa el flujo con la configuración proveniente del argumento
session_stream.
Retorna true en caso de éxito, false si la negociación falló o
0 si no hay suficientes datos y se debe intentar
nuevamente (únicamente para sockets no bloqueantes).
| Versión | Descripción |
|---|---|
| 8.0.0 |
session_stream ahora es nullable.
|
Ejemplo #1 Ejemplo con stream_socket_enable_crypto()
<?php
$fp = stream_socket_client("tcp://myproto.example.com:31337", $errno, $errstr, 30);
if (!$fp) {
die("Imposible conectar: $errstr ($errno)");
}
/* Activación del cifrado durante la identificación */
stream_socket_enable_crypto($fp, true, STREAM_CRYPTO_METHOD_SSLv23_CLIENT);
fwrite($fp, "USER god\r\n");
fwrite($fp, "PASS secret\r\n");
/* Desactivación del cifrado para el resto */
stream_socket_enable_crypto($fp, false);
while ($motd = fgets($fp)) {
echo $motd;
}
fclose($fp);
?>Resultado del ejemplo anterior es similar a :