20 lines
No EOL
961 B
Text
20 lines
No EOL
961 B
Text
// AR6XAR11XAR25
|
|
|
|
import "../../bitwise/32/xor.code" as XOR
|
|
|
|
def RR6(field[32] b) -> (field[32]):
|
|
return [b[26], b[27], b[28], b[29], b[30], b[31], b[0], b[1], b[2], b[3], b[4], b[5], b[6], b[7], b[8], b[9], b[10], b[11], b[12], b[13], b[14], b[15], b[16], b[17], b[18], b[19], b[20], b[21], b[22], b[23], b[24], b[25]]
|
|
|
|
def RR11(field[32] b) -> (field[32]):
|
|
return [b[21], b[22], b[23], b[24], b[25], b[26], b[27], b[28], b[29], b[30], b[31], b[0], b[1], b[2], b[3], b[4], b[5], b[6], b[7], b[8], b[9], b[10], b[11], b[12], b[13], b[14], b[15], b[16], b[17], b[18], b[19], b[20]]
|
|
|
|
def RR25(field[32] b) -> (field[32]):
|
|
return [b[7], b[8], b[9], b[10], b[11], b[12], b[13], b[14], b[15], b[16], b[17], b[18], b[19], b[20], b[21], b[22], b[23], b[24], b[25], b[26], b[27], b[28], b[29], b[30], b[31], b[0], b[1], b[2], b[3], b[4], b[5], b[6]]
|
|
|
|
def main(field[32] a) -> (field[32]):
|
|
u = RR6(a)
|
|
v = RR11(a)
|
|
w = RR25(a)
|
|
x = XOR(u, v)
|
|
z = XOR(w, x)
|
|
return z |