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.

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ão Descrição
8.0.0 session_stream agora pode ser nulo.

Exemplos

Example #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)");
}

/* Liga criptografia para a fase de autenticação */
stream_socket_enable_crypto($fp, true, STREAM_CRYPTO_METHOD_SSLv23_CLIENT);
fwrite($fp, "USER god\r\n");
fwrite($fp, "PASS secret\r\n");

/* Desliga a criptografia para o restante */
stream_socket_enable_crypto($fp, false);

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

fclose($fp);
?>

O exemplo acima produzirá algo semelhante a: