관리-도구
편집 파일: 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"���t�|t�std��t|�j|�j|�S�)Nz(peer_public_key must be X25519PublicKey.)� isinstancer���� TypeErrorr���r ���r���)r ���r.���r���r���r����exchangeL���s���� z_X25519PrivateKey.exchange)r���r����encryption_algorithmr���c�����������������C���sd���|t�jju�s|t�jju�rL|t�jjus<|t�jjus<t|t�j�sDtd��|����S�|�j � ||||�|�jd��S�)NzcWhen using Raw both encoding and format must be Raw and encryption_algorithm must be NoEncryption())r���r���r���r���� PrivateFormatr/���ZNoEncryptionr����_raw_private_bytesr ���Z_private_key_bytesr���)r ���r���r���r2���r���r���r���� private_bytesR���s&���� � � � �����z_X25519PrivateKey.private_bytesc�������������� ���C���s|���|�j����}|�j�j�||�j|�j�jj|�j�jjd|�j�jj|�j�jj�}|�j��|dk��|�j��|�}|�j��t |�dk��|t �d���S�)Nr���r*����0���)r ���r+���r���Zi2d_PKCS8PrivateKey_bior���r���r ���r���Z _read_mem_bio�len�_X25519_KEY_SIZE)r ���r,���r#���Zpkcs8r���r���r���r4���n���s���� � z$_X25519PrivateKey._raw_private_bytesN)r%���r&���r'���r���r���r-���r(���r1���r���r���r3���ZKeySerializationEncryptionr5���r4���r���r���r���r���r)���:���s��� �r)���N) Z*cryptography.hazmat.backends.openssl.utilsr���Zcryptography.hazmat.primitivesr���Z0cryptography.hazmat.primitives.asymmetric.x25519r���r���r8���r���r)���r���r���r���r����<module>���s ���)