+
    -•üi  ã                   ó¶   € ^ 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# )é    N)Údefault_backend)Úhashes)ÚdsaÚutils)ÚCryptographyPrivateKeyÚCryptographyPublicKey)Ú	Algorithm©ÚDNSKEYc                   ó¾   a € ] tR t^t o ]P
                  t]P                  t	]
P                  ! 4       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	# )
Ú	PublicDSAc                ó*   <€ 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/dsa.pyÚ__annotate__ÚPublicDSA.__annotate__   s"   ø€ ÷ 5ñ 5¡ð 5©Uð 5°tñ 5ó    c                óô   € VR ,          pVR,          p\         P                  ! \        P                  VR4      \        P                  VR4      4      pV P                  P                  WRV P                  4       R# ):é   é   N:r   NNÚbigN)r   Úencode_dss_signatureÚintÚ
from_bytesÚkeyÚverifyÚchosen_hash)Úselfr   r   Úsig_rÚsig_sÚsigs   &&&   r   r#   ÚPublicDSA.verify   sY   € Ø˜$•ˆØ˜#•ˆÜ×(Ò(ÜN‰N˜5 %Ó(¬#¯.©.¸ÀÓ*Fó
ˆð 	‰‰˜ 4×#3Ñ#3Ö4r   c                ó    <€ V ^8„  d   QhRS[ /# )r   r   r   )r   r   s   "€r   r   r      s   ø€ ÷ ñ ¡%ñ r   c                óN  € V P                   P                  4       pV P                   P                  ^,          ^@,
          ^,          pV^8”  d   \        R4      h^@V^,          ,           p\        P
                  ! RV4      pWAP                  P                  P                  ^R4      ,          pWAP                  P                  P                  VR4      ,          pWAP                  P                  P                  VR4      ,          pWAP                  P                  VR4      ,          pV# )z,Encode a public key per RFC 2536, section 2.zunsupported DSA key sizeú!Br   )r"   Úpublic_numbersÚkey_sizeÚ
ValueErrorÚstructÚpackÚparameter_numbersÚqÚto_bytesÚpÚgÚy)r%   ÚpnÚdsa_tÚoctetsÚress   &    r   Úencode_key_bytesÚPublicDSA.encode_key_bytes   sá   € àX‰X×$Ñ$Ó&ˆØ—‘×"Ñ" aÕ'¨"Õ,°Õ2ˆØ1Œ9ÜÐ7Ó8Ð8Øe˜a•i•ˆÜkŠk˜$ Ó&ˆØ×#Ñ#×%Ñ%×.Ñ.¨r°5Ó9Õ9ˆØ×#Ñ#×%Ñ%×.Ñ.¨v°uÓ=Õ=ˆØ×#Ñ#×%Ñ%×.Ñ.¨v°uÓ=Õ=ˆØt‰t}‰}˜V UÓ+Õ+ˆØˆ
r   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                ó6  € V P                  V4       VP                  p\        P                  ! R VR,          4      w  pVR,          p^@V^,          ,           pVR,          pVR,          pV^ V pW$R pV^ V pW$R pV^ V pV ! \        P
                  ! \        P                  VR4      \        P                  ! \        P                  VR4      \        P                  VR4      \        P                  VR4      4      4      P                  \        4       4      R7      # )r,   :r   r   N:r   NN:r   é   N:r@   NNNr   ©r"   )Ú!_ensure_algorithm_key_combinationr"   r0   Úunpackr   ÚDSAPublicNumbersr    r!   ÚDSAParameterNumbersÚ
public_keyr   )	Úclsr"   ÚkeyptrÚtr:   Údsa_qÚdsa_pÚdsa_gÚdsa_ys	   &&       r   Úfrom_dnskeyÚPublicDSA.from_dnskey(   sý   € à×-Ñ-¨cÔ2Ø—‘ˆÜ}Š}˜T 6¨#¥;Ó/‰ˆØ˜•ˆØa˜!•e•ˆØt•ˆØ˜•ˆØq˜Ð ˆØ˜ˆØq˜Ð ˆØ˜ˆØq˜Ð ˆÙÜ×$Ò$Ü—‘˜u eÓ,Ü×'Ò'Ü—N‘N 5¨%Ó0Ü—N‘N 5¨%Ó0Ü—N‘N 5¨%Ó0óó÷ ‰jœÓ*Ó+ô	
ð 		
r   c                ó:   <€ V ^8„  d   Qh/ S[ P                  ;R&   # ©r   r"   )r   ÚDSAPublicKey)r   r   s   "€r   r   r      s   ø‡ ‚ Ù	×	Ñ	Ñò r   © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   rR   Úkey_clsr	   ÚDSAÚ	algorithmr   ÚSHA1r$   r#   r<   ÚclassmethodrN   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__©r   s   @r   r   r      sS   ø‡ € à×Ñ€GØ—‘€IØ—+’+“-€K÷5ð 5÷ð ð ÷
ó ð
÷; ƒ r   r   c                   óz   a € ] tR t^Bt o ]P
                  t]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# )	Ú
