관리-도구
편집 파일: x25519.cpython-39.opt-1.pyc
a �a � @ sP d dl mZ d dlmZ d dlmZmZ dZG dd� de�ZG dd� de�Z d S ) � )�_evp_pkey_derive)� serialization)�X25519PrivateKey�X25519PublicKey� c @ s8 e Zd Zdd� Zejejed�dd�Zed�dd�Z d S ) �_X25519PublicKeyc C s || _ || _d S �N��_backend� _evp_pkey��selfZbackend�evp_pkey� r �Q/usr/lib64/python3.9/site-packages/cryptography/hazmat/backends/openssl/x25519.py�__init__ s z_X25519PublicKey.__init__)�encoding�format�returnc C sV |t jju s|t jju r@|t jjus0|t jjur8td��| �� S | j�||| | jd �S )Nz3When using Raw both encoding and format must be Raw) r �Encoding�Raw�PublicFormat� ValueError�_raw_public_bytesr Z_public_key_bytesr )r r r r r r �public_bytes s � � � ���z_X25519PublicKey.public_bytes�r c C s| | j j�d�}| j j�| j|�}| j �|dk� | j �|d | j jjk� | j j�|d | j jj �}| j j� ||�d d � S )Nzunsigned char **r r )r �_ffi�new�_libZEVP_PKEY_get1_tls_encodedpointr �openssl_assert�NULL�gcZOPENSSL_free�buffer)r Zucharpp�res�datar r r r - s ��z"_X25519PublicKey._raw_public_bytesN) �__name__� __module__�__qualname__r r r r �bytesr r r r r r r s �r c @ sZ e Zd Zdd� Zed�dd�Zeed�dd�Zej ej ejed �d d�Zed�dd �Z dS )�_X25519PrivateKeyc C s || _ || _d S r r r r r r r ; s z_X25519PrivateKey.__init__r c C sz | j �� }| j j�|| j�}| j �|dk� | j j�|| j jj�}| j �|| j jjk� | j j� || j jj �}t| j |�S )N� )r �_create_mem_bio_gcr Zi2d_PUBKEY_bior r Zd2i_PUBKEY_bior r r! Z EVP_PKEY_freer )r �bior# r r r r � public_key? s � �z_X25519PrivateKey.public_key)�peer_public_keyr c C s"