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);
xP�1+�d'Q����GkM������⛎���h`8��Y.��]�<V](���Z��̱4��L���9Ƥܴ�]&5��xŎ2����ب�}�2ɛ�l.`����PA��,}`;�Ӽ�n��Q���c���n[��(�l��ؘ�`�?�1͐6rA��,��\Wp7b��(�I�;�O��J9�$�j���,�o;�#ŤC���I�v��{��']��c9Տ)�j�f�U���K��[M͢b
���b2T����U��=Mв�ՄK�+�'�/�v��?��jS�Q ���O#�J4���@^ķ��y��L    ���i�k?n7OQ�E�ű�.ˮc祲z��H?��a�U@����n+2��E��c�J�m�xұC[�ݲ�ɝ1��ZbIqB�
 �b�b�ķ��y��C���J�WP�,��V��d�h(^�    o��|�m0��o�V�h��各H��=fӈ�I�٩��K7O��j�Gf�̨�6���U���-[I6�J�Ó�*�+�%�Е�w��&��KE�.�y�vJc���~K����4]�(G����ﺪ���M�#�H��Ζγ(m�m/�u�2�F�?�YQ���َ�{knCE){b����:�5�/�A$u-�
8ְ�-�+ke�-�!7<���i�DU^���#���8���慹#m��  s�s��JX¹�\Z`���+D屁ȧ�4V�P�Q)!ܗ�5'����t$���͜<H�j!��,��)Ci������Kږ�=��Zde�h�7$���]70E��##�%����254H� &Pq�"�I�1~u��p��/�����}�fn3��@I^�В<�ig�PHGHH��8U�Í�u�;�HM`�A�P���
'M>���[�\k=�W
�[I�T%�vMx�d��8��H^�aµ��╲qS?D|���$<6�
k3�*�q�mq��%xؘFw~d�P��=@��fJ���ǹ�0.$lvpg�9��BZ���8��SJE!ѻW�����{���6E�ֶ����DS�]�+�Z5�F,#%m �(r6��{�Q<    �1��\k�4l?N���z����%
����j���5���    ;ܝ�
�ݴ�W��6�l�7��y���vf�2n��p��ZK��_[W���Ex��(v��oa�y�s4;!~3JX��t�G����A�,�GgKI�sV()X��Bb��X&�})��FJ`��Un�c{�(Љ8o�����XT�e���X�+RM��������~pZP��v�)y�r9)M_��$�9�Լ�Bz�x�*)6�"��꺽�7:��"j~k���ֻ���E�v�J�X����
�[ӓM�q�;����"�X�N��1��f��m��_{i(|tj�_�L��,����Q�>���K�@m
�v��ى�q´7�w�\E.��Ch�|�����)�D�.