U
    <{f	                     @   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eddddZeeeddddZ	eed	d
dZ
eeddddZejdfeeedddZeeed dddZeeed dddZeed	ddZdS )GenericPublicKey	algorithmNkeyreturnc                 C   s   d S N selfr   r   r   R/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/dns/dnssecalgs/base.py__init__   s    zGenericPublicKey.__init__)	signaturedatar   c                 C   s   dS )zVerify signed DNSSEC dataNr   )r   r   r   r   r   r   verify   s    zGenericPublicKey.verifyr   c                 C   s   dS )zEncode key as bytes for DNSKEYNr   r   r   r   r   encode_key_bytes   s    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protocolr   c                 C   s"   t tjjtjj ||| j|  dS )zReturn public key as DNSKEY)ZrdclassZrdtyper    r!   r   r   )r	   dnsZ
rdataclassINZ	rdatatyper   r   )r   r    r!   r   r   r   	to_dnskey    s    zGenericPublicKey.to_dnskeyc                 C   s   dS )zCreate public key from DNSKEYNr   r   r   r   r   from_dnskey+   s    zGenericPublicKey.from_dnskey)
public_pemr   c                 C   s   dS )zXCreate public key from PEM-encoded SubjectPublicKeyInfo as specified
        in RFC 5280Nr   )r   r&   r   r   r   from_pem0   s    zGenericPublicKey.from_pemc                 C   s   dS )zVReturn public-key as PEM-encoded SubjectPublicKeyInfo as specified
        in RFC 5280Nr   r   r   r   r   to_pem6   s    zGenericPublicKey.to_pem)__name__
__module____qualname__r   __annotations__r   r   r   bytesr   r   classmethodr	   r   r
   ZZONEintr$   r%   r'   r(   r   r   r   r   r      s$   
r   c                   @   s   e Zd ZU ee ed< eeddddZede	e
e	ddd	Zed
dddZeede	ee	 d dddZedee	 e	dddZdS )GenericPrivateKeyZ
public_clsNr   c                 C   s   d S r   r   r   r   r   r   r   ?   s    zGenericPrivateKey.__init__F)r   r   r   c                 C   s   dS )zSign DNSSEC dataNr   )r   r   r   r   r   r   signC   s    zGenericPrivateKey.signr   r   c                 C   s   dS )zReturn public key instanceNr   r   r   r   r   
public_keyG   s    zGenericPrivateKey.public_key)private_pempasswordr   c                 C   s   dS )z*Create private key from PEM-encoded PKCS#8Nr   )r   r3   r4   r   r   r   r'   K   s    zGenericPrivateKey.from_pem)r4   r   c                 C   s   dS )z(Return private key as PEM-encoded PKCS#8Nr   )r   r4   r   r   r   r(   R   s    zGenericPrivateKey.to_pem)F)N)N)r)   r*   r+   r   r   r,   r   r   r   r-   boolr1   r2   r.   r   r'   r(   r   r   r   r   r0   <   s"   
  r0   )abcr   r   typingr   r   r   Zdns.rdataclassr"   Zdns.rdatatypeZdns.dnssectypesr   Zdns.exceptionr   Zdns.rdtypes.ANY.DNSKEYr	   Zdns.rdtypes.dnskeybaser
   r   r0   r   r   r   r   <module>   s   0