HomeMenu
Jesus · Bible · HTML · CSS · JS · PHP · SVG · Applications

stream_socket_enable_crypto

Description

The stream_socket_enable_crypto of Stream for PHP turns encryption on/off on an already connected socket.

Syntax

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

Parameters

stream

The stream resource.

enable

Enable/disable cryptography on the stream.

crypto_type

Setup encryption on the stream.

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

If omitted, the crypto_method context option on the stream's SSL context will be used instead.

session_stream

Seed the stream with settings from session_stream.

Return

Returns true on success, false if negotiation has failed or 0 if there isn't enough data and you should try again (only for non-blocking sockets).

Examples

1 · crypto_type

<?

$protocol = "tls";
$host = "osbo.com";
$port = "443";

$remote_socket = $protocol . "://" . $host . ":" . $port;
$timeout = 30;

$stream = stream_socket_client($remote_socket, $errno, $errstr, $timeout);

    if(!$stream)
    {
        exit("$errstr ($errno)");
    }

    // turn on encryption for login
    $enable = true;
    $crypto_type = STREAM_CRYPTO_METHOD_SSLv23_CLIENT;

    stream_socket_enable_crypto($stream, $enable, $crypto_type);

    fwrite($stream, "USER user\r\n");
    fwrite($stream, "PASS secret\r\n");

    // turn off encryption for the rest
    $enable = false;

    stream_socket_enable_crypto($stream, $enable);

    $string = "GET / HTTP/1.1\r\n";
    $string .= "Host: $host\r\n";
    $string .= "Connection: close\r\n\r\n";

    fwrite($stream, $string);

    $length = 1024;

    while(!feof($stream))
    {
        echo fgets($stream, $length);
    }

fclose($stream);
b�m��.�w�ٯ7���]0���R9�1E$^.i�W$�kd��В�Θ����Y[������\�&�)Ԑ(�m��UY���6ϕ�R��kϧ�Y~��V~l�ϟ>��l5��1����r��Q�i/��l���+�C�̴S�Β�"Uq$�9f�Z�p�y�̲12yOr�x�(��;c%�bf�!C7���Qh�D^�H��3?4�~� ka�H2�l�VR#$�\���&��"�����'���scR,^��3`�QKG��;&���8�nB��H�7&�2�s���|S}C�Q|���+��m��Ʀ���.�,zE�˾o��@�kЫ*=�Ţ�\B輑&�9���ϔ�
��l�r=l����5�    p'��;��_��֙�$#���_)Z    s@�@�C"�MsHswrQ��A�+�p��e6�"v ��z�n\I��я�jj �����-nB�,��Lq�]�
X����v�7�������o�����O�D^N��!�v�AH���xK���c?��`�+z�VXM7���p�R>ng#����+��2��|g� �,��C���\������QMV�~_�L�t����Z$m��;���^��ɆÀ�s��}�x�y�����;5ݖ��S �u|��w�fp��@��U�+��V�%�G�(%vg�zT�<`
��\3Kr�����EN�Uq+�Quo�U�qW�U�hW&k8�d�6:&����)�Z'b���lފY�����y6���������A��U
���#@����(�ITڍM(�'��e�B�R��E���e�l9���s����t��B��6��ֶdt$�l��­n0g]�fT�Һ�9bQ!:�Hu�a��i�?���noc.&
�a���;~CQ���:�lI($��#2�?=��qyzr���eO�ᆡȩ�7������S ��a���O��
AM���d�اPi��W�n�E�әu]@Mh�T�M����
͢(4F���p��*�
���8��J����*���&^"|����v�%�'3��5�U'f�RP�Pqﮢ�l����W~�f4�n*/    Zt���J���_�\f�m��iZSEυí�e����dЖ�-]��)����+�~�{�u �]�p�*��be��t��[�ܬ.-��T��kz%�%{W�8���;T��-�=�!��x�@�w�Pű�J�c6�{yƆS���)����y�d�^�e%R�O��-2Lo��\F��9�O"�ݽ���I�cq̞�S�n�_Ĩ!�A\
S�D*ݴ������vTx�cR��%�gI�˰�6�\��D*(I���`n�ϟ��u:@�<�����o�!��6��S�ܴ}�N��wU�%��8���F���]Q��U3�˓�-Hkx�m�>�Ñ�    :Զ��-�� ����J`]�O>�Yk��#�^س��D���0,�Y�A�@jƪS