o
    'h	                     @   s   d dl mZmZ d dlmZmZmZ d dlZd dl	Zd dl
mZ d dlmZ d dlmZ d dlmZ G dd	 d	eZG d
d deZdS )    )ABCabstractmethod)AnyOptionalTypeN)	Algorithm)AlgorithmKeyMismatch)DNSKEY)Flagc                   @   s   e Zd ZU eed< ededdfddZedededdfd	d
Z	edefddZ
ededdfddZejdfdededefddZeededd fddZeededd fddZedefddZdS )GenericPublicKey	algorithmkeyreturnNc                 C      d S N selfr   r   r   O/var/www/html/olx_land/venv/lib/python3.10/site-packages/dns/dnssecalgs/base.py__init__      zGenericPublicKey.__init__	signaturedatac                 C      dS )zVerify signed DNSSEC dataNr   )r   r   r   r   r   r   verify       zGenericPublicKey.verifyc                 C   r   )zEncode key as bytes for DNSKEYNr   r   r   r   r   encode_key_bytes   r   z!GenericPublicKey.encode_key_bytesc                 C   s   |j | j krtd S r   )r   r   clsr   r   r   r   !_ensure_algorithm_key_combination   s   z2GenericPublicKey._ensure_algorithm_key_combination   flagsprotocolc                 C   s"   t tjjtjj ||| j|  dS )zReturn public key as DNSKEY)rdclassrdtyper"   r#   r   r   )r	   dns
rdataclassIN	rdatatyper   r   )r   r"   r#   r   r   r   	to_dnskey    s   zGenericPublicKey.to_dnskeyc                 C   r   )zCreate public key from DNSKEYNr   r   r   r   r   from_dnskey+   r   zGenericPublicKey.from_dnskey
public_pemc                 C   r   )zXCreate public key from PEM-encoded SubjectPublicKeyInfo as specified
        in RFC 5280Nr   )r   r,   r   r   r   from_pem0   r   zGenericPublicKey.from_pemc                 C   r   )zVReturn public-key as PEM-encoded SubjectPublicKeyInfo as specified
        in RFC 5280Nr   r   r   r   r   to_pem6   r   zGenericPublicKey.to_pem)__name__
__module____qualname__r   __annotations__r   r   r   bytesr   r   classmethodr	   r    r
   ZONEintr*   r+   r-   r.   r   r   r   r   r      s&   
 r   c                
   @   s   e Zd ZU ee ed< ededdfddZe		dd	e	d
e
de
de	fddZedddZee	dde	dee	 dd fddZeddee	 de	fddZdS )GenericPrivateKey
public_clsr   r   Nc                 C   r   r   r   r   r   r   r   r   ?   r   zGenericPrivateKey.__init__FTr   r   deterministicc                 C   r   )zSign DNSSEC dataNr   )r   r   r   r9   r   r   r   signC   r   zGenericPrivateKey.signr   c                 C   r   )zReturn public key instanceNr   r   r   r   r   
public_keyL   r   zGenericPrivateKey.public_keyprivate_pempasswordc                 C   r   )z*Create private key from PEM-encoded PKCS#8Nr   )r   r<   r=   r   r   r   r-   P   r   zGenericPrivateKey.from_pemc                 C   r   )z(Return private key as PEM-encoded PKCS#8Nr   )r   r=   r   r   r   r.   W   r   zGenericPrivateKey.to_pem)FT)r   r   r   )r/   r0   r1   r   r   r2   r   r   r   r3   boolr:   r;   r4   r   r-   r.   r   r   r   r   r7   <   s<   
 r7   )abcr   r   typingr   r   r   dns.rdataclassr&   dns.rdatatypedns.dnssectypesr   dns.exceptionr   dns.rdtypes.ANY.DNSKEYr	   dns.rdtypes.dnskeybaser
   r   r7   r   r   r   r   <module>   s    0