+
    ™h©jE  ã                   ó(  a € R t0 t ^ RIHt ^ RIHt ^ RIHtHt ^ RI	H
t
 . ROt ]P                  ! 4       t] ^ k ]P                  ! 4       t] ^k ]P                   ! 4       t] ^k ]P$                  ! 4       t] ^k R R ltR R ltR	 R
 ltR R ltR# )é    )ÚTuple)Ú
exceptions)ÚffiÚlib)Úensurec                óF   € V ^8„  d   QhR\         \        \        3,          /# )é   Úreturn)r   Úbytes)Úformats   "ÚR/var/www/html/bestweb/venv/lib/python3.14/site-packages/nacl/bindings/crypto_kx.pyÚ__annotate__r   '   s   € ÷ ñ œ5¤¬ Õ.ñ ó    c                 ó`  € \         P                  ! R\        4      p \         P                  ! R\        4      p\        P
                  ! W4      p\        V^ 8H  R\        P                  R7       \         P                  ! V \        4      R,          \         P                  ! V\        4      R,          3# )zœ
Generate a key pair.
This is a duplicate crypto_box_keypair, but
is included for api consistency.
:return: (public_key, secret_key)
:rtype: (bytes, bytes)
úunsigned char[]úKey generation failed.©ÚraisingºNNN)
r   ÚnewÚcrypto_kx_PUBLIC_KEY_BYTESÚcrypto_kx_SECRET_KEY_BYTESr   Úcrypto_kx_keypairr   ÚexcÚCryptoErrorÚbuffer)Ú
public_keyÚ
secret_keyÚress      r   r   r   '   s�   € ô —’Ð*Ô,FÓG€JÜ—’Ð*Ô,FÓG€JÜ
×
Ò
 
Ó
7€CÜ
ˆ3�!‰8Ð-´s·±ÕGô 	�
Š
�:Ô9Ó:¸1Õ=Ü�
Š
�:Ô9Ó:¸1Õ=ðð r   c                óR   € V ^8„  d   QhR\         R\        \         \         3,          /# )r	   Úseedr
   ©r   r   )r   s   "r   r   r   :   s#   € ÷ ñ ¤ð ¬5´¼°Õ+>ñ r   c                ó  € \         P                  ! R\        4      p\         P                  ! R\        4      p\	        \        V \        4      ;'       d    \        V 4      \        8H  RP                  \        4      \        P                  R7       \        P                  ! WV 4      p\	        V^ 8H  R\        P                  R7       \         P                  ! V\        4      R,          \         P                  ! V\        4      R,          3# )aD  
