Ë
    ¶�/j8-  ã                   ó   — d Z ddlZddlZddlZddlZddlZddlZddlZddl	Zddl
Z G d„ dej                  j                  «      Z G d„ dej                  j                  «      Z G d„ dej                  j                  «      Z G d	„ d
ej                  j                  «      Z G d„ dej                  j                  «      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Zej,                  j/                  d«      Zej,                  j/                  d«      Zej,                  j/                  d«      Zej,                  j/                  d«      Zej,                  j/                  d«      Zej,                  j/                  d«      Zej,                  j/                  d«      Zej,                  j/                  d«      Zej,                  j/                  d«      Z ej,                  j/                  d«      Z!eZ"eded ed!ed"ed#ed$ed%e d!ed"e!d&i
Z# G d'„ d(«      Z$ G d)„ d*«      Z% G d+„ d,«      Z&d4d-„Z'd.„ Z(d5d/„Z)	 d6d0„Z*d1„ Z+ G d2„ d3«      Z,y)7zDNS TSIG support.é    Nc                   ó   — e Zd ZdZy)ÚBadTimez8The current time is not within the TSIG's validity time.N©Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    úJC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\dns/tsig.pyr   r       s   „ ÚBr   r   c                   ó   — e Zd ZdZy)ÚBadSignaturez#The TSIG signature fails to verify.Nr   r
   r   r   r   r   $   s   „ Ú-r   r   c                   ó   — e Zd ZdZy)ÚBadKeyz2The TSIG record owner name does not match the key.Nr   r
   r   r   r   r   (   s   „ Ú<r   r   c                   ó   — e Zd ZdZy)ÚBadAlgorithmz*The TSIG algorithm does not match the key.Nr   r
   r   r   r   r   ,   ó   „ Ú4r   r   c                   ó   — e Zd ZdZy)Ú	PeerErrorz;Base class for all TSIG errors generated by the remote peerNr   r
   r   r   r   r   0   s   „ ÚEr   r   c                   ó   — e Zd ZdZy)Ú
PeerBadKeyz$The peer didn't know the key we usedNr   r
   r   r   r   r   4   s   „ Ú.r   r   c                   ó   — e Zd ZdZy)ÚPeerBadSignaturez*The peer didn't like the signature we sentNr   r
   r   r   r   r   8   r   r   r   c                   ó   — e Zd ZdZy)ÚPeerBadTimez%The peer didn't like the time we sentNr   r
   r   r   r   r   <   s   „ Ú/r   r   c                   ó   — e Zd ZdZy)ÚPeerBadTruncationz=The peer didn't like amount of truncation in the TSIG we sentNr   r
   r   r   r   r   @   s   „ ÚGr   r   zHMAC-MD5.SIG-ALG.REG.INTz	hmac-sha1zhmac-sha224zhmac-sha256zhmac-sha256-128zhmac-sha384zhmac-sha384-192zhmac-sha512zhmac-sha512-256úgss-tsigé   é   é    é   é0   é   é@   é€   c                   ó(   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zy)ÚGSSTSigaG  
    GSS-TSIG TSIG implementation.  This uses the GSS-API context established
    in the TKEY message handshake to sign messages using GSS-API message
    integrity codes, per the RFC.

    In order to avoid a direct GSSAPI dependency, the keyring holds a ref
    to the GSSAPI object required, rather than the key itself.
    c                 ó.   — || _         d| _        d| _        y )Nr   r   )Úgssapi_contextÚdataÚname)Úselfr*   s     r   Ú__init__zGSSTSig.__init__k   s   € Ø,ˆÔØˆŒ	Øˆ�	r   c                 ó.   — | xj                   |z  c_         y ©N)r+   ©r-   r+   s     r   ÚupdatezGSSTSig.updatep   s   € Ø�	Š	�TÑŽ	r   c                 óL   — | j                   j                  | j                  «      S r0   )r*   Úget_signaturer+   )r-   s    r   ÚsignzGSSTSig.signs   s   € à×"Ñ"×0Ñ0°·±Ó;Ð;r   c                 óv   — 	 | j                   j                  | j                  |«      S # t        $ r t        ‚w xY wr0   )r*   Úverify_signaturer+   Ú	Exceptionr   )r-   Úexpecteds     r   ÚverifyzGSSTSig.verifyw   s9   € ð	à×&Ñ&×7Ñ7¸¿	¹	À8ÓLÐLøÜò 	äÐð	ús   ‚%( ¨8N)r   r   r   r	   r.   r2   r5   r:   r
   r   r   r(   r(   a   s   „ ñòò
ò<ór   r(   c                   ó(   — e Zd Zd„ Zd„ Zed„ «       Zy)ÚGSSTSigAdapterc                 ó   — || _         y r0   )Úkeyring)r-   r>   s     r   r.   zGSSTSigAdapter.__init__�   s	   € Øˆ�r   c                 óº   — || j                   v rM| j                   |   }t        |t        «      r,|j                  t        k(  r|rt
        j                  |||«       |S y r0   )r>   Ú
