
    (i                     t    d dl mZ d dlmZmZmZmZmZmZ d dl	m
Z
 eZeZeZeZ G d de      Z ed      Zy)    )ValidationError)BaseSignatureLazyBackendNonRecoverableSignature
PrivateKey	PublicKey	Signature)validate_message_hashc                       e Zd ZeZeZeZe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y)KeyAPImessage_hashprivate_keyreturnc                     t        |       t        |t              st        d      | j                  j                  ||      }t        |t              st        d      |S NHThe `private_key` must be an instance of `eth_keys.datatypes.PrivateKey`zjBackend returned an invalid signature.  Return value must be an instance of `eth_keys.datatypes.Signature`)r
   
isinstancer   r   backend
ecdsa_signr	   selfr   r   	signatures       >/var/www/br/venv/lib/python3.12/site-packages/eth_keys/main.pyr   zKeyAPI.ecdsa_sign"   sc    l++z2!2  LL++L+F	)Y/!@      c                     t        |       t        |t              st        d      | j                  j                  ||      }t        |t              st        d      |S r   )r
   r   r   r   r   ecdsa_sign_non_recoverabler   r   s       r   r   z!KeyAPI.ecdsa_sign_non_recoverable1   sf     	l++z2!2  LL;;L+V	)%<=!@  r   r   
public_keyc                     t        |       t        |t              st        d      t        |t              st        d      | j
                  j                  |||      S )NzFThe `public_key` must be an instance of `eth_keys.datatypes.PublicKey`zIThe `signature` must be an instance of `eth_keys.datatypes.BaseSignature`)r
   r   r   r   r   r   ecdsa_verifyr   r   r   r   s       r   r   zKeyAPI.ecdsa_verifyB   s_     	l+*i0!X  )]3!5  ||((y*MMr   c                     t        |       t        |t              st        d      | j                  j                  ||      }t        |t              st        d      |S )NzEThe `signature` must be an instance of `eth_keys.datatypes.Signature`kBackend returned an invalid public_key.  Return value must be an instance of `eth_keys.datatypes.PublicKey`)r
   r   r	   r   r   ecdsa_recover
_PublicKeyr    s       r   r#   zKeyAPI.ecdsa_recoverQ   sa    l+)Y/!W  \\//iH
*j1!@  r   c                     t        |t              st        d      | j                  j	                  |      }t        |t
              st        d      |S )Nr   r"   )r   r   r   r   private_key_to_public_keyr   )r   r   r   s      r   r&   z KeyAPI.private_key_to_public_key_   sY    +z2!2  \\;;KH
*i0!@  r   N)__name__
__module____qualname__r   r   r	   r   bytes_PrivateKey
_Signaturer   _NonRecoverableSignaturer   r   r$   boolr   r#   r&    r   r   r   r      s    IJI5
u ; : !0;	!"N!N.;NISN	N% J : [ Z r   r   N)r   )	eth_utilsr   eth_keys.datatypesr   r   r   r   r   r	   eth_keys.validationr
   r$   r+   r,   r-   r   lazy_key_apir/   r   r   <module>r4      sK     

2 R[ Rn d#r   