U
    _)c	                     @   s   d dl mZ G dd dZdd dD Zdd Zd	d
 Zedddddddd ddddgdZeddddddddd ddd dd dgd!	ZeZee ee d"S )#   )Pointc                   @   s&   e Zd ZdddZdd Zdd ZdS )	CurveFpNc
           
      C   s:   || _ || _|| _|| _t||| _|| _|	| _|| _d S N)	ABPNr   GnamenistNameoid)
selfr   r   r   r   GxGyr
   r   r    r   s/var/www/html/staging.mfahmagazine.net/magazine_api/magazine_env/lib/python3.8/site-packages/ellipticcurve/curve.py__init__   s    zCurveFp.__init__c                 C   s|   d|j   kr| jd ks"n dS d|j  kr>| jd ksDn dS |jd |j d | j|j   | j  | j dkrxdS dS )z{
        Verify if the point `p` is on the curve

        :param p: Point p = Point(x, y)
        :return: boolean
            r   F      T)xr   yr   r   )r   pr   r   r   contains   s    0zCurveFp.containsc                 C   s   dt d| j  d S )Nr   z%xr   )lenr   )r   r   r   r   length$   s    zCurveFp.length)N)__name__
__module____qualname__r   r   r   r   r   r   r   r   	   s   

r   c                 C   s   i | ]}t |j|qS r   )tupler   .0curver   r   r   
<dictcomp>(   s      r#   r   c                 C   s   | t t| j< d S r   )_curvesByOidr   r   )r"   r   r   r   add+   s    r%   c                 C   sF   | t kr>tdjddd | D ddd t  D dt |  S )NzCUnknown curve with oid {oid}; The following are registered: {names}.c                 S   s   g | ]}t |qS r   )str)r!   numberr   r   r   
<listcomp>2   s     zgetByOid.<locals>.<listcomp>z, c                 S   s   g | ]
}|j qS r   )r
   r    r   r   r   r)   3   s     )r   names)r$   	Exceptionformatjoinvalues)r   r   r   r   getByOid/   s    r/   	secp256k1r      l   /| l   AAl 3z~i9nW~ l   -lO96M:WZEuw>?3yl   T!v?B>bAP)("8p'UxI;m:Hr      
   )r
   r   r   r   r   r   r   r   
prime256v1zP-256l   ?               @ l   K`Opq^cv
3,e<1U]>{|R*Zl   ?               @ l   Q%x+Ohbi+}s   @ l   B11e	%:f=K`wrH7gHK8hkl   Q~o]l+fUg+<)Z?8O?q!Or   iH  i='  )	r
   r   r   r   r   r   r   r   r   N)	Zpointr   r   r$   r%   r/   r0   r4   Zp256r   r   r   r   <module>   s8   	