o
    'h                     @   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                   @   sF   e Zd ZdededdfddZdefddZed	edd fd
dZdS )PublicEDDSA	signaturedatareturnNc                 C   s   | j || d S )N)keyverify)selfr   r    r   P/var/www/html/olx_land/venv/lib/python3.10/site-packages/dns/dnssecalgs/eddsa.pyr      s   zPublicEDDSA.verifyc                 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   public_bytesr   EncodingRawPublicFormat)r   r   r   r   encode_key_bytes   s   zPublicEDDSA.encode_key_bytesr   c                 C   s   |  | | | j|jdS N)r   )!_ensure_algorithm_key_combinationkey_cls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                	   @   sH   e Zd ZU ee ed< 		ddedededefdd	Ze	dd
dZ
dS )PrivateEDDSA
public_clsFTr   r   deterministicr   c                 C   s$   | j |}|r|  || |S )z1Sign using a private key per RFC 8080, section 4.)r   sign
public_keyr   )r   r   r   r'   r   r   r   r   r(       s   zPrivateEDDSA.signc                 C   s   | | j  dS r   )r   generate)r   r   r   r   r*   ,   s   zPrivateEDDSA.generateN)FT)r   r%   )r    r!   r"   r   r
   __annotations__r#   boolr(   r$   r*   r   r   r   r   r%      s   
 
r%   c                   @   $   e Zd ZU ejed< ejZejZ	dS )PublicED25519r   N)
r    r!   r"   r   Ed25519PublicKeyr+   r   r   ED25519	algorithmr   r   r   r   r.   1      
 

r.   c                   @   "   e Zd ZU ejed< ejZeZdS )PrivateED25519r   N)	r    r!   r"   r   Ed25519PrivateKeyr+   r   r.   r&   r   r   r   r   r4   7      
 
r4   c                   @   r-   )PublicED448r   N)
r    r!   r"   r   Ed448PublicKeyr+   r   r   ED448r1   r   r   r   r   r7   =   r2   r7   c                   @   r3   )PrivateED448r   N)	r    r!   r"   r   Ed448PrivateKeyr+   r   r7   r&   r   r   r   r   r:   C   r6   r:   N)typingr   cryptography.hazmat.primitivesr   )cryptography.hazmat.primitives.asymmetricr   r   dns.dnssecalgs.cryptographyr   r   dns.dnssectypesr   dns.rdtypes.ANY.DNSKEYr	   r
   r%   r.   r4   r7   r:   r   r   r   r   <module>   s    