PrivateDSAc                ó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   ÚPrivateDSA.__annotate__G   s3   ø€ ÷ ñ áðñ ðñ ð	ñ
 
ñr   c                ó2  € V P                   P                  4       pVP                  R8”  d   \        R4      hV P                   P	                  WP
                  P                  4      p\        P                  ! V4      w  rgVP                  ^,          ^@,
          ^,          p^p	\        P                  ! RV4      \        P                  WiRR7      ,           \        P                  WyRR7      ,           p
V'       d    V P                  4       P                  W¡4       V
# )z1Sign using a private key per RFC 2536, section 3.i   zDSA key size overflowr,   r   )ÚlengthÚ	byteorder)r"   rF   r.   r/   ÚsignÚ
public_clsr$   r   Údecode_dss_signaturer0   r1   r    r4   r#   )r%   r   r#   rd   Úpublic_dsa_keyÚder_signatureÚdsa_rÚdsa_sr9   r:   r   s   &&&&       r   rj   ÚPrivateDSA.signG   sá   € ð Ÿ™×,Ñ,Ó.ˆØ×"Ñ" TÔ)ÜÐ4Ó5Ð5ØŸ™Ÿ™Ø—/‘/×-Ñ-ó
ˆô ×1Ò1°-Ó@‰ˆØ×(Ñ(¨AÕ-°Õ2°qÕ8ˆØˆäKŠK˜˜eÓ$Ül‰l˜5¸5ˆlÓAõBäl‰l˜5¸5ˆlÓAõBð 	÷
 ØO‰OÓ×$Ñ$ YÔ5ØÐr   c                ó$   <€ V ^8„  d   QhRS[ RR/# )r   r.   r   rb   )r    )r   r   s   "€r   r   rf   a   s   ø€ ÷ 
ñ 
¡ð 
¨ñ 
r   c                ó>   € V ! \         P                  ! VR 7      R7      # ))r.   rA   )r   Úgenerate_private_key)rG   r.   s   &&r   ÚgenerateÚPrivateDSA.generate`   s   € áÜ×(Ò(°(Ô;ô
ð 	
r   c                ó:   <€ V ^8„  d   Qh/ S[ P                  ;R&   # rQ   )r   ÚDSAPrivateKey)r   r   s   "€r   r   rf   B   s   ø‡ ‚ Ù	×	Ñ	Ñò r   rS   N)FT)rT   rU   rV   rW   r   rx   rX   r   rk   rj   r\   ru   r]   r^   r_   r`   s   @r   rb   rb   B   s:   ø‡ € à×Ñ€GØ€J÷ò ð2 ÷
ó ð
÷? ƒ r   rb   c                   ó.   € ] tR t^gt]P
                  tRtR# )ÚPublicDSANSEC3SHA1rS   N)rT   rU   rV   rW   r	   ÚDSANSEC3SHA1rZ   r^   rS   r   r   rz   rz   g   s   † Ø×&Ñ&„Ir   rz   c                   ó   € ] tR t^kt]tRtR# )ÚPrivateDSANSEC3SHA1rS   N)rT   rU   rV   rW   rz   rk   r^   rS   r   r   r}   r}   k   s   † Ø#„Jr   r}   )r0   Úcryptography.hazmat.backendsr   Úcryptography.hazmat.primitivesr   Ú)cryptography.hazmat.primitives.asymmetricr   r   Údns.dnssecalgs.cryptographyr   r   Údns.dnssectypesr	   Údns.rdtypes.ANY.DNSKEYr   r   rb   rz   r}   rS   r   r   Ú<module>r„      sN   ðÛ å 8Ý 1ß @ç UÝ %Ý )ô3
Ð%ô 3
ôl"
Ð'ô "
ôJ'˜ô 'ô$˜*ö $r   