21 lines
926 B
Text
21 lines
926 B
Text
// AR17XAR19XAR10
|
|
|
|
import "../../bitwise/32/xor.code" as XOR
|
|
|
|
def RR17(field[32] b) -> (field[32]):
|
|
return [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], b[7], b[8], b[9], b[10], b[11], b[12], b[13], b[14]]
|
|
|
|
def RR19(field[32] b) -> (field[32]):
|
|
return [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], b[7], b[8], b[9], b[10], b[11], b[12]]
|
|
|
|
def RS10(field[32] b) -> (field[32]):
|
|
return [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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]]
|
|
|
|
def main(field[32] a) -> (field[32]):
|
|
u = RR17(a)
|
|
v = RR19(a)
|
|
w = RS10(a)
|
|
x = XOR(u, v)
|
|
z = XOR(w, x)
|
|
return z
|
|
|