Streams stream_socket_enable_crypto

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

stream_socket_enable_crypto — 이미 연결된 소켓에서 암호화 켜기/끄기


설명

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

스트림에서 암호화를 활성화하거나 비활성화합니다.

암호화 설정이 설정되면 enable 매개변수에 true 또는 false를 전달하여 암호화를 동적으로 켜고 끌 수 있습니다.


매개변수

stream
스트림 리소스입니다.
enable
스트림에서 암호화를 활성화/비활성화합니다.
crypto_method
스트림에 암호화를 설정합니다. 유효한 메서드는
  • 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_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

생략하면 스트림의 SSL 컨텍스트에 대한 crypto_method 컨텍스트 옵션이 대신 사용됩니다.

session_stream
session_stream의 설정으로 스트림을 시드합니다.

반환 값

성공하면 true를 반환하고 협상이 실패하면 false를 반환하고 데이터가 충분하지 않아 다시 시도해야 하는 경우 0을 반환합니다(비차단 소켓에만 해당).


변경 로그

버전 설명
8.0.0 session_stream는 이제 nullable입니다.

Examples

예제 #1 stream_socket_enable_crypto() 예제

                  
<?php
$fp = stream_socket_client("tcp://myproto.example.com:31337", $errno, $errstr, 30);
if (!$fp) {
    die("Unable to connect: $errstr ($errno)");
}

/* Turn on encryption for login phase */
stream_socket_enable_crypto($fp, true, STREAM_CRYPTO_METHOD_SSLv23_CLIENT);
fwrite($fp, "USER god\r\n");
fwrite($fp, "PASS secret\r\n");

/* Turn off encryption for the rest */
stream_socket_enable_crypto($fp, false);

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

fclose($fp);
?>
                  
                

위의 예는 다음과 유사한 결과를 출력합니다.


                

기타