§
    ‹ŸjL  ã                   ó‚   — U d Z ddlmZmZmZ ddlmZ ddlmZ d„ Z	d„ Z
d„ Zd	„ Z eej        ¦  «        Zeed
<   g d¢ZdS )z miscellaneous zmq_utils wrappingé    )ÚInterruptedSystemCallÚ	_check_rcÚ_check_versioné   )Úffi)Úlibc                 ó¸   — t          dd¦  «         t          | t          ¦  «        r|                      d¦  «        } t	          t          j        | ¦  «        ¦  «        S )zxCheck for zmq capability by name (e.g. 'ipc', 'curve')

    .. versionadded:: libzmq-4.1
    .. versionadded:: 14.1
    )é   r   zzmq.hasÚutf8)r   Ú
isinstanceÚstrÚencodeÚboolÚCÚzmq_has)Ú
capabilitys    úc/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/zmq/backend/cffi/utils.pyÚhasr      sQ   € õ �6˜9Ñ%Ô%Ð%Ý�*�cÑ"Ô"ð /Ø×&Ò& vÑ.Ô.ˆ
Ý•”	˜*Ñ%Ô%Ñ&Ô&Ð&ó    c                  ó
  — t          j        d¦  «        } t          j        d¦  «        }t          j        | |¦  «        }t	          |¦  «         t          j        | ¦  «        dd…         t          j        |¦  «        dd…         fS )u  generate a Z85 key pair for use with zmq.CURVE security

    Requires libzmq (â‰¥ 4.0) to have been built with CURVE support.

    Returns
    -------
    (public, secret) : two bytestrings
        The public and private key pair as 40 byte z85-encoded bytestrings.
    úchar[64]Né(   )r   Únewr   Úzmq_curve_keypairr   Úbuffer)ÚpublicÚprivateÚrcs      r   Úcurve_keypairr      sp   € õ ŒW�ZÑ Ô €FÝŒg�jÑ!Ô!€GÝ	
Ô	˜V WÑ	-Ô	-€BÝˆb�M„M€MÝŒ:�fÑÔ˜c˜r˜cÔ"¥C¤J¨wÑ$7Ô$7¸¸¸Ô$<Ð<Ð<r   c                 ó  — t          | t          ¦  «        r|                      d¦  «        } t          dd¦  «         t	          j        d¦  «        }t          j        || ¦  «        }t          |¦  «         t	          j	        |¦  «        dd…         S )un  Compute the public key corresponding to a private key for use
    with zmq.CURVE security

    Requires libzmq (â‰¥ 4.2) to have been built with CURVE support.

    Parameters
    ----------
    private
        The private key as a 40 byte z85-encoded bytestring
    Returns
    -------
    bytestring
        The public key as a 40 byte z85-encoded bytestring.
    r   )r
   é   Úcurve_publicr   Nr   )
r   r   r   r   r   r   r   Úzmq_curve_publicr   r   )r   r   r   s      r   r"   r"   )   s|   € õ �'�3ÑÔð )Ø—.’. Ñ(Ô(ˆÝ�6˜>Ñ*Ô*Ð*ÝŒW�ZÑ Ô €FÝ	
Ô	˜F GÑ	,Ô	,€BÝˆb�M„M€MÝŒ:�fÑÔ˜c˜r˜cÔ"Ð"r   c                 óT   — 	  | |Ž }	 t          |¦  «         n# t          $ r Y Œ#w xY w|S )z/make a call, retrying if interrupted with EINTR)r   r   )ÚfÚargsÚkwargsr   s       r   Ú_retry_sys_callr(   A   sP   € ðØˆQ�ˆXˆð	Ý�b‰MŒMˆMð øõ %ð 	ð 	ð 	ØˆHð	øøøð €Is   ˆ ˜
%¤%ÚPYZMQ_DRAFT_API)r   r   r"   r)   N)Ú__doc__Ú	zmq.errorr   r   r   Ú_cffir   r   r   r   r   r"   r(   r   r)   Ú__annotations__Ú__all__© r   r   ú<module>r0      s½   ðØ &Ð &Ð &ð
 GÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ Fà Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ð	'ð 	'ð 	'ð=ð =ð =ð"#ð #ð #ð0
ð 
ð 
ð ˜˜QÔ.Ñ/Ô/€�Ð /Ð /Ñ /à
EÐ
EÐ
E€€€r   