
    Ii                     ^    S SK Jr  SSKJr  SSKJr  SSKJr  SSKJ	r	  SSK
7   " S S	5      rg
)    )sha256   )	Signature)Math)RandomInteger)numberFromByteString)*c                   @    \ rS rSr\\4S j5       r\\4S j5       rSrg)Ecdsa	   c                    U" [        U5      5      R                  5       n[        U5      nUR                  nSu  pxn	US:X  d  US:X  a  [        R
                  " SUR                  S-
  5      n
[        R                  " UR                  XR                  UR                  UR                  S9n	U	R                  UR                  -  nXWUR                  -  -   [        R                  " XR                  5      -  UR                  -  nUS:X  a  M  US:X  a  M  U	R                  S-  nU	R                  UR                  :  a  US-  n[!        XxUS9$ )N)r   r   Nr   r   )nAPN   )rs
recoveryId)toBytesdigestr   curver   betweenr   r   multiplyGr   r   xsecretinvyr   )clsmessage
privateKeyhashfuncbyteMessagenumberMessager   r   r   randSignPointrandNumr   s               9/venv/lib/python3.13/site-packages/ellipticcurve/ecdsa.pysign
Ecdsa.sign   s   ww/0779,[9  (m1fQ#++Auww{;G MM%''W577V[V]V]^M%'')Aj&7&7"77DHHWgg<VW[`[b[bbA	 1fQ
 #__q(
??UWW$!OJ1j99    c                 J   U" [        U5      5      R                  5       n[        U5      nUR                  nUR                  nUR
                  n	SUs=::  a  UR                  S-
  ::  d   g  gSU	s=::  a  UR                  S-
  ::  d   g  g[        R                  " XR                  5      n
[        R                  " UR                  Xj-  UR                  -  UR                  UR                  UR                  S9n[        R                  " UR                  X-  UR                  -  UR                  UR                  UR                  S9n[        R                  " XUR                  UR                  S9nUR                  5       (       a  gUR                   UR                  -  U:H  $ )Nr   F)r   r   r   r   )r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   pointaddisAtInfinityr   )r    r!   	signature	publicKeyr#   r$   r%   r   r   r   r   u1u2vs                 r(   verifyEcdsa.verify   sA   ww/0779,[9KKKKA$1$ %A$1$ %hhq''"]]577}':egg&ETYT[T[_d_f_fg]]9??qw%''.AUWWPUPWPW[`[b[bcHHRuww%''2>>ssUWW}!!r+    N)	__name__
__module____qualname____firstlineno__classmethodr   r)   r5   __static_attributes__r7   r+   r(   r   r   	   s.    06 : :" <B " "r+   r   N)hashlibr   r0   r   mathr   utils.integerr   utils.binaryr   utils.compatibilityr   r7   r+   r(   <module>rC      s!        ( . "%" %"r+   