ó
    EÖ#iå	  ã                   óv   • % S r SSKrSSKJrJr  SSKJr  SSKJr  SSK	J
r
  \" \S5      r\\S	'    " S
 S5      rg)zModule for PBKDF2 algorithm.é    N)ÚOptionalÚUnion)ÚSHA512)ÚPBKDF2é   )Ú	AlgoUtilsÚpbkdf2_hmacÚHASHLIB_USE_PBKDF2_SHA512c                   ó`   • \ rS rSrSr\ SS\\\4   S\\\4   S\	S\
\	   S\4
S	 jj5       rS
rg)ÚPbkdf2HmacSha512é$   zO
PBKDF2 HMAC-SHA512 class.
It derives keys using PBKDF2 HMAC-SHA512 algorithm.
NÚpasswordÚsaltÚitr_numÚdklenÚreturnc                 ó:  • [         (       aA  [        R                  " S[        R                  " U 5      [        R                  " U5      X#5      $ [        [        R                  " U 5      [        R                  " U5      U=(       d    [        R                  U[        S9$ )a	  
Derive a key.

Args:
    password (str or bytes): Password
    salt (str or bytes)    : Salt
    itr_num (int)          : Iteration number
    dklen (int, optional)  : Length of the derived key (default: SHA-512 output length)

Returns:
    bytes: Computed result
Úsha512)ÚcountÚhmac_hash_module)r
   Úhashlibr	   r   ÚEncoder   r   Údigest_size)r   r   r   r   s       Új/home/james-whalen/.local/lib/python3.13/site-packages/ccxt/static_dependencies/bip/utils/crypto/pbkdf2.pyÚ	DeriveKeyÚPbkdf2HmacSha512.DeriveKey*   su   € ÷" %Ò$Ü×&Ò& x´×1AÒ1AÀ(Ó1KÌY×M]ÒM]Ð^bÓMcÐelÓtÐtä”i×&Ò& xÓ0Ü×&Ò& tÓ,Ø×1œv×1Ñ1Ø#Ü'-ñ	/ð 	/ó    © )N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ústaticmethodr   ÚbytesÚstrÚintr   r   Ú__static_attributes__r   r   r   r   r   $   sa   † ñð
 ð *.ñ/˜E %¨ *Ñ-ð /Ø˜e S˜jÑ)ð/àð/ð " #™ð/ð 38ô/ó ó/r   r   )r#   r   Útypingr   r   ÚCrypto.Hashr   ÚCrypto.Protocol.KDFr   Úmiscr   Úhasattrr
   ÚboolÚ__annotations__r   r   r   r   Ú<module>r0      s9   ðò* #ó ß "å Ý &å ñ #*¨'°=Ó"AÐ ˜4Ó A÷/ò /r   