Your IP : 216.73.216.213


Current Path : /opt/alt/python35/lib/python3.5/site-packages/wheel/signatures/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib/python3.5/site-packages/wheel/signatures/__pycache__/djbec.cpython-35.pyc



/U�Uc�@s+y2edZdd�Zdd�Zdd�ZWn0ek
rddZeZeZdd�ZYnXd	d
lZdZdKZ	dMZ
dd�Zdd�Zdd�Z
dNe
d�Zede	dde	�Zdd�Zde
d�Zee�Zee	ee	gZdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�Zd4d5�Zd6d7�Z d8d9�Z!d:d;�Z"e	Z#d<Z$d=d>�Z%d?d@�Z&dAdBdC�Z'd	d
l(Z(d	dDdE�Z)dFdG�Z*dHdI�Z+d
S)OFcCsdjdd�|D��S)z(Convert array of integers to byte string�css|]}t|�VqdS)N)�chr)�.0�x�r�G/opt/alt/python35/lib/python3.5/site-packages/wheel/signatures/djbec.py�	<genexpr>szasbytes.<locals>.<genexpr>)�join)�brrr�asbytessr
cCs
dj|�S)z%Convert array of bytes to byte stringr)r)r	rrr�	joinbytessrcCst||d�|d?d@S)zReturn i'th bit of bytestring h��)�ord)�h�irrr�bitsrTcCs||d|d?d@S)Nrr
r)rrrrrrs�N�����l	�S�9i�@eM�^�w|ocCstj|�j�S)N)�hashlib�sha512�digest)�mrrr�H#srcCsJ|dkrdSt||d|�d|}|d@rF|||}|S)Nrr
r)�expmod)r	�er�trrrr&s
rcCst|tdt�S)Nr)r�q)rrrr�inv.sr!iA�iB�r
�cCs�||dtt||d�}t|tddt�}|||tdkrd|tt}|ddkr~t|}|S)Nr
�rrr)r!�drr �I)�yZxxrrrr�xrecover4s$
r'�cCs�|\}}}}|\}}}}	||||t}
||||t}|d|	t}|d|t}
|
|t}||
t}||
t}|
|t}||t}||t}||t}||t}||||fS)Nr)r )Zpt1Zpt2�X1�Y1�Z1ZT1ZX2ZY2ZZ2ZT2�A�B�C�D�E�F�Gr�X3�Y3�Z3�T3rrr�xpt_addRsr7cCs�|\}}}}||}||}d||}|t}||t}	|	|	||t}
||t}||t}||t}
|
|t}||
t}||t}|
|
t}||||fS)Nr)r )�ptr)r*r+�_r,r-r.r/�Jr0r2r1rr3r4r5r6rrr�
xpt_doublecs

r;cCs$|\}}||d||tfS)Nr
)r )r8rr&rrr�pt_xformtsr<cCs8|\}}}}|t|�t|t|�tfS)N)r!r )r8rr&�zr9rrr�
pt_unxformxsr>cCsJ|dkrtd�Stt||d?��}|d@rFt||�S|S)Nrr
)rr
)r<r;�xpt_multr7)r8�nr9rrrr?|s
r?cCsttt|�|��S)N)r>r?r<)r8rrrr�
scalarmult�srAcsL�fdd�tt�D���fdd�ttd�D�}t|�S)Ncsg|]}�|?d@�qS)r
r)rr)r&rr�
<listcomp>�s	zencodeint.<locals>.<listcomp>cs8g|].�t��fdd�td�D���qS)cs&g|]}��d||>�qS)rr)r�j)�bitsrrrrB�s	z(encodeint.<locals>.<listcomp>.<listcomp>r)�sum�range)r)rD)rrrB�s	r)rFr	r
)r&rr)rDr&r�	encodeint�srGcso|d}|d��fdd�ttd�D�|d@g��fdd�ttd�D�}t|�S)Nrr
csg|]}�|?d@�qS)r
r)rr)r&rrrB�s	zencodepoint.<locals>.<listcomp>cs8g|].�t��fdd�td�D���qS)cs&g|]}��d||>�qS)rr)rrC)rDrrrrB�s	z*encodepoint.<locals>.<listcomp>.<listcomp>r)rErF)r)rD)rrrB�s	r)rFr	r
)�Prrr)rDr&r�encodepoint�s