Generate a key pair with a given seed.
This is functionally the same as crypto_box_seed_keypair, however
it uses the blake2b hash primitive instead of sha512.
It is included mainly for api consistency when using crypto_kx.
:param seed: random seed
:type seed: bytes
:return: (public_key, secret_key)
:rtype: (bytes, bytes)
r   z*Seed must be a {} byte long bytes sequencer   r   r   )r   r   r   r   r   Ú
isinstancer   ÚlenÚcrypto_kx_SEED_BYTESr   r   Ú	TypeErrorr   Úcrypto_kx_seed_keypairr   r   )r!   r   r   r   s   &   r   r(   r(   :   sÃ   € ô —’Ð*Ô,FÓG€JÜ—’Ð*Ô,FÓG€JÜ
Ü�4œÓ×EÐE¤C¨£IÔ1EÑ$EØ4×;Ñ;Ü ó	
ô —‘õô ×
$Ò
$ Z¸TÓ
B€CÜ
ˆ3�!‰8Ð-´s·±ÕGô 	�
Š
�:Ô9Ó:¸1Õ=Ü�
Š
�:Ô9Ó:¸1Õ=ðð r   c          
      ój   € V ^8„  d   QhR\         R\         R\         R\        \         \         3,          /# )r	   Úclient_public_keyÚclient_secret_keyÚserver_public_keyr
   r"   )r   s   "r   r   r   W   ó9   € ÷ 7ñ 7Üð7äð7ô ð7ô Œ5”%ˆ<Õñ	7r   c                ón  € \        \        V \        4      ;'       d    \        V 4      \        8H  RP                  \        4      \        P                  R7       \        \        V\        4      ;'       d    \        V4      \        8H  RP                  \        4      \        P                  R7       \        \        V\        4      ;'       d    \        V4      \        8H  RP                  \        4      \        P                  R7       \        P                  ! R\        4      p\        P                  ! R\        4      p\        P                  ! W4WV4      p\        V^ 8H  R\        P                  R7       \        P                  ! V\        4      R,          \        P                  ! V\        4      R,          3# )a  
Generate session keys for the client.
:param client_public_key:
:type client_public_key: bytes
:param client_secret_key:
:type client_secret_key: bytes
:param server_public_key:
:type server_public_key: bytes
:return: (rx_key, tx_key)
:rtype: (bytes, bytes)
ú8Client public key must be a {} bytes long bytes sequencer   z8Client secret key must be a {} bytes long bytes sequenceú8Server public key must be a {} bytes long bytes sequencer   z%Client session key generation failed.r   )r   r$   r   r%   r   r   r   r'   r   r   r   Úcrypto_kx_SESSION_KEY_BYTESr   Úcrypto_kx_client_session_keysr   r   )r*   r+   r,   Úrx_keyÚtx_keyr   s   &&&   r   r2   r2   W   ón  € ô  ÜÐ$¤eÓ,÷ 	Að 	AÜÐ!Ó"Ô&@Ñ@ØB×IÑIÜ&ó	
ô —‘õô ÜÐ$¤eÓ,÷ 	Að 	AÜÐ!Ó"Ô&@Ñ@ØB×IÑIÜ&ó	
ô —‘õô ÜÐ$¤eÓ,÷ 	Að 	AÜÐ!Ó"Ô&@Ñ@ØB×IÑIÜ&ó	
ô —‘õô �WŠWÐ&Ô(CÓD€FÜ�WŠWÐ&Ô(CÓD€FÜ
×
+Ò
+ØÐ)Ð>Oó€Cô Øˆq‰Ø/Ü—‘õô 	�
Š
�6Ô6Ó7¸Õ:Ü�
Š
�6Ô6Ó7¸Õ:ðð r   c          
      ój   € V ^8„  d   QhR\         R\         R\         R\        \         \         3,          /# )r	   r,   Úserver_secret_keyr*   r
   r"   )r   s   "r   r   r   ‘   r-   r   c                ón  € \        \        V \        4      ;'       d    \        V 4      \        8H  RP                  \        4      \        P                  R7       \        \        V\        4      ;'       d    \        V4      \        8H  RP                  \        4      \        P                  R7       \        \        V\        4      ;'       d    \        V4      \        8H  RP                  \        4      \        P                  R7       \        P                  ! R\        4      p\        P                  ! R\        4      p\        P                  ! W4WV4      p\        V^ 8H  R\        P                  R7       \        P                  ! V\        4      R,          \        P                  ! V\        4      R,          3# )a  
Generate session keys for the server.
:param server_public_key:
:type server_public_key: bytes
:param server_secret_key:
:type server_secret_key: bytes
:param client_public_key:
:type client_public_key: bytes
:return: (rx_key, tx_key)
:rtype: (bytes, bytes)
r0   r   z8Server secret key must be a {} bytes long bytes sequencer/   r   z%Server session key generation failed.r   )r   r$   r   r%   r   r   r   r'   r   r   r   r1   r   Úcrypto_kx_server_session_keysr   r   )r,   r7   r*   r3   r4   r   s   &&&   r   r9   r9   ‘   r5   r   c                ó¸   € V ^8„  d   Qh/ ^ \         9   d
   \        ;R&   ^\         9   d
   \        ;R&   ^\         9   d
   \        ;R&   ^\         9   d
   \        ;R&   # )r	   r   r   r&   r1   )Ú__conditional_annotations__Úint)r   s   "r   r   r      sS   € × Ñ ÷& AÒ @œCÑ @ñ' ÷( AÒ @œCÑ @ñ) ÷* 6Ò 5”cÑ 5ñ+ ÷, CÒ BœSÑ Bò- r   N)r   r2   r9   r   r   r&   r1   )r;   Útypingr   Únaclr   r   Únacl._sodiumr   r   Únacl.exceptionsr   Ú__all__Úcrypto_kx_publickeybytesr   Úcrypto_kx_secretkeybytesr   Úcrypto_kx_seedbytesr&   Úcrypto_kx_sessionkeybytesr1   r   r(   r2   r9   r   )r;   s   @r   Ú<module>rF      s‚   øð÷ Ò å "ß !Ý "ò€ðð #&×">Ò">Ó"@Ð Ó @Ø"%×">Ò">Ó"@Ð Ó @Ø×3Ò3Ó5Ð Ó 5Ø#&×#@Ò#@Ó#BÐ Ó Bõõ&õ:7÷t7r   