
    ,hy	                     l    d dl mZmZmZ d dlmZ d dlmZmZ d dl	m
Z
  G d de      Z G d de      Zy	)
    )AnyOptionalType)serialization)GenericPrivateKeyGenericPublicKey)AlgorithmKeyMismatchc                   `    e Zd ZU dZeed<   dZeed<   deddfdZede	ddfd       Z
de	fd	Zy)
CryptographyPublicKeyNkeykey_clsreturnc                 x    | j                   t        d      t        || j                         st        || _        y NzUndefined private key classr   	TypeError
isinstancer	   r   selfr   s     ]/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/dns/dnssecalgs/cryptography.py__init__zCryptographyPublicKey.__init__   8    <<9::
 '&    
public_pemr   c                 >    t        j                  |      } | |      S Nr   )r   load_pem_public_key)clsr   r   s      r   from_pemzCryptographyPublicKey.from_pem   s    //
;s|r   c                     | j                   j                  t        j                  j                  t        j
                  j                        S )N)encodingformat)r   public_bytesr   EncodingPEMPublicFormatSubjectPublicKeyInfor   s    r   to_pemzCryptographyPublicKey.to_pem   s<    xx$$"++// --BB % 
 	
r   )__name__
__module____qualname__r   r   __annotations__r   r   classmethodbytesr    r*    r   r   r   r   	   sW    COGSC D  % ,>  
 
r   r   c                       e Zd ZU dZeed<   dZeed<   ee   ed<   deddfdZ	ddZ
e	 dded	ee   dd
fd       Zdd	ee   defdZy)CryptographyPrivateKeyNr   r   
public_clsr   c                 x    | j                   t        d      t        || j                         st        || _        y r   r   r   s     r   r   zCryptographyPrivateKey.__init__'   r   r   c                 V    | j                  | j                  j                               S r   )r4   r   
public_keyr)   s    r   r7   z!CryptographyPrivateKey.public_key0   s     488#6#6#899r   private_pempasswordr   c                 B    t        j                  ||      } | |      S )N)r9   r   )r   load_pem_private_key)r   r8   r9   r   s       r   r    zCryptographyPrivateKey.from_pem3   s      00xPs|r   c                     |rt        j                  |      }nt        j                         }| j                  j	                  t         j
                  j                  t         j                  j                  |      S )N)r"   r#   encryption_algorithm)	r   BestAvailableEncryptionNoEncryptionr   private_bytesr%   r&   PrivateFormatPKCS8)r   r9   r=   s      r   r*   zCryptographyPrivateKey.to_pem:   sb    #0#H#H#R #0#=#=#? xx%%"++// ..44!5 & 
 	
r   )r   r   )N)r+   r,   r-   r   r   r.   r   r   r   r   r7   r/   r0   r   r    r*   r1   r   r   r3   r3   "   s    COGS*++C D : =A+3E?	 

x 

% 

r   r3   N)typingr   r   r   cryptography.hazmat.primitivesr   dns.dnssecalgs.baser   r   dns.exceptionr	   r   r3   r1   r   r   <module>rG      s.    & & 8 C .
, 
2"
. "
r   