+
    -iO                     n   ^ RI t ^ RIt^ RIHt ^ RIHt ^ RIHtHt ^ RI	H
t
Ht ^ RIHt ^ RIHt  ! R R	]4      t ! R
 R]
4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      tR# )     N)default_backend)hashes)paddingrsa)CryptographyPrivateKeyCryptographyPublicKey)	AlgorithmDNSKEYc                      a  ] tR t^t o ]P
                  tV 3R lR ltV 3R lR lt]	V 3R lR l4       t
V 3R ltRtV tR	# )
	PublicRSAc                *   < V ^8  d   QhRS[ RS[ RR/# )   	signaturedatareturnNbytes)format__classdict__s   "P/var/www/html/photoedit/myenv/lib/python3.14/site-packages/dns/dnssecalgs/rsa.py__annotate__PublicRSA.__annotate__   s'     O O OU Ot O    c                z    V P                   P                  W\        P                  ! 4       V P                  4       R # )N)keyverifyr   PKCS1v15chosen_hash)selfr   r   s   &&&r   r   PublicRSA.verify   s%    	)9)9);T=M=MNr   c                    < V ^8  d   QhRS[ /# )r   r   r   )r   r   s   "r   r   r      s     U U% Ur   c                   V P                   P                  4       p\        P                  ! \        P                  VP                  4      ^,          4      p\        P                  VP                  VRR7      pV^8  d    R\        P                  ! RV4      ,           pM\        P                  ! RV4      pVP                  P                  4       R8  g    VP                  P                  4       R8  d   \        R4      hWC,           VP                  P                  VP                  P                  4       ^,           ^,          R4      ,           # )	z,Encode a public key per RFC 3110, section 2.big)length	byteorder    !H!Bi   i   zunsupported RSA key length)r   public_numbersmathceilint
bit_lengtheto_bytesstructpackn
ValueError)r    pn_exp_lenexp
exp_headers   &    r   encode_key_bytesPublicRSA.encode_key_bytes   s    XX$$&99S^^BDD1A56ll244ElBc>T8!<<JT84J44??s"bddoo&7$&>9::"$$--1BQ1F10Le"TTTr   c                $   < V ^8  d   QhRS[ RR/# )r   r   r   r   r
   )r   r   s   "r   r   r   $   s     
 
f 
 
r   c           	        V P                  V4       VP                  p\        P                  ! R VR,          4      w  pVR,          pV^ 8X  d*   \        P                  ! RVR,          4      w  pVR,          pV^ V pW#R pV ! \        P
                  ! \        P                  VR4      \        P                  VR4      4      P                  \        4       4      R7      # )	r)   :r      N:r=   NNr(   :r   r   N:r   NNNr$   r   )
!_ensure_algorithm_key_combinationr   r1   unpackr   RSAPublicNumbersr-   
from_bytes
public_keyr   )clsr   keyptrbytes_rsa_ersa_ns   &&    r   from_dnskeyPublicRSA.from_dnskey#   s    --c2MM$s4	Q;dF3K8IVBZFq w$$ue,cnnUE.Jj*+
 	
r   c                f   < V ^8  d   Qh/ S[ P                  ;R&   S[;R&   S[P                  ;R&   # )r   r   	algorithmr   )r   RSAPublicKeyr	   r   HashAlgorithm)r   r   s   "r   r   r      s6     			    %%%	 r    N)__name__
__module____qualname____firstlineno__r   rM   key_clsr   r9   classmethodrI   __annotate_func____static_attributes____classdictcell__r   s   @r   r   r      sC     GO OU U 
 
/  r   r   c                   ~   a  ] tR t^5t o ]P
                  t]tRt	R	V 3R lR llt
]V 3R lR l4       tV 3R ltRtV tR# )

