def H(x, y, z, r): """ md5 H 'macro' x, y, z, r should be registers that are scalars puts result in r """ # return x ^ y ^ z global xcode cal.ixor(r, x, y) cal.ixor(r, r, z)
def I(x, y, z, r): """ md5 I 'macro' x, y, z, r should be registers that are scalars puts result in r """ # return y ^ (x | ~z) global xcode cal.inot(r, z) # ~z cal.ior(r, x, r) # x | ~z cal.ixor(r, y, r) # y ^ (x | ~z)