�
�
5Xc#@s�dZddlZddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5g Zd�Zedkr�e�ndS(6sFpasslib.utils.scrypt._gen_files - meta script that generates _salsa.pyi����Niiiiii i
iiiii
iiiiicCs�tjjtjjt�d�}t|d�}|j}gtd�D]}d|^qF}d}d}d }d jd
�td�D��}d j|�} td| d|�}
|d
|
�x�t t
�D]�\}\}}}
}|dtd|d|d|
d|d||d||
d||ddd|>dd|dd|�
�q�W|d�x/td�D]!}||d|||f�qhW|d|
�dS(!Ns _salsa.pytwisv%dt iiis, css|]}d|VqdS(sb%dN((t.0ti((sD/usr/lib/python2.7/site-packages/passlib/crypto/scrypt/_gen_files.pys <genexpr>XstVLISTtTLISTs"""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:
s� # 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)
tidxtis1tis2tittsrc1tsrc2tdsttrmaskii trot1trot2s i += 1
sb%d = (b%d + v%d) & 0xffffffff
s�
return %(TLIST)s
#=================================================================
# eof
#=================================================================
s s s (tostpathtjointdirnamet__file__tfiletwritetrangetdictt enumeratet
_SALSA_OPS(ttargettfhRRtVNAMEStPADtPAD2tPAD3RRtkwdsRtsource1tsource2trotate((sD/usr/lib/python2.7/site-packages/passlib/crypto/scrypt/_gen_files.pytmainNs<! # %
t__main__(iiii(iiii (iiii
(iiii(i iii(i
i ii (ii
i i
(iii
i(ii
ii(iii
i (iiii
(i
iii(iiii(iiii (iiii
(iiii(iiii(iiii (iiii
(iiii(iiii(iiii (iiii
(iiii(ii
i i(iii
i (i iii
(i
i ii(iiii(i
iii (ii
ii
(iii
i(t__doc__RRR%t__name__(((sD/usr/lib/python2.7/site-packages/passlib/crypto/scrypt/_gen_files.pyt<module>sH G |