isinstanceÚKeyÚ	algorithmÚGSS_TSIGr<   Úparse_tkey_and_step)r-   ÚmessageÚkeynameÚkeys       r   Ú__call__zGSSTSigAdapter.__call__„   sN   € Ø�d—l‘lÑ"Ø—,‘,˜wÑ'ˆCÜ˜#œsÔ#¨¯©¼Ò(AÙÜ"×6Ñ6°s¸GÀWÔMØˆJàr   c                 ó  — 	 |j                  |j                  |t        j                  j                  t        j
                  j                  «      }|r,|d   j                  }|j                  }|j                  |«      S y # t        $ r Y y w xY w)Nr   )Ú
find_rrsetÚanswerÚdnsÚ
rdataclassÚANYÚ	rdatatypeÚTKEYrG   ÚsecretÚstepÚKeyError)ÚclsrG   rE   rF   ÚrrsetÚtokenr*   s          r   rD   z"GSSTSigAdapter.parse_tkey_and_stepŽ   s}   € ð		Ø×&Ñ&Ø—‘ ¬¯©×);Ñ);¼S¿]¹]×=OÑ=OóˆEñ Ø˜a™Ÿ™�Ø!$§¡�Ø%×*Ñ*¨5Ó1Ð1ð øô ò 	Ùð	ús   ‚A;A? Á?	BÂ
BN)r   r   r   r.   rH   ÚclassmethodrD   r
   r   r   r<   r<   €   s    „ òòð ñó ñr   r<   c                   ó  — e Zd ZdZeej                  eej                  e	ej                  eej                  dfeej                  eej                  dfeej                   eej                   dfeej&                  i	Zd„ Zd„ Zd„ Zd„ Zy	)
ÚHMACTSigzo
    HMAC TSIG implementation.  This uses the HMAC python module to handle the
    sign/verify operations.
    r&   éÀ   é   c                 óª  — 	 | j                   |   }t        |t        «      r*t        j                  ||d   ¬«      | _        |d   | _        n#t        j                  ||¬«      | _        d | _        | j                  j                  | _	        | j                  r#| xj                  d| j                  › �z  c_	        y y # t        $ r t        d|› d�«      ‚w xY w)NzTSIG algorithm z is not supportedr   )Ú	digestmodé   Ú-)
