o
    0 i	                     @   s   d dl mZmZ d dl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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   _/home/app/PaddleOCR-VL-test/.venv_paddleocr/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)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   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	   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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	dB dd fddZedde	dB de	fddZdS )GenericPrivateKeyZ
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   r2   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   r5   r6   r   r   r   r(   P   r   zGenericPrivateKey.from_pemc                 C   r   )z(Return private key as PEM-encoded PKCS#8Nr   )r   r6   r   r   r   r)   W   r   zGenericPrivateKey.to_pem)FT)r   r
   r   )r*   r+   r,   r   r
   r-   r   r   r   r.   boolr3   r4   r/   r(   r)   r   r   r   r   r1   <   s<   
 r1   )abcr   r   typingr   r   Zdns.rdataclassr#   Zdns.rdatatypeZdns.dnssectypesr   Zdns.exceptionr   Zdns.rdtypes.ANY.DNSKEYr   Zdns.rdtypes.dnskeybaser	   r
   r1   r   r   r   r   <module>   s    0