
    di                    |    d dl mZ d dlmZ d dlmZ d dlmZmZ d dl	m
Z
mZ  G d d          Z ed	          Zd
S )    )annotations)urandom)Lock)ffilib)CONTEXT_FLAGSCONTEXT_NONEc                  8     e Zd Zdedfd
dZdddZ fd	Z xZS )ContextN seedbytes | Nonenamestrc                
   |t           vr| d}t          |          t                      | _        t	          j        t          j        |          t          j                  | _	        | 
                    |           || _        d S )Nz is an invalid context flag.)r   
ValueErrorr   _lockr   gcr   secp256k1_context_createsecp256k1_context_destroyctxreseedr   )selfr   flagr   msgs        O/var/www/html/volatility/venv/lib/python3.11/site-packages/coincurve/context.py__init__zContext.__init__   sp    }$$777CS//!VV
6#6t<<c>[\\D			    c                   | j         5  |rt          |          dk    rt          d          n|}t          j        | j        t          j        d|                    }|sd}t          |          	 ddd           dS # 1 swxY w Y   dS )zW
        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   zContext.reseed   s     Z 	& 	&&*Gc$ii2oo72;;;4D1$(CGDXZ^<_<_``C &3 oo%&	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&s   A'A==BBc                R    | j         pt                                                      S N)r   super__repr__)r   	__class__s    r   r(   zContext.__repr__!   s     y.EGG,,...r   )r   r   r   r   r&   )r   r   )__name__
__module____qualname__r	   r   r   r(   __classcell__)r)   s   @r   r   r   
   sr        ,0|QS 	 	 	 	 		& 	& 	& 	& 	&/ / / / / / / / /r   r   GLOBAL_CONTEXT)r   N)
__future__r   osr   	threadingr   coincurve._libsecp256k1r   r   coincurve.flagsr   r	   r   r.    r   r   <module>r5      s    " " " " " "             , , , , , , , , 7 7 7 7 7 7 7 7/ / / / / / / /6 .///r   