|
|
|
@ -65,7 +65,7 @@ __constant u32 lotus_magic_table[256] =
|
|
|
|
|
#define BOX1(S,i) (u32x) ((S)[(i).s0], (S)[(i).s1], (S)[(i).s2], (S)[(i).s3], (S)[(i).s4], (S)[(i).s5], (S)[(i).s6], (S)[(i).s7], (S)[(i).s8], (S)[(i).s9], (S)[(i).sa], (S)[(i).sb], (S)[(i).sc], (S)[(i).sd], (S)[(i).se], (S)[(i).sf])
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
void lotus_mix (u32x *in, __local u32 *s_lotus_magic_table)
|
|
|
|
|
static void lotus_mix (u32x *in, __local u32 *s_lotus_magic_table)
|
|
|
|
|
{
|
|
|
|
|
u32x p = 0;
|
|
|
|
|
|
|
|
|
@ -88,7 +88,7 @@ void lotus_mix (u32x *in, __local u32 *s_lotus_magic_table)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void lotus_transform_password (u32x in[4], u32x out[4], __local u32 *s_lotus_magic_table)
|
|
|
|
|
static void lotus_transform_password (u32x in[4], u32x out[4], __local u32 *s_lotus_magic_table)
|
|
|
|
|
{
|
|
|
|
|
u32x t = out[3] >> 24;
|
|
|
|
|
|
|
|
|
@ -106,7 +106,7 @@ void lotus_transform_password (u32x in[4], u32x out[4], __local u32 *s_lotus_mag
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void pad (u32 w[4], const u32 len)
|
|
|
|
|
static void pad (u32 w[4], const u32 len)
|
|
|
|
|
{
|
|
|
|
|
const u32 val = 16 - len;
|
|
|
|
|
|
|
|
|
@ -185,7 +185,7 @@ void pad (u32 w[4], const u32 len)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void mdtransform_norecalc (u32x state[4], u32x block[4], __local u32 *s_lotus_magic_table)
|
|
|
|
|
static void mdtransform_norecalc (u32x state[4], u32x block[4], __local u32 *s_lotus_magic_table)
|
|
|
|
|
{
|
|
|
|
|
u32x x[12];
|
|
|
|
|
|
|
|
|
@ -210,14 +210,14 @@ void mdtransform_norecalc (u32x state[4], u32x block[4], __local u32 *s_lotus_ma
|
|
|
|
|
state[3] = x[3];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void mdtransform (u32x state[4], u32x checksum[4], u32x block[4], __local u32 *s_lotus_magic_table)
|
|
|
|
|
static void mdtransform (u32x state[4], u32x checksum[4], u32x block[4], __local u32 *s_lotus_magic_table)
|
|
|
|
|
{
|
|
|
|
|
mdtransform_norecalc (state, block, s_lotus_magic_table);
|
|
|
|
|
|
|
|
|
|
lotus_transform_password (block, checksum, s_lotus_magic_table);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void domino_big_md (const u32x saved_key[4], const u32 size, u32x state[4], __local u32 *s_lotus_magic_table)
|
|
|
|
|
static void domino_big_md (const u32x saved_key[4], const u32 size, u32x state[4], __local u32 *s_lotus_magic_table)
|
|
|
|
|
{
|
|
|
|
|
u32x checksum[4];
|
|
|
|
|
|
|
|
|
|