
    Eqg                         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e	          Z G d	 d
e          Z G d de          Z G d de          Z G d de          Z G d de          ZdS )    )Type)serialization)ed448ed25519)CryptographyPrivateKeyCryptographyPublicKey)	Algorithm)DNSKEYc                   N    e Zd ZdededdfdZdefdZededd fd            ZdS )	PublicEDDSA	signaturedatareturnNc                 <    | j                             ||           d S )N)keyverify)selfr   r   s      F/var/www/html/env/lib/python3.11/site-packages/dns/dnssecalgs/eddsa.pyr   zPublicEDDSA.verify   s    	4(((((    c                 v    | j                             t          j        j        t          j        j                  S )z,Encode a public key per RFC 8080, section 3.)encodingformat)r   public_bytesr   EncodingRawPublicFormat)r   s    r   encode_key_byteszPublicEDDSA.encode_key_bytes   s2    x$$"+/8R8V % 
 
 	
r   r   c                 ~    |                      |            | | j                            |j                            S N)r   )!_ensure_algorithm_key_combinationkey_clsfrom_public_bytesr   )clsr   s     r   from_dnskeyzPublicEDDSA.from_dnskey   sD    --c222s--cg66
 
 
 	
r   )	__name__
__module____qualname__bytesr   r   classmethodr
   r$    r   r   r   r      s        ) )U )t ) ) ) )
% 
 
 
 
 
f 
 
 
 
 [
 
 
r   r   c            	       \    e Zd ZU ee         ed<   	 	 ddedededefdZe	dd	            Z
d
S )PrivateEDDSA
public_clsFTr   r   deterministicr   c                     | j                             |          }|r(|                                                     ||           |S )z1Sign using a private key per RFC 8080, section 4.)r   sign
public_keyr   )r   r   r   r.   r   s        r   r0   zPrivateEDDSA.sign    sE     HMM$''	 	6OO$$Y555r   c                 H     | | j                                                   S r   )r!   generate)r#   s    r   r3   zPrivateEDDSA.generate,   s#    ss{++--....r   N)FT)r   r,   )r%   r&   r'   r   r   __annotations__r(   boolr0   r)   r3   r*   r   r   r,   r,      s         [!!!!
 "	
 

 
 	

 

 
 
 
 / / / [/ / /r   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   Ed25519PublicKeyr4   r!   r	   ED25519	algorithmr*   r   r   r7   r7   1   s/         		!!!!&G!IIIr   r7   c                   6    e Zd ZU ej        ed<   ej        ZeZdS )PrivateED25519r   N)	r%   r&   r'   r   Ed25519PrivateKeyr4   r!   r7   r-   r*   r   r   r<   r<   7   s,         		""""'GJJJr   r<   c                   @    e Zd ZU ej        ed<   ej        Zej        Z	dS )PublicED448r   N)
r%   r&   r'   r   Ed448PublicKeyr4   r!   r	   ED448r:   r*   r   r   r?   r?   =   s.         		"GIIIr   r?   c                   6    e Zd ZU ej        ed<   ej        ZeZdS )PrivateED448r   N)	r%   r&   r'   r   Ed448PrivateKeyr4   r!   r?   r-   r*   r   r   rC   rC   C   s,         		#GJJJr   rC   N)typingr   cryptography.hazmat.primitivesr   )cryptography.hazmat.primitives.asymmetricr   r   dns.dnssecalgs.cryptographyr   r   dns.dnssectypesr	   dns.rdtypes.ANY.DNSKEYr
   r   r,   r7   r<   r?   rC   r*   r   r   <module>rK      s         8 8 8 8 8 8 D D D D D D D D U U U U U U U U % % % % % % ) ) ) ) ) )
 
 
 
 
' 
 
 
$/ / / / /) / / /(" " " " "K " " "    \            +          <     r   