U
    qŁ\jK  ć                    @   sj   d Z ddlZddddddd	d
dddddddddddddddddddddd d!d"g Zd#d$ Zed%krfe  dS )&zFpasslib.utils.scrypt._gen_files - meta script that generates _salsa.pyé    N)é   r   é   é   )é   r   r   é	   )r   r   r   é   )r   r   r   é   )r   é   é   r   )r   r   r	   r   )r
   r   r   r   )r	   r
   r   r   )é   é
   é   r   )é   r   r   r   )r   r   r   r   )r   r   r   r   )é   é   é   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r
   r   r   r   )r   r
   r   r   )r   r   r
   r   )r   r   r   r   )r   r	   r   r   )r   r   r	   r   )r   r   r   r   )r	   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   c                  C   s  t j t j t”d”} t| d}|j}dd tdD }d}d}d}d	 d
d tdD ”}d	 |”}t||d}	|d|	  t	t
D ]P\}
\} }}}|dt|
||| || || ||  dd| > d |d| d
  q|d tdD ]}
||d|
|
|
f   qč|d|	  d S )Nz	_salsa.pyŚwc                 S   s   g | ]}d | qS )zv%d© ©Ś.0Śir   r   śW/root/pica-gateway/venv/lib/python3.8/site-packages/passlib/crypto/scrypt/_gen_files.pyŚ
<listcomp>S   s     zmain.<locals>.<listcomp>é   z    z        z            z, c                 s   s   | ]}d | V  qdS )zb%dNr   r   r   r   r   Ś	<genexpr>X   s     zmain.<locals>.<genexpr>)ŚVLISTŚTLISTa  """passlib.utils.scrypt._salsa - salsa 20/8 core, autogenerated by _gen_salsa.py"""
#=================================================================
# salsa function
#=================================================================

def salsa20(input):
    """apply the salsa20/8 core to the provided input

    :args input: input list containing 16 32-bit integers
    :returns: result list containing 16 32-bit integers
    """

    %(TLIST)s = input
    %(VLIST)s = \
        %(TLIST)s

    i = 0
    while i < 4:
zĄ        # salsa op %(idx)d: [%(it)d] ^= ([%(is1)d]+[%(is2)d])<<<%(rot1)d
        t = (%(src1)s + %(src2)s) & 0xffffffff
        %(dst)s ^= ((t & 0x%(rmask)08x) << %(rot1)d) | (t >> %(rot2)d)

r
   é    )
ŚidxZis1Zis2ŚitZsrc1Zsrc2ŚdstZrmaskZrot1Zrot2z        i += 1

zb%d = (b%d + v%d) & 0xffffffff
z£
    return %(TLIST)s

#=================================================================
# eof
#=================================================================
)ŚosŚpathŚjoinŚdirnameŚ__file__ŚfileŚwriteŚrangeŚdictŚ	enumerateŚ
_SALSA_OPS)ŚtargetŚfhr'   ZVNAMESZPADZPAD2ZPAD3r   r   Śkwdsr   Zsource1Zsource2Śrotater   r   r   ŚmainN   sJ    

žķ   łūłr0   Ś__main__)Ś__doc__r!   r+   r0   Ś__name__r   r   r   r   Ś<module>   sJ   ĀAG