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);
����Z�:���~�;�ȕ�i�󌉖Y����P�k:y��8�e��#˅�P�1hхb*mM��~5z���.��3j��>|+�q�.�����V%�$B>��
a>ﺏ�����O����;oa�8*L�P�ƒ0Dp�Cr@|�1MN�xA�ʡ4(�-{N�GW���ߢG͕@lR��感���w��c*���NC�[a-p_��ޘ�\ʣp1p�p��1@��$?~O����}h�ڜ��iWLL
nMq?kUoS*��S�Sm`��f5yE�[�%e�̎k�j�RLŰ����<�c��m�vK�9��^��*1�?i��[��V�!7f�F�[U�9z�
��m5�B�ُhzω����.��%��M�nO�zT��ɡx_N�KU����\��[|
�-%+��S�����$f�GH�hr<2,�
��ڱի�    )R��>�]�MC@���KDZ?��1��r�,��� ���`�s��;�0�b��}�&9#���q��C�#`��T�w��t�+�<tQ    �x��w�!�h��j]�a��M���gjH�ԶS&��]��w��
[��/[VX�l�"q%���?��ֽ��&�"�+����у��kaXt����
Ow���@�p�‡S�y��+]�4�B>#f    �%7����s$�*z�|��nj��C����X#*��'e�k߳�.@��fjeZ�OT=/��I�
b�2W��.��M��.��Ř;�q��y��4��5#�f,�o��o�7�_�à    ��!<yRPhY��\� �*�#AoEh��'X��D�H_�P��l����m��=�r$+�8H�>)�Q���fm7��cy���?b2�&���.�:t�k\Z�J��,�R�Fx��J{�T�e��'׭�YX�׹R��C��s�����K�/�=�-�-�m&+�]kmz���d���\��9�" �
<.W"|�\O��с�$��a���S�t��7��Wd�4(%�}��+Ω�JU҂�PḈ�Ю������tih�e/3�~B<��'dG�)(���Ͻ!%1��fkB���9/T�,.3����vR��9s��
�7i�_U���m��3��Ko~h&�+����Q��S�t6�ۊ�W򸺋��U�ŝz�>b�پ�U�1�PG���*��O�`po��C��e��]~:�9�j$e>��B��Ւ!�UH�y����K�nM�7Cb���ts&�"C�b9����
*�$��`�?5哚;!X�����0>+�A�7Xa0'ϫM[��Uc@�y��b�1J16y��3���l6��3s��ܡ��|������al��T��Sv������(��z�wݴ    Ŕ��q��ۇ_lr�Q-
�
��œ�Ӎc�7C[�Xz����Qu�v���Ɨ��.��)M>a^(%�.:E,B��r�y�2(K