
    ÿig{                     >    d dl mZ ddlmZ ddlmZmZmZ d Zd Z	dS )   )_Curve    )Integer)load_pycryptodome_raw_libVoidPointerSmartPointerc                      dd} t          dd           G fddt                    }fd}t          t                    d t          |           t          d          d d d	d
d dd ||          }|S )Nl   l   S9i@eM^w|o                z Cryptodome.PublicKey._curve25519a  
typedef void Point;

int curve25519_new_point(Point **out,
                         const uint8_t x[32],
                         size_t modsize,
                         const void* context);
int curve25519_clone(Point **P, const Point *Q);
void curve25519_free_point(Point *p);
int curve25519_get_x(uint8_t *xb, size_t modsize, Point *p);
int curve25519_scalar(Point *P, const uint8_t *scalar, size_t scalar_len, uint64_t seed);
int curve25519_cmp(const Point *ecp1, const Point *ecp2);
c                   d    e Zd Z j        Z j        Z j        Z j	        Z
 j        Z j        ZdS )curve25519_curve.<locals>.EcLibN)__name__
__module____qualname__curve25519_new_point	new_pointcurve25519_cloneclonecurve25519_free_point
free_pointcurve25519_get_xget_xcurve25519_scalarscalarcurve25519_cmpcmp)_curve25519_libs   \/var/www/html/afkarena/venv/lib/python3.11/site-packages/Cryptodome/PublicKey/_montgomery.pyEcLibr      s?        #8	0$:
0 2,    r   c                     dz  }d}d}dd||dz
  dz   |z   |z   |dz
  ||dz   f}	 | j         |v}n# t          $ r d}Y nw xY w|st          d          d S )N   l   kxujaj\~|ObjZs	oP,E$ l   _+yBb$:6gw[8cph[DS7OWr   r   FzInvalid Curve25519 public keyx
ValueError)pointp2x1x2	deny_listvalidps         r   _validate_x25519_pointz0curve25519_curve.<locals>._validate_x25519_point$   s    UXZ EEFFFF
		G9,EE 	 	 	EEE	  	><===	> 	>s   	6 AA	      z1.3.101.110
Curve25519)r   objectr   r   )orderr   r+   
curve25519r   r*   s       @@r   curve25519_curver2   
   s    JANE/0R U  O- - - - - - - - - -> > > > >< 



%$. J r   c                     dd} t          dd           G fddt                    }t                      }|                    |                                          }|rt          d|z            fd}t          t                    d t          |           t          d	          d d d
dt          |	                                |j
                  dd ||          }|S )Nl   ?l   DVJ
Ru8a6!m,&vD}D2_zCryptodome.PublicKey._curve448a  
typedef void Curve448Context;
typedef void Curve448Point;

int curve448_new_context(Curve448Context **pec_ctx);
void curve448_free_context(Curve448Context *ec_ctx);
int curve448_new_point(Curve448Point **out,
                       const uint8_t *x,
                       size_t len,
                       const Curve448Context *ec_ctx);
void curve448_free_point(Curve448Point *p);
int curve448_clone(Curve448Point **P, const Curve448Point *Q);
int curve448_get_x(uint8_t *xb, size_t modsize, const Curve448Point *p);
int curve448_scalar(Curve448Point *P, const uint8_t *scalar, size_t scalar_len, uint64_t seed);
int curve448_cmp(const Curve448Point *ecp1, const Curve448Point *ecp2);
c                       e Zd Z j        Z j        Z j        Z j	        Z
 j        Z j        Z j        Z j        ZdS )curve448_curve.<locals>.EcLibN)r   r   r   curve448_new_contextnew_contextcurve448_free_contextfree_contextcurve448_new_pointr   curve448_cloner   curve448_free_pointr   curve448_get_xr   curve448_scalarr   curve448_cmpr   )_curve448_libs   r   r   r5   i   sO        #8$:!4	,"6
,.(r   r   z&Error %d initializing Curve448 contextc                 ~    dddz
  dz   f}	 | j         |v}n# t          $ r d}Y nw xY w|st          d          d S )Nr   r   FzInvalid Curve448 public keyr!   )r$   r(   r)   r*   s      r   _validate_x448_pointz,curve448_curve.<locals>._validate_x448_pointx   s{    EE
		G9,EE 	 	 	EEE	  	<:;;;	< 	<s   	 ))   i  z1.3.101.111Curve448)r   r/   r   r7   
address_ofImportErrorr   r   r   getr9   )r0   r   curve448_contextresultrB   curve448r@   r*   s         @@r   curve448_curverK   T   s&   zA~E-.N Q  M") ) ) ) ) ) ) ) ) ) #}}/::<<==F MBVKLLL< < < < <" gajjennajj#"#3#7#7#9#95;MNN * H Or   N)
_curver   Cryptodome.Math.Numbersr   Cryptodome.Util._raw_apir   r   r   r2   rK    r   r   <module>rP      s          + + + + + +0 0 0 0 0 0 0 0 0 0G G GTD D D D Dr   