.rIcs]t|��dtdt�fdd�tdtd�D��}tt|�}t|�S)Nrc3s&|]}d|t�|�VqdS)rN)r)rr)rrrr�szpublickey.<locals>.<genexpr>r#)rr	rErFrAr-rI)�sk�ar,r)rr�	publickey�s8rLcs3t|��t�fdd�tdt�D��S)Nc3s&|]}d|t�|�VqdS)rN)r)rr)rrrr�szHint.<locals>.<genexpr>r)rrErFr	)rr)rr�Hint�srMcs�t|��dtdt�fdd�tdtd�D��}t�fdd�ttdtd�D��}t||�}tt|�}|tt|�||�|t	}t|�t
|�S)	Nrc3s&|]}d|t�|�VqdS)rN)r)rr)rrrr�szsignature.<locals>.<genexpr>r#csg|]}�|�qSrr)rr)rrrrB�s	zsignature.<locals>.<listcomp>rr")rr	rErFrrMrAr-rI�lrG)rrJ�pkrKZinter�r�R�Sr)rr�	signature�s80&rScCsG|d}|d}||||dt||||tdkS)Nrr
)r$r )rHrr&rrr�	isoncurve�s

rTcs&t�fdd�tdt�D��S)Nc3s&|]}d|t�|�VqdS)rN)r)rr)�srrr�szdecodeint.<locals>.<genexpr>r)rErFr	)rUr)rUr�	decodeint�srVcs�t�fdd�tdtd�D��}t|�}|d@t�td�kr_t|}||g}t|�s�td��|S)Nc3s&|]}d|t�|�VqdS)rN)r)rr)rUrrr�szdecodepoint.<locals>.<genexpr>rr
z#decoding point that is not on curve)rErFr	r'rr rT�	Exception)rUr&rrHr)rUr�decodepoint�s,
rXc	Cs�t|�tdkr"td��t|�tdkrDtd��t|dtd��}t|�}t|tdtd��}tt|�||�}tt|�}t	t
t|�tt||����}||kS)Nr"zsignature length is wrongrzpublic-key length is wrongr)�lenr	rWrXrVrMrIrAr-r>r7r<)	rUrrOrQr,rRrZv1Zv2rrr�
checkvalid�s*rZimcCsr|\}}|\}}|\}}d||||d|}	d||||d|}
|	t|
tfS)Nr"r)rH)r@rr$�xn�znZxmZzmZxd�zdrr=rrr�add�sr^cCs^|\}}|d|dd}d|||dt|||d}|t|tfS)Nrr")r,rH)r@r[r\rr=rrr�double�s*r_�	csZ|df�t������fdd���|�\\}}}|t|�tS)Nr
csn|dkr��fS�|d�\}}|d@rRt||��t|�fSt|�t||��fS)Nr
r)r^r_)rZpmZpm1)�f�one�tworrra�s

zcurve25519.<locals>.f)r_r!rH)r@�baserr=r9r)rarbrcr�
curve25519�s
recCs:|ptjdt�}|dM}|d
M}|dO}|S)
Nr��r��@i�����ll��rjl@)�random�randintrH)r@rrr�genkey�s



rmcCsnddl}ttjttt��jd�}|jd�}t|�}t|||�}t	|||�S)Nrzutf-8� )
�os�strrkrlr �encode�urandomrLrSrZ)ro�msgrJrO�sigrrr�dsa_tests%rucCs:t�}t�}t|t|��t|t|��kS)N)rmre)Zsk1Zsk2rrr�dh_test
s		rvll�����������������ll�S�9i�@eM�^�w|oi�$��),�unicode�PY3r
rr�	NameError�bytesrr	r rNrrr!r$r%r'ZByZBxr-r7r;r<r>r?rArGrIrLrMrSrTrVrXrZrHr,r^r_rerkrmrurvrrrr�<module>	s^