60
61
* @param state algorithm state
61
62
* @param x the message block to process
63
static void md4_process_block(unsigned state[4], const unsigned* x)
64
static void rhash_md4_process_block(unsigned state[4], const unsigned* x)
65
register unsigned a, b, c, d;
71
MD4_ROUND1(a, b, c, d, x[ 0], 3);
72
MD4_ROUND1(d, a, b, c, x[ 1], 7);
73
MD4_ROUND1(c, d, a, b, x[ 2], 11);
74
MD4_ROUND1(b, c, d, a, x[ 3], 19);
75
MD4_ROUND1(a, b, c, d, x[ 4], 3);
76
MD4_ROUND1(d, a, b, c, x[ 5], 7);
77
MD4_ROUND1(c, d, a, b, x[ 6], 11);
78
MD4_ROUND1(b, c, d, a, x[ 7], 19);
79
MD4_ROUND1(a, b, c, d, x[ 8], 3);
80
MD4_ROUND1(d, a, b, c, x[ 9], 7);
81
MD4_ROUND1(c, d, a, b, x[10], 11);
82
MD4_ROUND1(b, c, d, a, x[11], 19);
83
MD4_ROUND1(a, b, c, d, x[12], 3);
84
MD4_ROUND1(d, a, b, c, x[13], 7);
85
MD4_ROUND1(c, d, a, b, x[14], 11);
86
MD4_ROUND1(b, c, d, a, x[15], 19);
88
MD4_ROUND2(a, b, c, d, x[ 0], 3);
89
MD4_ROUND2(d, a, b, c, x[ 4], 5);
90
MD4_ROUND2(c, d, a, b, x[ 8], 9);
91
MD4_ROUND2(b, c, d, a, x[12], 13);
92
MD4_ROUND2(a, b, c, d, x[ 1], 3);
93
MD4_ROUND2(d, a, b, c, x[ 5], 5);
94
MD4_ROUND2(c, d, a, b, x[ 9], 9);
95
MD4_ROUND2(b, c, d, a, x[13], 13);
96
MD4_ROUND2(a, b, c, d, x[ 2], 3);
97
MD4_ROUND2(d, a, b, c, x[ 6], 5);
98
MD4_ROUND2(c, d, a, b, x[10], 9);
99
MD4_ROUND2(b, c, d, a, x[14], 13);
100
MD4_ROUND2(a, b, c, d, x[ 3], 3);
101
MD4_ROUND2(d, a, b, c, x[ 7], 5);
102
MD4_ROUND2(c, d, a, b, x[11], 9);
103
MD4_ROUND2(b, c, d, a, x[15], 13);
105
MD4_ROUND3(a, b, c, d, x[ 0], 3);
106
MD4_ROUND3(d, a, b, c, x[ 8], 9);
107
MD4_ROUND3(c, d, a, b, x[ 4], 11);
108
MD4_ROUND3(b, c, d, a, x[12], 15);
109
MD4_ROUND3(a, b, c, d, x[ 2], 3);
110
MD4_ROUND3(d, a, b, c, x[10], 9);
111
MD4_ROUND3(c, d, a, b, x[ 6], 11);
112
MD4_ROUND3(b, c, d, a, x[14], 15);
113
MD4_ROUND3(a, b, c, d, x[ 1], 3);
114
MD4_ROUND3(d, a, b, c, x[ 9], 9);
115
MD4_ROUND3(c, d, a, b, x[ 5], 11);
116
MD4_ROUND3(b, c, d, a, x[13], 15);
117
MD4_ROUND3(a, b, c, d, x[ 3], 3);
118
MD4_ROUND3(d, a, b, c, x[11], 9);
119
MD4_ROUND3(c, d, a, b, x[ 7], 11);
120
MD4_ROUND3(b, c, d, a, x[15], 15);
66
register unsigned a, b, c, d;
67
a = state[0], b = state[1], c = state[2], d = state[3];
69
MD4_ROUND1(a, b, c, d, x[ 0], 3);
70
MD4_ROUND1(d, a, b, c, x[ 1], 7);
71
MD4_ROUND1(c, d, a, b, x[ 2], 11);
72
MD4_ROUND1(b, c, d, a, x[ 3], 19);
73
MD4_ROUND1(a, b, c, d, x[ 4], 3);
74
MD4_ROUND1(d, a, b, c, x[ 5], 7);
75
MD4_ROUND1(c, d, a, b, x[ 6], 11);
76
MD4_ROUND1(b, c, d, a, x[ 7], 19);
77
MD4_ROUND1(a, b, c, d, x[ 8], 3);
78
MD4_ROUND1(d, a, b, c, x[ 9], 7);
79
MD4_ROUND1(c, d, a, b, x[10], 11);
80
MD4_ROUND1(b, c, d, a, x[11], 19);
81
MD4_ROUND1(a, b, c, d, x[12], 3);
82
MD4_ROUND1(d, a, b, c, x[13], 7);
83
MD4_ROUND1(c, d, a, b, x[14], 11);
84
MD4_ROUND1(b, c, d, a, x[15], 19);
86
MD4_ROUND2(a, b, c, d, x[ 0], 3);
87
MD4_ROUND2(d, a, b, c, x[ 4], 5);
88
MD4_ROUND2(c, d, a, b, x[ 8], 9);
89
MD4_ROUND2(b, c, d, a, x[12], 13);
90
MD4_ROUND2(a, b, c, d, x[ 1], 3);
91
MD4_ROUND2(d, a, b, c, x[ 5], 5);
92
MD4_ROUND2(c, d, a, b, x[ 9], 9);
93
MD4_ROUND2(b, c, d, a, x[13], 13);
94
MD4_ROUND2(a, b, c, d, x[ 2], 3);
95
MD4_ROUND2(d, a, b, c, x[ 6], 5);
96
MD4_ROUND2(c, d, a, b, x[10], 9);
97
MD4_ROUND2(b, c, d, a, x[14], 13);
98
MD4_ROUND2(a, b, c, d, x[ 3], 3);
99
MD4_ROUND2(d, a, b, c, x[ 7], 5);
100
MD4_ROUND2(c, d, a, b, x[11], 9);
101
MD4_ROUND2(b, c, d, a, x[15], 13);
103
MD4_ROUND3(a, b, c, d, x[ 0], 3);
104
MD4_ROUND3(d, a, b, c, x[ 8], 9);
105
MD4_ROUND3(c, d, a, b, x[ 4], 11);
106
MD4_ROUND3(b, c, d, a, x[12], 15);
107
MD4_ROUND3(a, b, c, d, x[ 2], 3);
108
MD4_ROUND3(d, a, b, c, x[10], 9);
109
MD4_ROUND3(c, d, a, b, x[ 6], 11);
110
MD4_ROUND3(b, c, d, a, x[14], 15);
111
MD4_ROUND3(a, b, c, d, x[ 1], 3);
112
MD4_ROUND3(d, a, b, c, x[ 9], 9);
113
MD4_ROUND3(c, d, a, b, x[ 5], 11);
114
MD4_ROUND3(b, c, d, a, x[13], 15);
115
MD4_ROUND3(a, b, c, d, x[ 3], 3);
116
MD4_ROUND3(d, a, b, c, x[11], 9);
117
MD4_ROUND3(c, d, a, b, x[ 7], 11);
118
MD4_ROUND3(b, c, d, a, x[15], 15);
120
state[0] += a, state[1] += b, state[2] += c, state[3] += d;