§
    VøÁiÐ  ã                   óþ   — 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      ú^/var/www/html/jarvis.com/web/backend/venv/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×$Ò$Ý"Ô+Ô/½Ô8RÔ8Vð %ñ 
ô 
ð 	
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Ø”×-Ò-¨c¬gÑ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   € ð ”H—M’M $Ñ'Ô'ˆ	Øð 	6Ø�OŠOÑÔ×$Ò$ Y°Ñ5Ô5Ð5ØÐr   c                 óH   —  | | j                              ¦   «         ¬¦  «        S r   )r!   Úgenerate)r#   s    r   r3   zPrivateEDDSA.generate,   s#   € àˆs�s”{×+Ò+Ñ-Ô-Ð.Ñ.Ô.Ð.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ØÔ!€I€I€Ir   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Ø€J€J€Jr   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Ø”€I€I€Ir   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Ø€J€J€Jr   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   