관리-도구
편집 파일: ed25519.cpython-39.pyc
a �a� � @ sT d dl mZ d dlmZ d dlmZmZmZmZ G dd� de�Z G dd� de�Z dS ) � )� exceptions)� serialization)�Ed25519PrivateKey�Ed25519PublicKey�_ED25519_KEY_SIZE�_ED25519_SIG_SIZEc @ sJ e Zd Zdd� Zejejed�dd�Zed�dd�Z eed d �dd�Z d S ) �_Ed25519PublicKeyc C s || _ || _d S �N��_backend� _evp_pkey��selfZbackendZevp_pkey� r �R/usr/lib64/python3.9/site-packages/cryptography/hazmat/backends/openssl/ed25519.py�__init__ s z_Ed25519PublicKey.__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_Ed25519PublicKey.public_bytes�r c C sp | j j�dt�}| j j�dt�}| j j�| j||�}| j �|dk� | j �|d tk� | j j�|t�d d � S �Nzunsigned char []�size_t *� r ) r �_ffi�newr �_lib�EVP_PKEY_get_raw_public_keyr �openssl_assert�buffer�r �buf�buflen�resr r r r , s �z#_Ed25519PublicKey._raw_public_bytesN)� signature�datar c C s� | j j�� }| j �|| j jjk� | j j�|| j jj�}| j j�|| j jj| j jj| j jj| j �}| j �|dk� | j j� ||t|�|t|��}|dkr�| j �� t j�d S )Nr )r r! �EVP_MD_CTX_newr# r �NULL�gc�EVP_MD_CTX_freeZEVP_DigestVerifyInitr ZEVP_DigestVerify�lenZ_consume_errorsr ZInvalidSignature)r r) r* � evp_md_ctxr( r r r �verify6 s&