PrivateRSAi  c                2   < V ^8  d   QhRS[ RS[RS[RS[ /# )r   r   r   deterministicr   )r   bool)r   r   s   "r   r   PrivateRSA.__annotate__;   s3        	
 
r   c                    V P                   P                  V\        P                  ! 4       V P                  P
                  4      pV'       d    V P                  4       P                  WA4       V# )z1Sign using a private key per RFC 3110, section 3.)r   signr   r   
public_clsr   rC   r   )r    r   r   r]   r   s   &&&& r   ra   PrivateRSA.sign;   sP     HHMM'""$doo&A&A
	 OO$$Y5r   c                $   < V ^8  d   QhRS[ RR/# )r   key_sizer   r[   )r-   )r   r   s   "r   r   r_   J   s     
 
 
 
r   c                f    V ! \         P                  ! V P                  V\        4       R 7      R7      # ))public_exponentre   backendr>   )r   generate_private_keydefault_public_exponentr   )rD   re   s   &&r   generatePrivateRSA.generateI   s/    (( # ; ;!')
 	
r   c                :   < V ^8  d   Qh/ S[ P                  ;R&   # )r   r   )r   RSAPrivateKey)r   r   s   "r   r   r_   5   s     			 r   rO   N)FT)rP   rQ   rR   rS   r   rn   rT   r   rb   rj   ra   rU   rk   rV   rW   rX   rY   s   @r   r[   r[   5   s@     GJ#  
 
+  r   r[   c                   P    ] tR t^Tt]P
                  t]P                  ! 4       t	Rt
R# )PublicRSAMD5rO   N)rP   rQ   rR   rS   r	   RSAMD5rL   r   MD5r   rW   rO   r   r   rp   rp   T   s      I**,Kr   rp   c                       ] tR t^Yt]tRtR# )PrivateRSAMD5rO   N)rP   rQ   rR   rS   rp   rb   rW   rO   r   r   rt   rt   Y   s    Jr   rt   c                   P    ] tR t^]t]P
                  t]P                  ! 4       t	Rt
R# )PublicRSASHA1rO   N)rP   rQ   rR   rS   r	   RSASHA1rL   r   SHA1r   rW   rO   r   r   rv   rv   ]   s    !!I++-Kr   rv   c                       ] tR t^bt]tRtR# )PrivateRSASHA1rO   N)rP   rQ   rR   rS   rv   rb   rW   rO   r   r   rz   rz   b   s    Jr   rz   c                   P    ] tR t^ft]P
                  t]P                  ! 4       t	Rt
R# )PublicRSASHA1NSEC3SHA1rO   N)rP   rQ   rR   rS   r	   RSASHA1NSEC3SHA1rL   r   rx   r   rW   rO   r   r   r|   r|   f   s    **I++-Kr   r|   c                       ] tR t^kt]tRtR# )PrivateRSASHA1NSEC3SHA1rO   N)rP   rQ   rR   rS   r|   rb   rW   rO   r   r   r   r   k   s    'Jr   r   c                   P    ] tR t^ot]P
                  t]P                  ! 4       t	Rt
R# )PublicRSASHA256rO   N)rP   rQ   rR   rS   r	   	RSASHA256rL   r   SHA256r   rW   rO   r   r   r   r   o       ##I--/Kr   r   c                       ] tR t^tt]tRtR# )PrivateRSASHA256rO   N)rP   rQ   rR   rS   r   rb   rW   rO   r   r   r   r   t        Jr   r   c                   P    ] tR t^xt]P
                  t]P                  ! 4       t	Rt
R# )PublicRSASHA512rO   N)rP   rQ   rR   rS   r	   	RSASHA512rL   r   SHA512r   rW   rO   r   r   r   r   x   r   r   r   c                       ] tR t^}t]tRtR# )PrivateRSASHA512rO   N)rP   rQ   rR   rS   r   rb   rW   rO   r   r   r   r   }   r   r   r   )r+   r1   cryptography.hazmat.backendsr   cryptography.hazmat.primitivesr   )cryptography.hazmat.primitives.asymmetricr   r   dns.dnssecalgs.cryptographyr   r   dns.dnssectypesr	   dns.rdtypes.ANY.DNSKEYr   r   r[   rp   rt   rv   rz   r|   r   r   r   r   r   rO   r   r   <module>r      s      8 1 B U % )%
% %
P
' 
>9 
J  I  
Z  Y  
(j ("i "
!z !"i "
!z !r   