HEX
Server: LiteSpeed
System: Linux php-prod-1.spaceapp.ru 5.15.0-157-generic #167-Ubuntu SMP Wed Sep 17 21:35:53 UTC 2025 x86_64
User: xnsbb3110 (1041)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //usr/local/CyberCP/lib/python3.10/site-packages/asyncssh/crypto/__pycache__/pq.cpython-310.pyc
o

�h�
�@s�UdZddlZddlZddlmZmZdddd�Zeeeeeeee	ffe
d<d	Zd	Zd
D]Z
ej�e
�Zer:nq.dZerTej�e�Zeed�pNeed�Zeed
�ZGdd�d�ZdS)zGA shim around liboqs for Streamlined NTRU Prime post-quantum encryption�N)�Mapping�Tuple)i�i`	i@� �KEM_ml_kem_768)� i`rr�KEM_ml_kem_1024)i�i�ir�KEM_ntruprime_sntrup761)smlkem768s	mlkem1024s	sntrup761�_pq_algsF)�oqs�liboqs�OQS_KEM_ml_kem_768_keypair�OQS_KEM_ml_kem_768_ipd_keypair�#OQS_KEM_ntruprime_sntrup761_keypairc@sdeZdZdZdefdd�Zdeeeffdd�Zdedeeeffd	d
�Zdededefd
d�Z	dS)�PQDHz=A shim around liboqs for post-quantum key exchange algorithms�alg_namecCs�zt|\|_|_|_|_}Wntytd|���d�wttd|d�s,|d7}t	td|d�|_
t	td|d�|_t	td|d�|_dS)NzUnknown PQ algorithm �OQS_�_keypair�_ipd�_encaps�_decaps)
r	�pubkey_bytes�
privkey_bytes�ciphertext_bytes�secret_bytes�KeyError�
ValueError�hasattr�_oqs�getattrrrr)�selfr�oqs_name�r!�E/usr/local/CyberCP/lib/python3.10/site-packages/asyncssh/crypto/pq.py�__init__8s
��z
PQDH.__init__�returncCs0t�|j�}t�|j�}|�||�|j|jfS)zMake a new key pair)�ctypes�create_string_bufferrrr�raw)r�pubkey�privkeyr!r!r"�keypairGszPQDH.keypairr(cCsHt|�|jkrtd��t�|j�}t�|j�}|�|||�|j|jfS)z9Generate a random secret and encrypt it with a public keyzInvalid public key)	�lenrrr%r&rrrr')rr(�
ciphertext�secretr!r!r"�encapsPszPQDH.encapsr,r)cCs6t|�|jkrtd��t�|j�}|�|||�|jS)z/Decrypt an encrypted secret using a private keyzInvalid ciphertext)r+rrr%r&rrr')rr,r)r-r!r!r"�decaps]s
zPQDH.decapsN)
�__name__�
__module__�__qualname__�__doc__�bytesr#rr*r.r/r!r!r!r"r5s	
r)r3r%�ctypes.util�typingrrr	r4�int�str�__annotations__�mlkem_available�sntrup_available�lib�util�find_library�_oqs_lib�cdll�LoadLibraryrrrr!r!r!r"�<module>s.$��
