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: //lib/python3/dist-packages/cryptography/hazmat/backends/openssl/__pycache__/x25519.cpython-38.pyc
U

�e�]��@s�ddlmZmZmZddlZddlmZddlmZddl	m
Z
ddlmZm
Z
dZe�e
�Gdd	�d	e��Ze�e�Gd
d�de��ZdS)�)�absolute_import�division�print_functionN)�utils)�_evp_pkey_derive)�
serialization)�X25519PrivateKey�X25519PublicKey� c@s&eZdZdd�Zddd�Zdd�ZdS)	�_X25519PublicKeycCs||_||_dS�N��_backend�	_evp_pkey��selfZbackend�evp_pkey�r�M/usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/x25519.py�__init__sz_X25519PublicKey.__init__NcCs�|dks|dkrH|dk	s |dk	r*td��nt�dtj�tjj}tjj}|tjjks`|tjjkr�|tjjk	sx|tjjk	r�td��|�	�S|tj
kr�|tjjk	r�td��|j�
||||jd�S)Nz%Both encoding and format are requiredz�public_bytes now requires encoding and format arguments. Support for calling without arguments will be removed in cryptography 2.7z3When using Raw both encoding and format must be Rawz?format must be SubjectPublicKeyInfo when encoding is PEM or DER)�
ValueError�warnings�warnrZDeprecatedIn25r�Encoding�Raw�PublicFormat�_raw_public_bytes�_PEM_DERZSubjectPublicKeyInforZ_public_key_bytesr)r�encoding�formatrrr�public_bytessF
�
�
�
�
���
���z_X25519PublicKey.public_bytescCs||jj�d�}|jj�|j|�}|j�|dk�|j�|d|jjjk�|jj�|d|jjj	�}|jj�
||�dd�S)Nzunsigned char **r
r)r�_ffi�new�_libZEVP_PKEY_get1_tls_encodedpointr�openssl_assert�NULL�gcZOPENSSL_free�buffer)rZucharpp�res�datarrrrBs��z"_X25519PublicKey._raw_public_bytes)NN)�__name__�
__module__�__qualname__rr rrrrrrs
(rc@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�_X25519PrivateKeycCs||_||_dSrr
rrrrrQsz_X25519PrivateKey.__init__cCsz|j��}|jj�||j�}|j�|dk�|jj�||jjj�}|j�||jjjk�|jj�	||jjj
�}t|j|�S)N�)r�_create_mem_bio_gcr#Zi2d_PUBKEY_biorr$Zd2i_PUBKEY_bior!r%r&Z
EVP_PKEY_freer)r�bior(rrrr�
public_keyUs
��z_X25519PrivateKey.public_keycCs"t|t�std��t|j|j|�S)Nz(peer_public_key must be X25519PublicKey.)�
isinstancer	�	TypeErrorrrr)rZpeer_public_keyrrr�exchangebs
�z_X25519PrivateKey.exchangecCs�|tjjks|tjjkrL|tjjk	s<|tjjk	s<t|tj�sDtd��|��S|tj	krj|tjj
k	rjtd��|j�||||j
d�S)NzcWhen using Raw both encoding and format must be Raw and encryption_algorithm must be NoEncryption()z0format must be PKCS8 when encoding is PEM or DER)rrrrZ
PrivateFormatr2ZNoEncryptionr�_raw_private_bytesrZPKCS8rZ_private_key_bytesr)rrrZencryption_algorithmrrr�
private_bytesjs8
�
�
�
�
���
���z_X25519PrivateKey.private_bytesc	Cs||j��}|jj�||j|jjj|jjjd|jjj|jjj�}|j�|dk�|j�|�}|j�t	|�dk�|t
d�S)Nrr.�0)rr/r#Zi2d_PKCS8PrivateKey_biorr!r%r$Z
_read_mem_bio�len�_X25519_KEY_SIZE)rr0r(Zpkcs8rrrr5�s
�z$_X25519PrivateKey._raw_private_bytesN)r*r+r,rr1r4r6r5rrrrr-Os

r-)Z
__future__rrrrZcryptographyrZ*cryptography.hazmat.backends.openssl.utilsrZcryptography.hazmat.primitivesrZ0cryptography.hazmat.primitives.asymmetric.x25519rr	r9Zregister_interface�objectrr-rrrr�<module>s: