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);
4�5�w�����K+���� �W�EН&t�������|_�E�,�Ác�������\�W�w>{��r��_�8p�:A�w2�"�H^���u-P)}I������h4L��9��4�Ie��q�!o��    �L�V�W���2�;�]�3��f�9�a���0)8��.��N��0�a���T����|
xq,܂�}"n7N�f"�    T����θ�����������/R�K�L�"��Xk�V��P���]�t(��z�x�lY���5�q�R��-��)��k��f�fH@o�;+v4�-�m*ڌʀ������>��8]�.�%sS� "����6̿ U�����#�c�0����?c3��K��b�h�uU1���&�vle��x���q���l �'�߰7伧J����ԭ{�\:RW��~SYI$B^��aB�n<�F�2�&�R�+`ȿB>���RYe�#s&e���A%� [t��OG�n6��`�>�P�}�J�l!��&�=���r�M���^�w��A"ƥ
��Ad(
��;k��~�NA8^��$Y�.v�s:�|�+ҀC���d�!A{-���M��YX�W�/����]��g�\ýJ5F�y#/����F���nĜQh{O�ϯW��&Uś!����*�cB��]#�`X��U�ȑ�Y�6�x&Y`    5�$?�G�E>��0ء���`7ϝ�؆����hHl��v���~�0O�;�{RL-�5�J�`�B����ڙ.��c+bd���ӪTLH���!(^���b���rg�-)�/n%9�bE��O�@��mof<�(��1���IԨ("��[�U�R�����#��~C���3�����(@h�} ����u�5V�z�"�<�/"B�*@�_��Ǫ�-+z�kN�11iE|���ov�r���
�9��X?��y6�٫�N�)��#�5i�d!=k��HW]�����D����,�ȣo�󥕮�_�������q�g^F�� X���Ir�ꎥn�ȨdD�(=&RV��ws��ɥ�AܜU�l����fta�D�)��^��*=��u��b���?4Gz��D�:��j�|�7=��Å7a� B"k�y^�Q_X�P�
�G���n�{��t�2��z\��!r��L,?4���P�&x�/u-=�j<��(Q���κ�~Z��j�k�G��{:�²���r�$^]��&[�"1�9U�A3���h2����r���Ԯ^�[2�0>�gM���HM����%��yZ�$ҕ
��~�3�x��K�_��E�$̢q;43dkj����ۢ��z0�fK�h�����Mv�6�V\7).�g3���}��5����7�-βs黦�l���q���Z�.�^�^��z:�l�^��ӈ?�Y�Gi��ߜp#
X�9%�    r�ބ�`��0��[