Ú_hashesrS   ÚNotImplementedErrorr@   ÚtupleÚhmacÚnewÚhmac_contextÚsizer,   )r-   rG   rB   Úhashinfos       r   r.   zHMACTSig.__init__²   s½   € ð	VØ—|‘| IÑ.ˆHô
 �h¤Ô&Ü $§¡¨¸À¹Ô DˆDÔØ  ™ˆD�Iä $§¡¨¸Ô AˆDÔØˆDŒIØ×%Ñ%×*Ñ*ˆŒ	Ø�9Š9Ø�IŠI˜1˜TŸY™Y˜K˜Ñ(ŽIð øô ò 	VÜ%¨¸	°{ÐBSÐ&TÓUÐUð	Vús   ‚B9 Â9Cc                 ó8   — | j                   j                  |«      S r0   )re   r2   r1   s     r   r2   zHMACTSig.updateÃ   s   € Ø× Ñ ×'Ñ'¨Ó-Ð-r   c                 óv   — | j                   j                  «       }| j                  r|d | j                  dz   }|S )Né   )re   Údigestrf   )r-   rk   s     r   r5   zHMACTSig.signÆ   s7   € à×"Ñ"×)Ñ)Ó+ˆØ�9Š9ØÐ.˜tŸy™y¨A™~Ð/ˆFØˆr   c                 ó\   — | j                  «       }t        j                  ||«      st        ‚y r0   )r5   rc   Úcompare_digestr   )r-   r9   Úmacs      r   r:   zHMACTSig.verifyÍ   s(   € à�i‰i‹kˆÜ×"Ñ" 3¨Ô1ÜÐð 2r   N)r   r   r   r	   Ú	HMAC_SHA1ÚhashlibÚsha1ÚHMAC_SHA224Úsha224ÚHMAC_SHA256Úsha256ÚHMAC_SHA256_128ÚHMAC_SHA384Úsha384ÚHMAC_SHA384_192ÚHMAC_SHA512Úsha512ÚHMAC_SHA512_256ÚHMAC_MD5Úmd5r`   r.   r2   r5   r:   r
   r   r   rY   rY       s„   „ ñð 	�7—<‘<Ø�W—^‘^Ø�W—^‘^Ø˜'Ÿ.™.¨#Ð.Ø�W—^‘^Ø˜'Ÿ.™.¨#Ð.Ø�W—^‘^Ø˜'Ÿ.™.¨#Ð.Ø�'—+‘+ð
€Gò)ò".òór   rY   c                 ó  — |xr | }|rLt        |«      }|r?|j                  t        j                  dt	        |«      «      «       |j                  |«       |€J ‚|j                  t        j                  d|j
                  «      «       |j                  | dd «       |r‹|j                  |j                  j                  «       «       |j                  t        j                  dt        j                  j                  «      «       |j                  t        j                  dd«      «       |€|j                  }|dz	  dz  }|dz  }	t        j                  d	||	|j                  «      }
t	        |j                  «      }|dkD  rt        d
«      ‚|rk|j                  |j                  j                  «       |
z   «       |j                  t        j                  d|j                   |«      |j                  z   «       |S |j                  |
«       |S )zòReturn a context containing the TSIG rdata for the input parameters
    @rtype: dns.tsig.HMACTSig or dns.tsig.GSSTSig object
    @raises ValueError: I{other_data} is too long
    @raises NotImplementedError: I{algorithm} is not supported
    ú!HNé   z!Ir   r!   iÿÿ  l   ÿÿ z!HIHz TSIG Other Data is > 65535 bytesz!HH)Úget_contextr2   ÚstructÚpackÚlenÚoriginal_idr,   Úto_digestablerL   rM   rN   Útime_signedÚfudgeÚotherÚ
ValueErrorrB   Úerror)ÚwirerG   ÚrdataÚtimeÚrequest_macÚctxÚmultiÚfirstÚ
upper_timeÚ
lower_timeÚtime_encodedÚ	other_lens               r   Ú_digestr˜   Ô   s˜  € ð ’˜Ð€EÙÜ˜#ÓˆÙØ�J‰J”v—{‘{ 4¬¨[Ó)9Ó:Ô;Ø�J‰J�{Ô#Øˆ?Ðˆ?Ø‡J�JŒv�{‰{˜4 ×!2Ñ!2Ó3Ô4Ø‡J�Jˆt�A�BˆxÔÙØ�
‰
�3—8‘8×)Ñ)Ó+Ô,Ø�
‰
”6—;‘;˜t¤S§^¡^×%7Ñ%7Ó8Ô9Ø�
‰
”6—;‘;˜t QÓ'Ô(Ø€|Ø× Ñ ˆØ˜"‘* Ñ&€JØ˜
Ñ"€JÜ—;‘;˜v z°:¸u¿{¹{ÓK€LÜ�E—K‘KÓ €IØ�5ÒÜÐ;Ó<Ð<ÙØ�
‰
�3—=‘=×.Ñ.Ó0°<Ñ?Ô@Ø�
‰
”6—;‘;˜u e§k¡k°9Ó=ÀÇÁÑKÔLð €Jð 	�
‰
�<Ô Ø€Jr   c                 ó    — |rLt        | «      }|j                  t        j                  dt	        |«      «      «       |j                  |«       |S y)z�If this is the first message in a multi-message sequence,
    start a new context.
    @rtype: dns.tsig.HMACTSig or dns.tsig.GSSTSig object
    r€   N)r‚   r2   rƒ   r„   r…   )rG   rn   r’   r‘   s       r   Ú_maybe_start_digestrš   ø   s?   € ñ
 Ü˜#ÓˆØ�
‰
”6—;‘;˜t¤S¨£XÓ.Ô/Ø�
‰
�3ŒØˆ
àr   c           	      óˆ   — t        | ||||||«      }|j                  «       }|j                  ||¬«      }|t        |||«      fS )a~  Return a (tsig_rdata, mac, ctx) tuple containing the HMAC TSIG rdata
    for the input parameters, the HMAC MAC calculated by applying the
    TSIG signature algorithm, and the TSIG digest context.
    @rtype: (string, dns.tsig.HMACTSig or dns.tsig.GSSTSig object)
    @raises ValueError: I{other_data} is too long
    @raises NotImplementedError: I{algorithm} is not supported
    )rˆ   rn   )r˜   r5   Úreplacerš   )	r�   rG   rŽ   r�   r�   r‘   r’   rn   Útsigs	            r   r5   r5     sL   € ô �$˜˜U D¨+°s¸EÓ
B€CØ
�(‰(‹*€CØ�=‰= T¨sˆ=Ó3€DàÔ% c¨3°Ó6Ð7Ð7r   c	           	      ó¾  — t        j                  d| dd «      \  }	|	dk(  rt        j                  j                  ‚|	dz  }	| dd t        j
                  d|	«      z   | d| z   }
|j                  dk7  rÌ|j                  t        j                  j                  k(  rt        ‚|j                  t        j                  j                  k(  rt        ‚|j                  t        j                  j                  k(  rt        ‚|j                  t        j                  j                  k(  rt        ‚t!        d|j                  › �«      ‚t#        |j$                  |z
  «      |j&                  kD  rt(        ‚|j*                  |k7  rt,        ‚|j.                  |j.                  k7  rt0        ‚t3        |
||d|||«      }|j5                  |j6                  «       t9        ||j6                  |«      S )aF  Validate the specified TSIG rdata against the other input parameters.

    @raises FormError: The TSIG is badly formed.
    @raises BadTime: There is too much time skew between the client and the
    server.
    @raises BadSignature: The TSIG signature did not validate
    @rtype: dns.tsig.HMACTSig or dns.tsig.GSSTSig objectr€   é
   é   r   r^   zunknown TSIG error code N)rƒ   ÚunpackrL   Ú	exceptionÚ	FormErrorr„   rŒ   ÚrcodeÚBADSIGr   ÚBADKEYr   ÚBADTIMEr   ÚBADTRUNCr   r   Úabsrˆ   r‰   r   r,   r   rB   r   r˜   r:   rn   rš   )r�   rG   ÚownerrŽ   Únowr�   Ú
tsig_startr‘   r’   ÚadcountÚnew_wires              r   Úvalidater¯     sw  € ô —‘˜t T¨"¨R [Ó1�J€WØ�!‚|Ü�m‰m×%Ñ%Ð%Øˆq�L€GØ�A�bˆzœFŸK™K¨¨gÓ6Ñ6¸¸bÀÐ9LÑL€HØ‡{�{�aÒØ�;‰;œ#Ÿ)™)×*Ñ*Ò*Ü"Ð"Ø�[‰[œCŸI™I×,Ñ,Ò,ÜÐØ�[‰[œCŸI™I×-Ñ-Ò-ÜÐØ�[‰[œCŸI™I×.Ñ.Ò.Ü#Ð#äÐ6°u·{±{°mÐDÓEÐEÜ
ˆ5×Ñ˜sÑ"Ó# e§k¡kÒ1ÜˆØ
‡x�x�5ÒÜˆØ
‡}�}˜Ÿ™Ò'ÜÐÜ
�(˜C ¨¨k¸3ÀÓ
F€CØ‡J�Jˆu�y‰yÔÜ˜s E§I¡I¨uÓ5Ð5r   c                 ó’   — | j                   t        k(  rt        | j                  «      S t	        | j                  | j                   «      S )zŒReturns an HMAC context for the specified key.

    @rtype: HMAC context
    @raises NotImplementedError: I{algorithm} is not supported
    )rB   rC   r(   rQ   rY   )rG   s    r   r‚   r‚   <  s4   € ð ‡}�}œÒ Ü�s—z‘zÓ"Ð"ä˜Ÿ
™
 C§M¡MÓ2Ð2r   c                   ó’   — e Zd Zefdej
                  j                  ez  deez  dej
                  j                  ez  fd„Z	d„ Z
d„ Zy)rA   r,   rQ   rB   c                 óP  — t        |t        «      rt        j                  j	                  |«      }|| _        t        |t        «      r#t        j                  |j                  «       «      }|| _        t        |t        «      rt        j                  j	                  |«      }|| _	        y r0   )
r@   ÚstrrL   r,   Ú	from_textÚbase64ÚdecodebytesÚencoderQ   rB   )r-   r,   rQ   rB   s       r   r.   zKey.__init__J  su   € ô �dœCÔ Ü—8‘8×%Ñ% dÓ+ˆDØˆŒ	Ü�fœcÔ"Ü×'Ñ'¨¯©«Ó8ˆFØˆŒÜ�i¤Ô%ÜŸ™×*Ñ*¨9Ó5ˆIØ"ˆ�r   c                 óÄ   — t        |t        «      xrO | j                  |j                  k(  xr4 | j                  |j                  k(  xr | j                  |j                  k(  S r0   )r@   rA   r,   rQ   rB   )r-   rŠ   s     r   Ú__eq__z
Key.__eq__Z  sR   € ä�uœcÓ"ò 2Ø—	‘	˜UŸZ™ZÑ'ò2à—‘˜uŸ|™|Ñ+ò2ð —‘ %§/¡/Ñ1ð		
r   c                 óà   — d| j                   › d�d| j                  › d�z   }| j                  t        k7  r4|dt        j                  | j
                  «      j                  «       › d�z  }|dz  }|S )Nz<DNS key name='z', zalgorithm='Ú'z
, secret='Ú>)r,   rB   rC   rµ   Ú	b64encoderQ   Údecode)r-   Úrs     r   Ú__repr__zKey.__repr__b  sm   € Ø˜dŸi™i˜[¨Ð,°¸T¿^¹^Ð<LÈAÐ/NÑNˆØ�>‰>œXÒ%Ø�:œf×.Ñ.¨t¯{©{Ó;×BÑBÓDÐEÀQÐGÑGˆAØ	ˆS‰ˆØˆr   N)r   r   r   Údefault_algorithmrL   r,   ÚNamer³   Úbytesr.   r¹   rÀ   r
   r   r   rA   rA   I  sP   „ ð
 *;ñ	#à�h‰h�m‰m˜cÑ!ð#ð ˜‘ð#ð —8‘8—=‘= 3Ñ&ó	#ò 
ór   rA   )NNNN)NNNF)NF)-r	   rµ   rp   rc   rƒ   Údns.exceptionrL   Údns.nameÚ	dns.rcodeÚdns.rdataclassÚdns.rdatatyper¢   ÚDNSExceptionr   r   r   r   r   r   r   r   r   r,   r´   r}   ro   rr   rt   rv   rw   ry   rz   r|   rC   rÁ   Ú	mac_sizesr(   r<   rY   r˜   rš   r5   r¯   r‚   rA   r
   r   r   Ú<module>rË      s$  ðñ$ ã Û Û Û ã Û Û Û Û ôCˆc�m‰m×(Ñ(ô Cô.�3—=‘=×-Ñ-ô .ô=ˆS�]‰]×'Ñ'ô =ô5�3—=‘=×-Ñ-ô 5ôF�—‘×*Ñ*ô Fô/�ô /ô5�yô 5ô0�)ô 0ôH˜	ô Hð �8‰8×ÑÐ8Ó9€Ø�H‰H×Ñ˜{Ó+€	Ø�h‰h× Ñ  Ó/€Ø�h‰h× Ñ  Ó/€Ø—(‘(×$Ñ$Ð%6Ó7€Ø�h‰h× Ñ  Ó/€Ø—(‘(×$Ñ$Ð%6Ó7€Ø�h‰h× Ñ  Ó/€Ø—(‘(×$Ñ$Ð%6Ó7€Ø�8‰8×Ñ˜jÓ)€àÐ ð ˆrØ�Ø�Ø�RØ�Ø�RØ�Ø�RØˆbØˆcð€	÷ñ ÷>ñ ÷@1ñ 1óh!òHó8ð" LQó#6òL
3÷ò r   