(ks, E0, E1)
return l,r
Use the key schedule ks and salt E0, E1 to create the password hash.
Use the key schedule ks and salt E0, E1 to create the password hash.
Use the key schedule ks and salt E0 E1 to create the password hash .
def _body(ks, E0, E1):
    """Use the key schedule ks and salt E0, E1 to create the password hash."""

    # Copy global variable into locals for loop.
    SP0, SP1, SP2, SP3, SP4, SP5, SP6, SP7 = _SPtrans

    inner = xrange(0, _ITERATIONS*2, 2)
    l = r = 0
    for j in xrange(25):
        l,r = r,l
        for i in inner:
            t = r ^ ((r >> 16) & 0xffff)
            u = t & E0
            t = t & E1
            u = u ^ (u << 16) ^ r ^ ks[i]
            t = t ^ (t << 16) ^ r ^ ks[i+1]
            t = ((t >> 4) & 0x0fffffff) | (t << 28)

            l,r = r,(SP1[(t    ) & 0x3f] ^ SP3[(t>> 8) & 0x3f] ^
                     SP5[(t>>16) & 0x3f] ^ SP7[(t>>24) & 0x3f] ^
                     SP0[(u    ) & 0x3f] ^ SP2[(u>> 8) & 0x3f] ^
                     SP4[(u>>16) & 0x3f] ^ SP6[(u>>24) & 0x3f] ^ l)

    l = ((l >> 1) & 0x7fffffff) | ((l & 0x1) << 31)
    r = ((r >> 1) & 0x7fffffff) | ((r & 0x1) << 31)

    r,l = _PERM_OP(r, l,  1, 0x55555555)
    l,r = _PERM_OP(l, r,  8, 0x00ff00ff)
    r,l = _PERM_OP(r, l,  2, 0x33333333)
    l,r = _PERM_OP(l, r, 16, 0x0000ffff)
    r,l = _PERM_OP(r, l,  4, 0x0f0f0f0f)

    return l,r
def _body ( ks , E0 , E1 ) : # Copy global variable into locals for loop. SP0 , SP1 , SP2 , SP3 , SP4 , SP5 , SP6 , SP7 = _SPtrans inner = xrange ( 0 , _ITERATIONS * 2 , 2 ) l = r = 0 for j in xrange ( 25 ) : l , r = r , l for i in inner : t = r ^ ( ( r >> 16 ) & 0xffff ) u = t & E0 t = t & E1 u = u ^ ( u << 16 ) ^ r ^ ks [ i ] t = t ^ ( t << 16 ) ^ r ^ ks [ i + 1 ] t = ( ( t >> 4 ) & 0x0fffffff ) | ( t << 28 ) l , r = r , ( SP1 [ ( t ) & 0x3f ] ^ SP3 [ ( t >> 8 ) & 0x3f ] ^ SP5 [ ( t >> 16 ) & 0x3f ] ^ SP7 [ ( t >> 24 ) & 0x3f ] ^ SP0 [ ( u ) & 0x3f ] ^ SP2 [ ( u >> 8 ) & 0x3f ] ^ SP4 [ ( u >> 16 ) & 0x3f ] ^ SP6 [ ( u >> 24 ) & 0x3f ] ^ l ) l = ( ( l >> 1 ) & 0x7fffffff ) | ( ( l & 0x1 ) << 31 ) r = ( ( r >> 1 ) & 0x7fffffff ) | ( ( r & 0x1 ) << 31 ) r , l = _PERM_OP ( r , l , 1 , 0x55555555 ) l , r = _PERM_OP ( l , r , 8 , 0x00ff00ff ) r , l = _PERM_OP ( r , l , 2 , 0x33333333 ) l , r = _PERM_OP ( l , r , 16 , 0x0000ffff ) r , l = _PERM_OP ( r , l , 4 , 0x0f0f0f0f ) return l , r