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);
?>
위의 예는 다음과 유사한 결과를 출력합니다.