@@ -101,20 +101,20 @@ void blk_SHA1_Final(unsigned char hashout[20], blk_SHA_CTX *ctx)
101
101
#define SHA_SRC (t ) htonl(data[t])
102
102
#define SHA_MIX (t ) SHA_ROL(W(t+13) ^ W(t+8) ^ W(t+2) ^ W(t), 1)
103
103
104
- #define SHA_ROUND (t , input , fn , constant ) \
105
- TEMP = input(t); W(t) = TEMP; \
106
- TEMP += SHA_ROL(A,5) + (fn) + E + (constant); \
107
- E = D; D = C; C = SHA_ROR(B, 2); B = A; A = TEMP
104
+ #define SHA_ROUND (t , input , fn , constant , A , B , C , D , E ) do { \
105
+ unsigned int TEMP = input(t); W(t) = TEMP; \
106
+ TEMP += E + SHA_ROL(A,5) + (fn) + (constant); \
107
+ B = SHA_ROR(B, 2); E = TEMP; } while (0)
108
108
109
- #define T_0_15 (t ) SHA_ROUND(t, SHA_SRC, (((C^D)&B)^D) , 0x5a827999 )
110
- #define T_16_19 (t ) SHA_ROUND(t, SHA_MIX, (((C^D)&B)^D) , 0x5a827999 )
111
- #define T_20_39 (t ) SHA_ROUND(t, SHA_MIX, (B^C^D) , 0x6ed9eba1 )
112
- #define T_40_59 (t ) SHA_ROUND(t, SHA_MIX, ((B&C)+(D&(B^C))) , 0x8f1bbcdc )
113
- #define T_60_79 (t ) SHA_ROUND(t, SHA_MIX, (B^C^D) , 0xca62c1d6 )
109
+ #define T_0_15 (t , A , B , C , D , E ) SHA_ROUND(t, SHA_SRC, (((C^D)&B)^D) , 0x5a827999, A, B, C, D, E )
110
+ #define T_16_19 (t , A , B , C , D , E ) SHA_ROUND(t, SHA_MIX, (((C^D)&B)^D) , 0x5a827999, A, B, C, D, E )
111
+ #define T_20_39 (t , A , B , C , D , E ) SHA_ROUND(t, SHA_MIX, (B^C^D) , 0x6ed9eba1, A, B, C, D, E )
112
+ #define T_40_59 (t , A , B , C , D , E ) SHA_ROUND(t, SHA_MIX, ((B&C)+(D&(B^C))) , 0x8f1bbcdc, A, B, C, D, E )
113
+ #define T_60_79 (t , A , B , C , D , E ) SHA_ROUND(t, SHA_MIX, (B^C^D) , 0xca62c1d6, A, B, C, D, E )
114
114
115
115
static void blk_SHA1Block (blk_SHA_CTX * ctx , const unsigned int * data )
116
116
{
117
- unsigned int A ,B ,C ,D ,E , TEMP ;
117
+ unsigned int A ,B ,C ,D ,E ;
118
118
unsigned int array [16 ];
119
119
120
120
A = ctx -> H [0 ];
@@ -124,31 +124,94 @@ static void blk_SHA1Block(blk_SHA_CTX *ctx, const unsigned int *data)
124
124
E = ctx -> H [4 ];
125
125
126
126
/* Round 1 - iterations 0-16 take their input from 'data' */
127
- T_0_15 ( 0 ); T_0_15 ( 1 ); T_0_15 ( 2 ); T_0_15 ( 3 ); T_0_15 ( 4 );
128
- T_0_15 ( 5 ); T_0_15 ( 6 ); T_0_15 ( 7 ); T_0_15 ( 8 ); T_0_15 ( 9 );
129
- T_0_15 (10 ); T_0_15 (11 ); T_0_15 (12 ); T_0_15 (13 ); T_0_15 (14 );
130
- T_0_15 (15 );
127
+ T_0_15 ( 0 , A , B , C , D , E );
128
+ T_0_15 ( 1 , E , A , B , C , D );
129
+ T_0_15 ( 2 , D , E , A , B , C );
130
+ T_0_15 ( 3 , C , D , E , A , B );
131
+ T_0_15 ( 4 , B , C , D , E , A );
132
+ T_0_15 ( 5 , A , B , C , D , E );
133
+ T_0_15 ( 6 , E , A , B , C , D );
134
+ T_0_15 ( 7 , D , E , A , B , C );
135
+ T_0_15 ( 8 , C , D , E , A , B );
136
+ T_0_15 ( 9 , B , C , D , E , A );
137
+ T_0_15 (10 , A , B , C , D , E );
138
+ T_0_15 (11 , E , A , B , C , D );
139
+ T_0_15 (12 , D , E , A , B , C );
140
+ T_0_15 (13 , C , D , E , A , B );
141
+ T_0_15 (14 , B , C , D , E , A );
142
+ T_0_15 (15 , A , B , C , D , E );
131
143
132
144
/* Round 1 - tail. Input from 512-bit mixing array */
133
- T_16_19 (16 ); T_16_19 (17 ); T_16_19 (18 ); T_16_19 (19 );
145
+ T_16_19 (16 , E , A , B , C , D );
146
+ T_16_19 (17 , D , E , A , B , C );
147
+ T_16_19 (18 , C , D , E , A , B );
148
+ T_16_19 (19 , B , C , D , E , A );
134
149
135
150
/* Round 2 */
136
- T_20_39 (20 ); T_20_39 (21 ); T_20_39 (22 ); T_20_39 (23 ); T_20_39 (24 );
137
- T_20_39 (25 ); T_20_39 (26 ); T_20_39 (27 ); T_20_39 (28 ); T_20_39 (29 );
138
- T_20_39 (30 ); T_20_39 (31 ); T_20_39 (32 ); T_20_39 (33 ); T_20_39 (34 );
139
- T_20_39 (35 ); T_20_39 (36 ); T_20_39 (37 ); T_20_39 (38 ); T_20_39 (39 );
151
+ T_20_39 (20 , A , B , C , D , E );
152
+ T_20_39 (21 , E , A , B , C , D );
153
+ T_20_39 (22 , D , E , A , B , C );
154
+ T_20_39 (23 , C , D , E , A , B );
155
+ T_20_39 (24 , B , C , D , E , A );
156
+ T_20_39 (25 , A , B , C , D , E );
157
+ T_20_39 (26 , E , A , B , C , D );
158
+ T_20_39 (27 , D , E , A , B , C );
159
+ T_20_39 (28 , C , D , E , A , B );
160
+ T_20_39 (29 , B , C , D , E , A );
161
+ T_20_39 (30 , A , B , C , D , E );
162
+ T_20_39 (31 , E , A , B , C , D );
163
+ T_20_39 (32 , D , E , A , B , C );
164
+ T_20_39 (33 , C , D , E , A , B );
165
+ T_20_39 (34 , B , C , D , E , A );
166
+ T_20_39 (35 , A , B , C , D , E );
167
+ T_20_39 (36 , E , A , B , C , D );
168
+ T_20_39 (37 , D , E , A , B , C );
169
+ T_20_39 (38 , C , D , E , A , B );
170
+ T_20_39 (39 , B , C , D , E , A );
140
171
141
172
/* Round 3 */
142
- T_40_59 (40 ); T_40_59 (41 ); T_40_59 (42 ); T_40_59 (43 ); T_40_59 (44 );
143
- T_40_59 (45 ); T_40_59 (46 ); T_40_59 (47 ); T_40_59 (48 ); T_40_59 (49 );
144
- T_40_59 (50 ); T_40_59 (51 ); T_40_59 (52 ); T_40_59 (53 ); T_40_59 (54 );
145
- T_40_59 (55 ); T_40_59 (56 ); T_40_59 (57 ); T_40_59 (58 ); T_40_59 (59 );
173
+ T_40_59 (40 , A , B , C , D , E );
174
+ T_40_59 (41 , E , A , B , C , D );
175
+ T_40_59 (42 , D , E , A , B , C );
176
+ T_40_59 (43 , C , D , E , A , B );
177
+ T_40_59 (44 , B , C , D , E , A );
178
+ T_40_59 (45 , A , B , C , D , E );
179
+ T_40_59 (46 , E , A , B , C , D );
180
+ T_40_59 (47 , D , E , A , B , C );
181
+ T_40_59 (48 , C , D , E , A , B );
182
+ T_40_59 (49 , B , C , D , E , A );
183
+ T_40_59 (50 , A , B , C , D , E );
184
+ T_40_59 (51 , E , A , B , C , D );
185
+ T_40_59 (52 , D , E , A , B , C );
186
+ T_40_59 (53 , C , D , E , A , B );
187
+ T_40_59 (54 , B , C , D , E , A );
188
+ T_40_59 (55 , A , B , C , D , E );
189
+ T_40_59 (56 , E , A , B , C , D );
190
+ T_40_59 (57 , D , E , A , B , C );
191
+ T_40_59 (58 , C , D , E , A , B );
192
+ T_40_59 (59 , B , C , D , E , A );
146
193
147
194
/* Round 4 */
148
- T_60_79 (60 ); T_60_79 (61 ); T_60_79 (62 ); T_60_79 (63 ); T_60_79 (64 );
149
- T_60_79 (65 ); T_60_79 (66 ); T_60_79 (67 ); T_60_79 (68 ); T_60_79 (69 );
150
- T_60_79 (70 ); T_60_79 (71 ); T_60_79 (72 ); T_60_79 (73 ); T_60_79 (74 );
151
- T_60_79 (75 ); T_60_79 (76 ); T_60_79 (77 ); T_60_79 (78 ); T_60_79 (79 );
195
+ T_60_79 (60 , A , B , C , D , E );
196
+ T_60_79 (61 , E , A , B , C , D );
197
+ T_60_79 (62 , D , E , A , B , C );
198
+ T_60_79 (63 , C , D , E , A , B );
199
+ T_60_79 (64 , B , C , D , E , A );
200
+ T_60_79 (65 , A , B , C , D , E );
201
+ T_60_79 (66 , E , A , B , C , D );
202
+ T_60_79 (67 , D , E , A , B , C );
203
+ T_60_79 (68 , C , D , E , A , B );
204
+ T_60_79 (69 , B , C , D , E , A );
205
+ T_60_79 (70 , A , B , C , D , E );
206
+ T_60_79 (71 , E , A , B , C , D );
207
+ T_60_79 (72 , D , E , A , B , C );
208
+ T_60_79 (73 , C , D , E , A , B );
209
+ T_60_79 (74 , B , C , D , E , A );
210
+ T_60_79 (75 , A , B , C , D , E );
211
+ T_60_79 (76 , E , A , B , C , D );
212
+ T_60_79 (77 , D , E , A , B , C );
213
+ T_60_79 (78 , C , D , E , A , B );
214
+ T_60_79 (79 , B , C , D , E , A );
152
215
153
216
ctx -> H [0 ] += A ;
154
217
ctx -> H [1 ] += B ;
0 commit comments