HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //proc/self/root/usr/lib/python3/dist-packages/nacl/bindings/__pycache__/crypto_kx.cpython-38.pyc
U

�֫[�@s�ddlmZmZmZddlmZddlmZm	Z	ddl
mZddddd	d
dgZe	�
�Ze	��Ze	��Ze	��Zdd�Zd
d�Zdd�Zdd�ZdS)�)�absolute_import�division�print_function)�
exceptions)�ffi�lib)�ensure�crypto_kx_keypair�crypto_kx_client_session_keys�crypto_kx_server_session_keys�crypto_kx_PUBLIC_KEY_BYTES�crypto_kx_SECRET_KEY_BYTES�crypto_kx_SEED_BYTES�crypto_kx_SESSION_KEY_BYTEScCs`t�dt�}t�dt�}t�||�}t|dkdtjd�t�	|t�dd�t�	|t�dd�fS)z�
    Generate a keypair.
    This is a duplicate crypto_box_keypair, but
    is included for api consistency.
    :return: (public_key, secret_key)
    :rtype: (bytes, bytes)
    �unsigned char[]r�Key generation failed.�ZraisingN)
r�newrr
rr	r�exc�CryptoError�buffer)�
public_key�
secret_key�res�r�9/usr/lib/python3/dist-packages/nacl/bindings/crypto_kx.pyr	&s�cCs�t�dt�}t�dt�}tt|t�o.t|�tkd�	t�t
jd�t�
|||�}t|dkdt
jd�t�|t�dd�t�|t�dd�fS)ag
    Generate a keypair 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)
    rz+Seed must be a {0} byte long bytes sequencerrrN)rrrr
r�
isinstance�bytes�lenr�formatr�	TypeErrorr�crypto_kx_seed_keypairrr)Zseedrrrrrrr!7s
���r!cCs�tt|t�ot|�tkd�t�tjd�tt|t�o>t|�tkd�t�tjd�tt|t�oft|�tkd�t�tjd�t	�
dt�}t	�
dt�}t�
|||||�}t|dkdtjd�t	�|t�dd�t	�|t�dd�fS)	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)
    �9Client public key must be a {0} bytes long bytes sequencerz9Client secret key must be a {0} bytes long bytes sequence�9Server public key must be a {0} bytes long bytes sequencerrz%Client session key generation failed.N)rrrrrrrr r
rrrrr
rr)�client_public_keyZclient_secret_key�server_public_key�rx_key�tx_keyrrrrr
PsH
��
��
�����cCs�tt|t�ot|�tkd�t�tjd�tt|t�o>t|�tkd�t�tjd�tt|t�oft|�tkd�t�tjd�t	�
dt�}t	�
dt�}t�
|||||�}t|dkdtjd�t	�|t�dd�t	�|t�dd�fS)	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)
    r#rz9Server secret key must be a {0} bytes long bytes sequencer"rrz%Server session key generation failed.N)rrrrrrrr r
rrrrrrr)r%Zserver_secret_keyr$r&r'rrrrr}sH
��
��
�����N)Z
__future__rrrZnaclrrZnacl._sodiumrrZnacl.exceptionsr�__all__Zcrypto_kx_publickeybytesrZcrypto_kx_secretkeybytesr
Zcrypto_kx_seedbytesrZcrypto_kx_sessionkeybytesrr	r!r
rrrrr�<module>s&�-