Ë
    RPfz  ã                   óØ   — 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y)é    )ÚType)Úserialization)Úed448Úed25519)ÚCryptographyPrivateKeyÚCryptographyPublicKey)Ú	Algorithm)ÚDNSKEYc                   óF   — 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y)	ÚPublicEDDSAÚ	signatureÚdataÚreturnNc                 ó<   — | j                   j                  ||«       y )N)ÚkeyÚverify)Úselfr   r   s      úN/var/www/fastapitest/venv/lib/python3.12/site-packages/dns/dnssecalgs/eddsa.pyr   zPublicEDDSA.verify   s   € Ø�‰�‰˜	 4Õ(ó    c                 óœ   — | j                   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   s;   € à�x‰x×$Ñ$Ü"×+Ñ+×/Ñ/¼×8RÑ8R×8VÑ8Vð %ó 
ð 	
r   r   c                 ó|   — | j                  |«        | | j                  j                  |j                  «      ¬«      S ©N)r   )Ú!_ensure_algorithm_key_combinationÚkey_clsÚfrom_public_bytesr   )Úclsr   s     r   Úfrom_dnskeyzPublicEDDSA.from_dnskey   s3   € à×-Ñ-¨cÔ2ÙØ—‘×-Ñ-¨c¯g©gÓ6ô
ð 	
r   )	Ú__name__Ú
__module__Ú__qualname__Úbytesr   r   Úclassmethodr
   r$   © r   r   r   r      sJ   „ ð) ð )¨Uð )°tó )ð
 %ó 
ð ð
˜fð 
¨ò 
ó ñ
r   r   c                   óF   — e Zd ZU ee   ed<   ddededefd„Ze	d	d„«       Z
y)
ÚPrivateEDDSAÚ
public_clsr   r   r   c                 ó€   — | j                   j                  |«      }|r | j                  «       j                  ||«       |S )z1Sign using a private key per RFC 8080, section 4.)r   ÚsignÚ
public_keyr   )r   r   r   r   s       r   r/   zPrivateEDDSA.sign    s4   € à—H‘H—M‘M $Ó'ˆ	ÙØ�O‰OÓ×$Ñ$ Y°Ô5ØÐr   c                 óD   —  | | j                   j                  «       ¬«      S r   )r!   Úgenerate)r#   s    r   r2   zPrivateEDDSA.generate'   s   € á�s—{‘{×+Ñ+Ó-Ô.Ð.r   N)F)r   r,   )r%   r&   r'   r   r   Ú__annotations__r(   Úboolr/   r)   r2   r*   r   r   r,   r,      s;   … Ø�[Ñ!Ó!ñ˜ð ¨ð ¸ó ð ò/ó ñ/r   r,   c                   ó\   — e Zd ZU ej                  ed<   ej                  Zej                  Z	y)ÚPublicED25519r   N)
r%   r&   r'   r   ÚEd25519PublicKeyr3   r!   r	   ÚED25519Ú	algorithmr*   r   r   r6   r6   ,   s$   … Ø	×	!Ñ	!Ó!Ø×&Ñ&€GØ×!Ñ!�Ir   r6   c                   óH   — e Zd ZU ej                  ed<   ej                  ZeZy)ÚPrivateED25519r   N)	r%   r&   r'   r   ÚEd25519PrivateKeyr3   r!   r6   r-   r*   r   r   r;   r;   2   s   … Ø	×	"Ñ	"Ó"Ø×'Ñ'€GØ�Jr   r;   c                   ó\   — e Zd ZU ej                  ed<   ej                  Zej                  Z	y)ÚPublicED448r   N)
r%   r&   r'   r   ÚEd448PublicKeyr3   r!   r	   ÚED448r9   r*   r   r   r>   r>   8   s"   … Ø	×	Ñ	ÓØ×"Ñ"€GØ—‘�Ir   r>   c                   óH   — e Zd ZU ej                  ed<   ej                  ZeZy)ÚPrivateED448r   N)	r%   r&   r'   r   ÚEd448PrivateKeyr3   r!   r>   r-   r*   r   r   rB   rB   >   s   … Ø	×	Ñ	ÓØ×#Ñ#€GØ�Jr   rB   N)Útypingr   Úcryptography.hazmat.primitivesr   Ú)cryptography.hazmat.primitives.asymmetricr   r   Údns.dnssecalgs.cryptographyr   r   Údns.dnssectypesr	   Údns.rdtypes.ANY.DNSKEYr
   r   r,   r6   r;   r>   rB   r*   r   r   ú<module>rJ      sa   ðÝ å 8ß Dç UÝ %Ý )ô
Ð'ô 
ô$/Ð)ô /ô"�Kô "ô�\ô ô �+ô  ô�<õ r   