
    (i                     b    d dl mZ d dlmZmZmZmZmZ ddlm	Z	m
Z
mZmZmZmZ  G d de      Zy)    )BaseECCBackend)BaseSignatureNonRecoverableSignature
PrivateKey	PublicKey	Signature   )compress_public_keydecompress_public_keyecdsa_raw_recoverecdsa_raw_signecdsa_raw_verifyprivate_key_to_public_keyc                       e Zd ZdededefdZdededefdZde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dedefdZdedefdZy)NativeECCBackendmsg_hashprivate_keyreturnc                 T    t        ||j                               }t        ||       }|S )N)vrsbackend)r   to_bytesr   )selfr   r   signature_vrs	signatures        N/var/www/br/venv/lib/python3.12/site-packages/eth_keys/backends/native/main.py
ecdsa_signzNativeECCBackend.ecdsa_sign   s)    &x1E1E1GH->	    c                 `    t        ||j                               \  }}}t        ||f|       }|S )N)rsr   )r   r   r   )r   r   r   _signature_rsignature_sr   s          r   ecdsa_sign_non_recoverablez+NativeECCBackend.ecdsa_sign_non_recoverable   s8     '5X{?S?S?U&V#;+[/ISWX	r   r   
public_keyc                 L    t        ||j                  |j                               S N)r   r    r   )r   r   r   r%   s       r   ecdsa_verifyzNativeECCBackend.ecdsa_verify#   s       ),,
8K8K8MNNr   c                 L    t        ||j                        }t        ||       }|S N)r   )r   r   r   )r   r   r   public_key_bytesr%   s        r   ecdsa_recoverzNativeECCBackend.ecdsa_recover(   s&    ,Xy}}E/>
r   c                 R    t        |j                               }t        ||       }|S r*   )r   r   r   )r   r   r+   r%   s       r   r   z*NativeECCBackend.private_key_to_public_key-   s)    4[5I5I5KL/>
r   compressed_public_key_bytesc                     t        |      S r'   )r   )r   r.   s     r   decompress_public_key_bytesz,NativeECCBackend.decompress_public_key_bytes2   s    $%@AAr   uncompressed_public_key_bytesc                     t        |      S r'   )r
   )r   r1   s     r   compress_public_key_bytesz*NativeECCBackend.compress_public_key_bytes5   s    "#@AAr   N)__name__
__module____qualname__bytesr   r   r   r   r$   r   r   boolr(   r,   r   r0   r3    r   r   r   r      s    5 z i 
,6	 OO*7OENO	O
e 	 i 
Z I 
Bu BQV BBu BQV Br   r   N)eth_keys.backends.baser   eth_keys.datatypesr   r   r   r   r   ecdsar
   r   r   r   r   r   r   r9   r   r   <module>r=      s,      B~  Br   