
    gy	                     l    S SK JrJrJr  S SKJr  S SKJrJr  S SK	J
r
   " S S\5      r " S S\5      rg	)
    )AnyOptionalType)serialization)GenericPrivateKeyGenericPublicKey)AlgorithmKeyMismatchc                   n    \ rS rSr% Sr\\S'   Sr\\S'   S\SS4S jr\	S\
SS4S	 j5       rS\
4S
 jrSrg)CryptographyPublicKey	   Nkeykey_clsreturnc                     U R                   c  [        S5      e[        XR                   5      (       d  [        eXl        g NzUndefined private key classr   	TypeError
isinstancer	   r   selfr   s     T/home/matz/Project1/venv/lib/python3.13/site-packages/dns/dnssecalgs/cryptography.py__init__CryptographyPublicKey.__init__   9    <<9::
 
 '&    
public_pemr   c                 :    [         R                  " U5      nU " US9$ Nr   )r   load_pem_public_key)clsr   r   s      r   from_pemCryptographyPublicKey.from_pem   s    //
;s|r   c                     U R                   R                  [        R                  R                  [        R
                  R                  S9$ )N)encodingformat)r   public_bytesr   EncodingPEMPublicFormatSubjectPublicKeyInfor   s    r   to_pemCryptographyPublicKey.to_pem   s<    xx$$"++// --BB % 
 	
r   r   )__name__
__module____qualname____firstlineno__r   r   __annotations__r   r   classmethodbytesr"   r-   __static_attributes__ r   r   r   r   	   sW    COGSC D  % ,>  
 
r   r   c                       \ rS rSr% Sr\\S'   Sr\\S'   \\	   \S'   S\SS4S jr
SS jr\ SS	\S
\\   SS4S jj5       rSS
\\   S\4S jjrSrg)CryptographyPrivateKey"   Nr   r   
public_clsr   c                     U R                   c  [        S5      e[        XR                   5      (       d  [        eXl        g r   r   r   s     r   r   CryptographyPrivateKey.__init__'   r   r   c                 P    U R                  U R                  R                  5       S9$ r   )r;   r   
public_keyr,   s    r   r?   !CryptographyPrivateKey.public_key0   s     488#6#6#899r   private_pempasswordr   c                 6    [         R                  " XS9nU " US9$ )N)rB   r   )r   load_pem_private_key)r!   rA   rB   r   s       r   r"   CryptographyPrivateKey.from_pem3   s     00Ps|r   c                     U(       a  [         R                  " U5      nO[         R                  " 5       nU R                  R	                  [         R
                  R                  [         R                  R                  US9$ )N)r%   r&   encryption_algorithm)	r   BestAvailableEncryptionNoEncryptionr   private_bytesr(   r)   PrivateFormatPKCS8)r   rB   rG   s      r   r-   CryptographyPrivateKey.to_pem:   sb    #0#H#H#R #0#=#=#? xx%%"++// ..44!5 & 
 	
r   r   )r   r   )N)r/   r0   r1   r2   r   r   r3   r   r   r   r   r?   r4   r5   r   r"   r-   r6   r7   r   r   r9   r9   "   s    COGS*++C D : =A+3E?	 

x 

% 

 

r   r9   N)typingr   r   r   cryptography.hazmat.primitivesr   dns.dnssecalgs.baser   r   dns.exceptionr	   r   r9   r7   r   r   <module>rR      s.    & & 8 C .
, 
2"
. "
r   