
    E#i                    h    S SK Jr  S SKJr  S SKJr  S SKJrJr  S SK	J
r
Jr   " S S5      r\" SS	9rg
)    )annotations)urandom)Lock)ffilib)CONTEXT_FLAGSCONTEXT_NONEc                  J   ^  \ rS rSrS\S4SS jjrS	S
S jjrU 4S jrSrU =r	$ )Context
   N c                    U[         ;  a  U S3n[        U5      e[        5       U l        [        R
                  " [        R                  " U5      [        R                  5      U l	        U R                  U5        X0l        g )Nz is an invalid context flag.)r   
ValueErrorr   _lockr   gcr   secp256k1_context_createsecp256k1_context_destroyctxreseedname)selfseedflagr   msgs        K/home/james-whalen/.local/lib/python3.13/site-packages/coincurve/context.py__init__Context.__init__   s^    }$F67CS/!V
66#66t<c>[>[\D	    c                ,   U R                      U(       a  [        U5      S:w  a  [        S5      OUn[        R                  " U R
                  [        R                  " SU5      5      nU(       d  Sn[        U5      e SSS5        g! , (       d  f       g= f)zG
Protects against certain possible future side-channel timing attacks.
    zunsigned char [32]secp256k1_context_randomizeN)	r   lenr   r   r!   r   r   newr   )r   r   resr   s       r   r   Context.reseed   sf     ZZ&*c$i2o72;4D11$((CGGDXZ^<_`C3 o%  ZZs   A.B
Bc                F   > U R                   =(       d    [        TU ]	  5       $ N)r   super__repr__)r   	__class__s    r   r)   Context.__repr__!   s    yy.EG,..r   )r   r   r   )r   bytes | Noner   strr'   )r   r,   )
__name__
__module____qualname____firstlineno__r	   r   r   r)   __static_attributes____classcell__)r*   s   @r   r   r   
   s    ,0|QS 		&/ /r   r   GLOBAL_CONTEXT)r   N)
__future__r   osr   	threadingr   coincurve._libsecp256k1r   r   coincurve.flagsr   r	   r   r4    r   r   <module>r;      s+    "   , 7/ /6 ./r   