HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/cryptography/hazmat/backends/openssl/__pycache__/x25519.cpython-310.pyc
o

-&%a�@sPddlmZddlmZddlmZmZdZGdd�de�ZGdd�de�Z	d	S)
�)�_evp_pkey_derive)�
serialization)�X25519PrivateKey�X25519PublicKey� c@s<eZdZdd�Zdejdejdefdd�Zdefdd	�Z	d
S)�_X25519PublicKeycC�||_||_dS�N��_backend�	_evp_pkey��self�backend�evp_pkey�r�M/usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/x25519.py�__init__�
z_X25519PublicKey.__init__�encoding�format�returncCsV|tjjus|tjjur |tjjus|tjjurtd��|��S|j�||||jd�S)Nz3When using Raw both encoding and format must be Raw)	r�Encoding�Raw�PublicFormat�
ValueError�_raw_public_bytesr�_public_key_bytesr)rrrrrr�public_bytess��z_X25519PublicKey.public_bytescCs||jj�d�}|jj�|j|�}|j�|dk�|j�|d|jjjk�|jj�|d|jjj	�}|jj�
||�dd�S)Nzunsigned char **rr)r�_ffi�new�_lib�EVP_PKEY_get1_tls_encodedpointr�openssl_assert�NULL�gc�OPENSSL_free�buffer)r�ucharpp�res�datarrrr-s��z"_X25519PublicKey._raw_public_bytesN)
�__name__�
__module__�__qualname__rrrr�bytesrrrrrrrs��
�rc@sbeZdZdd�Zdefdd�Zdedefdd�Zd	ej	d
ej
dejdefdd
�Zdefdd�Z
dS)�_X25519PrivateKeycCrr	r
r
rrrr;rz_X25519PrivateKey.__init__rcCsz|j��}|jj�||j�}|j�|dk�|jj�||jjj�}|j�||jjjk�|jj�	||jjj
�}t|j|�S)N�)r�_create_mem_bio_gcr!�i2d_PUBKEY_biorr#�d2i_PUBKEY_biorr$r%�
EVP_PKEY_freer)r�bior)rrrr�
public_key?s

�
�z_X25519PrivateKey.public_key�peer_public_keycCs"t|t�s	td��t|j|j|�S)Nz(peer_public_key must be X25519PublicKey.)�
isinstancer�	TypeErrorrrr)rr7rrr�exchangeLs
z_X25519PrivateKey.exchangerr�encryption_algorithmcCsd|tjjus|tjjur&|tjjus|tjjust|tj�s"td��|��S|j	�
|||||jd�S)NzcWhen using Raw both encoding and format must be Raw and encryption_algorithm must be NoEncryption())rrrr�
PrivateFormatr8�NoEncryptionr�_raw_private_bytesr�_private_key_bytesr)rrrr;rrr�
private_bytesRs����z_X25519PrivateKey.private_bytesc	Cs||j��}|jj�||j|jjj|jjjd|jjj|jjj�}|j�|dk�|j�|�}|j�t	|�dk�|t
d�S)Nrr0�0)rr1r!�i2d_PKCS8PrivateKey_biorrr$r#�
_read_mem_bio�len�_X25519_KEY_SIZE)rr5r)�pkcs8rrrr>ns
�	z$_X25519PrivateKey._raw_private_bytesN)r+r,r-rrr6r.r:rrr<�KeySerializationEncryptionr@r>rrrrr/:s
���
�r/N)
�*cryptography.hazmat.backends.openssl.utilsr�cryptography.hazmat.primitivesr�0cryptography.hazmat.primitives.asymmetric.x25519rrrErr/rrrr�<module>s)