
    (i~                         d dl Z d dlZd dlmZ d dlZd dlmZ d dlmZ d dl	m
Z
 dZ edd      Zd	eeef   d
efdZd	eeef   d
efdZded
efdZdeded
efdZdeded
efdZded
efdZy)    N)Union)keys)ValidationError)HexBytesi   GFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFE_BAAEDCE6_AF48A03B_BFD25E8C_D0364141   txtreturnc                     t        | t              r| j                  d      }nt        | t              r| }nt	        d      t        j                  d|      S )Nutf8String value expectedNFKD
isinstancebytesdecodestrr   unicodedata	normalizer	   utxts     M/var/www/br/venv/lib/python3.12/site-packages/eth_account/hdaccount/_utils.pyunicode_decompose_stringr      H    #uzz&!	C	566  ..    c                     t        | t              r| j                  d      }nt        | t              r| }nt	        d      t        j                  d|      S )Nr   r   NFKCr   r   s     r   unicode_compose_stringr   #   r   r   datac                 H    t        j                  |       j                         S )N)hashlibsha256digest)r   s    r   r"   r"   .   s    >>$&&((r   
chain_codec                 h    t        j                  | |t        j                        j	                         S )zI
    As specified by RFC4231 - https://tools.ietf.org/html/rfc4231 .
    )hmacnewr!   sha512r#   )r$   r   s     r   hmac_sha512r)   2   s$     88Jgnn5<<>>r   passcodesaltc                 v    t        j                  d| j                  d      |j                  d      t              S )Nr(   zutf-8)r!   pbkdf2_hmacencodePBKDF2_ROUNDS)r*   r+   s     r   pbkdf2_hmac_sha512r0   9   s3     G	 r   pkeyc                 n    t        j                  t        |             j                  j	                         S )z
    Compute `point(p)`, where `point` is ecdsa point multiplication.

    Note: Result is ecdsa public key serialized to compressed form
    )r   
PrivateKeyr   
public_keyto_compressed_bytes)r1   s    r   ec_pointr6   B   s&     ??8D>*55IIKKr   )r!   r&   typingr   r   eth_keysr   	eth_utilsr   hexbytesr   r/   intSECP256K1_Nr   r   r   r   r"   r)   r0   r6    r   r   <module>r>      s       Mr
/%U
"3 / //c5j 1 /c /) )5 )?E ? ?5 ? C E L5 LU Lr   