a
    9g                     @   s   d dl mZ d dlmZ d dlmZmZ d dlmZm	Z	 d dl
mZ d dlmZ G dd de	ZG d	d
 d
eZG dd deZG dd deZG dd deZG dd deZdS )    )Type)serialization)ed448ed25519)CryptographyPrivateKeyCryptographyPublicKey)	Algorithm)DNSKEYc                   @   s@   e Zd ZeeddddZedddZeed dd	d
ZdS )PublicEDDSAN)	signaturedatareturnc                 C   s   | j || d S )N)keyverify)selfr   r    r   q/var/www/vosh/data/www/fastworkle.ru/webshop-tgbot-v.1.0/venv/lib/python3.9/site-packages/dns/dnssecalgs/eddsa.pyr      s    zPublicEDDSA.verifyr   c                 C   s   | j jtjjtjjdS )z,Encode a public key per RFC 8080, section 3.)encodingformat)r   Zpublic_bytesr   EncodingZRawZPublicFormat)r   r   r   r   encode_key_bytes   s    zPublicEDDSA.encode_key_bytes)r   r   c                 C   s   |  | | | j|jdS N)r   )Z!_ensure_algorithm_key_combinationkey_clsZfrom_public_bytesr   )clsr   r   r   r   from_dnskey   s    
zPublicEDDSA.from_dnskey)	__name__
__module____qualname__bytesr   r   classmethodr	   r   r   r   r   r   r
      s   r
   c                   @   sB   e Zd ZU ee ed< deeeedddZe	d ddd	Z
d
S )PrivateEDDSA
public_clsFT)r   r   deterministicr   c                 C   s$   | j |}|r |  || |S )z1Sign using a private key per RFC 8080, section 4.)r   signZ
public_keyr   )r   r   r   r#   r   r   r   r   r$       s    zPrivateEDDSA.signr   c                 C   s   | | j  dS r   )r   generate)r   r   r   r   r%   ,   s    zPrivateEDDSA.generateN)FT)r   r   r   r   r
   __annotations__r   boolr$   r    r%   r   r   r   r   r!      s   
  r!   c                   @   s$   e Zd ZU ejed< ejZejZ	dS )PublicED25519r   N)
r   r   r   r   ZEd25519PublicKeyr&   r   r   ZED25519	algorithmr   r   r   r   r(   1   s   

r(   c                   @   s"   e Zd ZU ejed< ejZeZdS )PrivateED25519r   N)	r   r   r   r   ZEd25519PrivateKeyr&   r   r(   r"   r   r   r   r   r*   7   s   

r*   c                   @   s$   e Zd ZU ejed< ejZejZ	dS )PublicED448r   N)
r   r   r   r   ZEd448PublicKeyr&   r   r   ZED448r)   r   r   r   r   r+   =   s   

r+   c                   @   s"   e Zd ZU ejed< ejZeZdS )PrivateED448r   N)	r   r   r   r   ZEd448PrivateKeyr&   r   r+   r"   r   r   r   r   r,   C   s   

r,   N)typingr   Zcryptography.hazmat.primitivesr   Z)cryptography.hazmat.primitives.asymmetricr   r   Zdns.dnssecalgs.cryptographyr   r   Zdns.dnssectypesr   Zdns.rdtypes.ANY.DNSKEYr	   r
   r!   r(   r*   r+   r,   r   r   r   r   <module>   s   