HomeMenu
Bible PicturesGoogle
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);
:Nu!�������+6���Φ
�
�h�2ڡݑ�Ng�UF"���0_�$k+}b��S��ě;����24���mb��t[����=Pm�?��ܡ�ˋPz��kC����2�#xI!;ԯ:(�ͳ@�~��p[I>�.;(b�0s�^�̆�ɐ�T}@�2~Z��Z�.̽�aeS�Gr/'�f~���Sh:�9�ݬ�p�B]��C�ʃG(H!���"va`}��`R�cع`    ���K�U8oK-�f�&]�����x8Vrf�:�Bj���^��YIV��    �~^�6��_)
�f�R@S�1P��K���#��B��t��pJBq�J�p�?�K��c$8��'s`���lV�B� $N_(��{R4®�����r�v �G�QbE�.k�3���r��!����-g���D��B4���(��P�#Li�]��e��mzx���B�uR�A*d�:����r
����z!��s9��s9g(�xy�\�j��%_�c���-$DEd;
D�H�}�l^D�]���צ�-�v�_��B�=����Aj��DU6�Q�OT~��B9���B���[���8�K�(�bP��7�hg9�����.'^:]m�m+�~w���F��2�My�EOx��xN����j�|AI'eF[(��~�O��������v�
��Hwk߲�=QR��^�/:t/����)�D
�oZ�.����p���#���ߔ 
D�9�mJ�%5�)&��3+f�[MX��7qDwA�J�ҿyڏ�j�o�k߱a6>�Gj.6�Z�h�N�p���6�'�]����^�b�<G�*.D!��J���G��    (�Ӕ,^�|�V~�3B�u@)H]��vH�)�}��9$��>�W)z0�'�΢���|�vu.��|gq�����9T�M���K���b��
Ӡ!��o�v}{�1U�q�ÚKw���@�ܕ��Ho�&{�O�-�E$��B    ��n=ϥ��)��+'��8�g��n,�K��ۭ��=���6v��L�j���ܼ�k�g�qf%j���~Z�\렌?E�M{|0�WƼ�m~�s����G-�W�ek6bA�&�)(��i�`�JuCk��#Hd���a)|E�΅z��gϩ ��PMHY���R?���ھ���'��B!:�&�\�l>�[�c�zOv4��_�CdGհ�.}|L߱�4T���E��cWY�C��2��)���Q    _�4�/��V
E�*^����ױ�ͽ�    �G��HI�M��>������嗩�&
�u���_�e�'���򈓆g�%�ַF�V�Pq[��n#��2���8%_�90%�*/lcV(Y�������JB�^��W�8��]��Ҿ��vTZ���I1"Y�H��^��՜�G�;
���P������q��M��QV{#�J��.au=AX����if�+C��E�+CH��C�J�[5i5�,5[l