stream_socket_enable_crypto

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

stream_socket_enable_cryptoLiga ou desliga criptografia em socket já conectado

Descrição

stream_socket_enable_crypto(
    resource$stream,
    bool$enable,
    ?int$crypto_method = null,
    ?resource$session_stream = null
): int|bool

Liga ou desliga criptografia no fluxo.

Assim que as configurações de criptografia estiverem estabelecidos, a criptografia pode ser ligada e desligada dinamicamente passando-se true ou false no parâmetro enable.

Parâmetros

stream

O recurso representando o fluxo.

enable

Ligar/desligar criptografia no fluxo.

crypto_method

Configura a criptografia no fluxo. Métodos válidos são:

  • STREAM_CRYPTO_METHOD_SSLv2_CLIENT
  • STREAM_CRYPTO_METHOD_SSLv3_CLIENT
  • STREAM_CRYPTO_METHOD_SSLv23_CLIENT
  • STREAM_CRYPTO_METHOD_ANY_CLIENT
  • STREAM_CRYPTO_METHOD_TLS_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_3_CLIENT (a partir do PHP 7.4.0)
  • STREAM_CRYPTO_METHOD_SSLv2_SERVER
  • STREAM_CRYPTO_METHOD_SSLv3_SERVER
  • STREAM_CRYPTO_METHOD_SSLv23_SERVER
  • STREAM_CRYPTO_METHOD_ANY_SERVER
  • STREAM_CRYPTO_METHOD_TLS_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_0_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_1_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_2_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_3_SERVER (a partir do PHP 7.4.0)

Se omitido, a opção de contexto crypto_method no contexto SSL do fluxo será usado.

session_stream

Alimenta o fluxo com as configurações de session_stream.

Valor Retornado

Retorna true em caso de sucesso, false se a negociação falhar ou 0 se não houver dados suficientes levando a uma nova tentativa (apenas para sockets em modo de não-bloqueio).

Registro de Alterações

VersãoDescrição
8.0.0session_stream agora pode ser nulo.

Exemplos

Exemplo #1 Exemplo de stream_socket_enable_crypto()

<?php
$fp
= stream_socket_client("tcp://myproto.example.com:31337", $errno, $errstr, 30);
if (!
$fp) {
die(
"Não foi possível conectar: $errstr ($errno)");
}


stream_socket_enable_crypto($fp, true, STREAM_CRYPTO_METHOD_SSLv23_CLIENT);
fwrite($fp, "USER god\r\n");
fwrite($fp, "PASS secret\r\n");


stream_socket_enable_crypto($fp, false);

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

fclose($fp);
?>

O exemplo acima produzirá algo semelhante a:

To Top