diff options
author | jsing <> | 2023-03-29 05:03:34 +0000 |
---|---|---|
committer | jsing <> | 2023-03-29 05:03:34 +0000 |
commit | 1a4c71afc95e1d79926c2f18f6bca0c55256b606 (patch) | |
tree | 56f2687ecb182ef9fc2dd3d4a8f26c99abb0df7f /src | |
parent | 74eda82875b28355460dcde47004692ba86d3a48 (diff) | |
download | openbsd-1a4c71afc95e1d79926c2f18f6bca0c55256b606.tar.gz openbsd-1a4c71afc95e1d79926c2f18f6bca0c55256b606.tar.bz2 openbsd-1a4c71afc95e1d79926c2f18f6bca0c55256b606.zip |
Mop up MD32_XARRAY from SHA1.
MD32_XARRAY (formerly SHA_XARRAY) was added as a workaround for a broken
HP C compiler (circa 1999). Clean it up to simplify the code.
No change in generated assembly.
ok miod@ tb@
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/libcrypto/sha/sha1dgst.c | 297 |
1 files changed, 135 insertions, 162 deletions
diff --git a/src/lib/libcrypto/sha/sha1dgst.c b/src/lib/libcrypto/sha/sha1dgst.c index 0822d038be..8703c9d2b5 100644 --- a/src/lib/libcrypto/sha/sha1dgst.c +++ b/src/lib/libcrypto/sha/sha1dgst.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: sha1dgst.c,v 1.23 2023/03/29 04:24:08 jsing Exp $ */ | 1 | /* $OpenBSD: sha1dgst.c,v 1.24 2023/03/29 05:03:34 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -158,29 +158,6 @@ SHA1_Init(SHA_CTX *c) | |||
158 | (f)=xa+(e)+K_60_79+ROTATE((a),5)+F_60_79((b),(c),(d)); \ | 158 | (f)=xa+(e)+K_60_79+ROTATE((a),5)+F_60_79((b),(c),(d)); \ |
159 | (b)=ROTATE((b),30); | 159 | (b)=ROTATE((b),30); |
160 | 160 | ||
161 | #ifdef X | ||
162 | #undef X | ||
163 | #endif | ||
164 | #ifndef MD32_XARRAY | ||
165 | /* | ||
166 | * Originally X was an array. As it's automatic it's natural | ||
167 | * to expect RISC compiler to accommodate at least part of it in | ||
168 | * the register bank, isn't it? Unfortunately not all compilers | ||
169 | * "find" this expectation reasonable:-( On order to make such | ||
170 | * compilers generate better code I replace X[] with a bunch of | ||
171 | * X0, X1, etc. See the function body below... | ||
172 | * <appro@fy.chalmers.se> | ||
173 | */ | ||
174 | # define X(i) XX##i | ||
175 | #else | ||
176 | /* | ||
177 | * However! Some compilers (most notably HP C) get overwhelmed by | ||
178 | * that many local variables so that we have to have the way to | ||
179 | * fall down to the original behavior. | ||
180 | */ | ||
181 | # define X(i) XX[i] | ||
182 | #endif | ||
183 | |||
184 | #if !defined(SHA1_ASM) | 161 | #if !defined(SHA1_ASM) |
185 | #include <endian.h> | 162 | #include <endian.h> |
186 | static void | 163 | static void |
@@ -188,12 +165,8 @@ sha1_block_data_order(SHA_CTX *c, const void *p, size_t num) | |||
188 | { | 165 | { |
189 | const unsigned char *data = p; | 166 | const unsigned char *data = p; |
190 | unsigned MD32_REG_T A, B,C, D,E, T, l; | 167 | unsigned MD32_REG_T A, B,C, D,E, T, l; |
191 | #ifndef MD32_XARRAY | 168 | unsigned MD32_REG_T X0, X1, X2, X3, X4, X5, X6, X7, |
192 | unsigned MD32_REG_T XX0, XX1, XX2, XX3, XX4, XX5, XX6, XX7, | 169 | X8, X9, X10, X11, X12, X13, X14, X15; |
193 | XX8, XX9, XX10, XX11, XX12, XX13, XX14, XX15; | ||
194 | #else | ||
195 | SHA_LONG XX[16]; | ||
196 | #endif | ||
197 | 170 | ||
198 | A = c->h0; | 171 | A = c->h0; |
199 | B = c->h1; | 172 | B = c->h1; |
@@ -207,159 +180,159 @@ sha1_block_data_order(SHA_CTX *c, const void *p, size_t num) | |||
207 | sizeof(SHA_LONG) == 4 && ((size_t)p % 4) == 0) { | 180 | sizeof(SHA_LONG) == 4 && ((size_t)p % 4) == 0) { |
208 | const SHA_LONG *W = (const SHA_LONG *)data; | 181 | const SHA_LONG *W = (const SHA_LONG *)data; |
209 | 182 | ||
210 | X( 0) = W[0]; | 183 | X0 = W[0]; |
211 | X( 1) = W[1]; | 184 | X1 = W[1]; |
212 | BODY_00_15( 0, A,B, C,D, E,T, X( 0)); | 185 | BODY_00_15( 0, A,B, C,D, E,T, X0); |
213 | X( 2) = W[2]; | 186 | X2 = W[2]; |
214 | BODY_00_15( 1, T,A, B,C, D,E, X( 1)); | 187 | BODY_00_15( 1, T,A, B,C, D,E, X1); |
215 | X( 3) = W[3]; | 188 | X3 = W[3]; |
216 | BODY_00_15( 2, E,T, A,B, C,D, X( 2)); | 189 | BODY_00_15( 2, E,T, A,B, C,D, X2); |
217 | X( 4) = W[4]; | 190 | X4 = W[4]; |
218 | BODY_00_15( 3, D,E, T,A, B,C, X( 3)); | 191 | BODY_00_15( 3, D,E, T,A, B,C, X3); |
219 | X( 5) = W[5]; | 192 | X5 = W[5]; |
220 | BODY_00_15( 4, C,D, E,T, A,B, X( 4)); | 193 | BODY_00_15( 4, C,D, E,T, A,B, X4); |
221 | X( 6) = W[6]; | 194 | X6 = W[6]; |
222 | BODY_00_15( 5, B,C, D,E, T,A, X( 5)); | 195 | BODY_00_15( 5, B,C, D,E, T,A, X5); |
223 | X( 7) = W[7]; | 196 | X7 = W[7]; |
224 | BODY_00_15( 6, A,B, C,D, E,T, X( 6)); | 197 | BODY_00_15( 6, A,B, C,D, E,T, X6); |
225 | X( 8) = W[8]; | 198 | X8 = W[8]; |
226 | BODY_00_15( 7, T,A, B,C, D,E, X( 7)); | 199 | BODY_00_15( 7, T,A, B,C, D,E, X7); |
227 | X( 9) = W[9]; | 200 | X9 = W[9]; |
228 | BODY_00_15( 8, E,T, A,B, C,D, X( 8)); | 201 | BODY_00_15( 8, E,T, A,B, C,D, X8); |
229 | X(10) = W[10]; | 202 | X10 = W[10]; |
230 | BODY_00_15( 9, D,E, T,A, B,C, X( 9)); | 203 | BODY_00_15( 9, D,E, T,A, B,C, X9); |
231 | X(11) = W[11]; | 204 | X11 = W[11]; |
232 | BODY_00_15(10, C,D, E,T, A,B, X(10)); | 205 | BODY_00_15(10, C,D, E,T, A,B, X10); |
233 | X(12) = W[12]; | 206 | X12 = W[12]; |
234 | BODY_00_15(11, B,C, D,E, T,A, X(11)); | 207 | BODY_00_15(11, B,C, D,E, T,A, X11); |
235 | X(13) = W[13]; | 208 | X13 = W[13]; |
236 | BODY_00_15(12, A,B, C,D, E,T, X(12)); | 209 | BODY_00_15(12, A,B, C,D, E,T, X12); |
237 | X(14) = W[14]; | 210 | X14 = W[14]; |
238 | BODY_00_15(13, T,A, B,C, D,E, X(13)); | 211 | BODY_00_15(13, T,A, B,C, D,E, X13); |
239 | X(15) = W[15]; | 212 | X15 = W[15]; |
240 | BODY_00_15(14, E,T, A,B, C,D, X(14)); | 213 | BODY_00_15(14, E,T, A,B, C,D, X14); |
241 | BODY_00_15(15, D,E, T,A, B,C, X(15)); | 214 | BODY_00_15(15, D,E, T,A, B,C, X15); |
242 | 215 | ||
243 | data += SHA_CBLOCK; | 216 | data += SHA_CBLOCK; |
244 | } else { | 217 | } else { |
245 | HOST_c2l(data, l); | 218 | HOST_c2l(data, l); |
246 | X( 0) = l; | 219 | X0 = l; |
247 | HOST_c2l(data, l); | 220 | HOST_c2l(data, l); |
248 | X( 1) = l; | 221 | X1 = l; |
249 | BODY_00_15( 0, A,B, C,D, E,T, X( 0)); | 222 | BODY_00_15( 0, A,B, C,D, E,T, X0); |
250 | HOST_c2l(data, l); | 223 | HOST_c2l(data, l); |
251 | X( 2) = l; | 224 | X2 = l; |
252 | BODY_00_15( 1, T,A, B,C, D,E, X( 1)); | 225 | BODY_00_15( 1, T,A, B,C, D,E, X1); |
253 | HOST_c2l(data, l); | 226 | HOST_c2l(data, l); |
254 | X( 3) = l; | 227 | X3 = l; |
255 | BODY_00_15( 2, E,T, A,B, C,D, X( 2)); | 228 | BODY_00_15( 2, E,T, A,B, C,D, X2); |
256 | HOST_c2l(data, l); | 229 | HOST_c2l(data, l); |
257 | X( 4) = l; | 230 | X4 = l; |
258 | BODY_00_15( 3, D,E, T,A, B,C, X( 3)); | 231 | BODY_00_15( 3, D,E, T,A, B,C, X3); |
259 | HOST_c2l(data, l); | 232 | HOST_c2l(data, l); |
260 | X( 5) = l; | 233 | X5 = l; |
261 | BODY_00_15( 4, C,D, E,T, A,B, X( 4)); | 234 | BODY_00_15( 4, C,D, E,T, A,B, X4); |
262 | HOST_c2l(data, l); | 235 | HOST_c2l(data, l); |
263 | X( 6) = l; | 236 | X6 = l; |
264 | BODY_00_15( 5, B,C, D,E, T,A, X( 5)); | 237 | BODY_00_15( 5, B,C, D,E, T,A, X5); |
265 | HOST_c2l(data, l); | 238 | HOST_c2l(data, l); |
266 | X( 7) = l; | 239 | X7 = l; |
267 | BODY_00_15( 6, A,B, C,D, E,T, X( 6)); | 240 | BODY_00_15( 6, A,B, C,D, E,T, X6); |
268 | HOST_c2l(data, l); | 241 | HOST_c2l(data, l); |
269 | X( 8) = l; | 242 | X8 = l; |
270 | BODY_00_15( 7, T,A, B,C, D,E, X( 7)); | 243 | BODY_00_15( 7, T,A, B,C, D,E, X7); |
271 | HOST_c2l(data, l); | 244 | HOST_c2l(data, l); |
272 | X( 9) = l; | 245 | X9 = l; |
273 | BODY_00_15( 8, E,T, A,B, C,D, X( 8)); | 246 | BODY_00_15( 8, E,T, A,B, C,D, X8); |
274 | HOST_c2l(data, l); | 247 | HOST_c2l(data, l); |
275 | X(10) = l; | 248 | X10 = l; |
276 | BODY_00_15( 9, D,E, T,A, B,C, X( 9)); | 249 | BODY_00_15( 9, D,E, T,A, B,C, X9); |
277 | HOST_c2l(data, l); | 250 | HOST_c2l(data, l); |
278 | X(11) = l; | 251 | X11 = l; |
279 | BODY_00_15(10, C,D, E,T, A,B, X(10)); | 252 | BODY_00_15(10, C,D, E,T, A,B, X10); |
280 | HOST_c2l(data, l); | 253 | HOST_c2l(data, l); |
281 | X(12) = l; | 254 | X12 = l; |
282 | BODY_00_15(11, B,C, D,E, T,A, X(11)); | 255 | BODY_00_15(11, B,C, D,E, T,A, X11); |
283 | HOST_c2l(data, l); | 256 | HOST_c2l(data, l); |
284 | X(13) = l; | 257 | X13 = l; |
285 | BODY_00_15(12, A,B, C,D, E,T, X(12)); | 258 | BODY_00_15(12, A,B, C,D, E,T, X12); |
286 | HOST_c2l(data, l); | 259 | HOST_c2l(data, l); |
287 | X(14) = l; | 260 | X14 = l; |
288 | BODY_00_15(13, T,A, B,C, D,E, X(13)); | 261 | BODY_00_15(13, T,A, B,C, D,E, X13); |
289 | HOST_c2l(data, l); | 262 | HOST_c2l(data, l); |
290 | X(15) = l; | 263 | X15 = l; |
291 | BODY_00_15(14, E,T, A,B, C,D, X(14)); | 264 | BODY_00_15(14, E,T, A,B, C,D, X14); |
292 | BODY_00_15(15, D,E, T,A, B,C, X(15)); | 265 | BODY_00_15(15, D,E, T,A, B,C, X15); |
293 | } | 266 | } |
294 | 267 | ||
295 | BODY_16_19(16, C,D, E,T, A,B, X( 0), X( 0), X( 2), X( 8), X(13)); | 268 | BODY_16_19(16, C,D, E,T, A,B, X0, X0, X2, X8, X13); |
296 | BODY_16_19(17, B,C, D,E, T,A, X( 1), X( 1), X( 3), X( 9), X(14)); | 269 | BODY_16_19(17, B,C, D,E, T,A, X1, X1, X3, X9, X14); |
297 | BODY_16_19(18, A,B, C,D, E,T, X( 2), X( 2), X( 4), X(10), X(15)); | 270 | BODY_16_19(18, A,B, C,D, E,T, X2, X2, X4, X10, X15); |
298 | BODY_16_19(19, T,A, B,C, D,E, X( 3), X( 3), X( 5), X(11), X( 0)); | 271 | BODY_16_19(19, T,A, B,C, D,E, X3, X3, X5, X11, X0); |
299 | 272 | ||
300 | BODY_20_31(20, E,T, A,B, C,D, X( 4), X( 4), X( 6), X(12), X( 1)); | 273 | BODY_20_31(20, E,T, A,B, C,D, X4, X4, X6, X12, X1); |
301 | BODY_20_31(21, D,E, T,A, B,C, X( 5), X( 5), X( 7), X(13), X( 2)); | 274 | BODY_20_31(21, D,E, T,A, B,C, X5, X5, X7, X13, X2); |
302 | BODY_20_31(22, C,D, E,T, A,B, X( 6), X( 6), X( 8), X(14), X( 3)); | 275 | BODY_20_31(22, C,D, E,T, A,B, X6, X6, X8, X14, X3); |
303 | BODY_20_31(23, B,C, D,E, T,A, X( 7), X( 7), X( 9), X(15), X( 4)); | 276 | BODY_20_31(23, B,C, D,E, T,A, X7, X7, X9, X15, X4); |
304 | BODY_20_31(24, A,B, C,D, E,T, X( 8), X( 8), X(10), X( 0), X( 5)); | 277 | BODY_20_31(24, A,B, C,D, E,T, X8, X8, X10, X0, X5); |
305 | BODY_20_31(25, T,A, B,C, D,E, X( 9), X( 9), X(11), X( 1), X( 6)); | 278 | BODY_20_31(25, T,A, B,C, D,E, X9, X9, X11, X1, X6); |
306 | BODY_20_31(26, E,T, A,B, C,D, X(10), X(10), X(12), X( 2), X( 7)); | 279 | BODY_20_31(26, E,T, A,B, C,D, X10, X10, X12, X2, X7); |
307 | BODY_20_31(27, D,E, T,A, B,C, X(11), X(11), X(13), X( 3), X( 8)); | 280 | BODY_20_31(27, D,E, T,A, B,C, X11, X11, X13, X3, X8); |
308 | BODY_20_31(28, C,D, E,T, A,B, X(12), X(12), X(14), X( 4), X( 9)); | 281 | BODY_20_31(28, C,D, E,T, A,B, X12, X12, X14, X4, X9); |
309 | BODY_20_31(29, B,C, D,E, T,A, X(13), X(13), X(15), X( 5), X(10)); | 282 | BODY_20_31(29, B,C, D,E, T,A, X13, X13, X15, X5, X10); |
310 | BODY_20_31(30, A,B, C,D, E,T, X(14), X(14), X( 0), X( 6), X(11)); | 283 | BODY_20_31(30, A,B, C,D, E,T, X14, X14, X0, X6, X11); |
311 | BODY_20_31(31, T,A, B,C, D,E, X(15), X(15), X( 1), X( 7), X(12)); | 284 | BODY_20_31(31, T,A, B,C, D,E, X15, X15, X1, X7, X12); |
312 | 285 | ||
313 | BODY_32_39(32, E,T, A,B, C,D, X( 0), X( 2), X( 8), X(13)); | 286 | BODY_32_39(32, E,T, A,B, C,D, X0, X2, X8, X13); |
314 | BODY_32_39(33, D,E, T,A, B,C, X( 1), X( 3), X( 9), X(14)); | 287 | BODY_32_39(33, D,E, T,A, B,C, X1, X3, X9, X14); |
315 | BODY_32_39(34, C,D, E,T, A,B, X( 2), X( 4), X(10), X(15)); | 288 | BODY_32_39(34, C,D, E,T, A,B, X2, X4, X10, X15); |
316 | BODY_32_39(35, B,C, D,E, T,A, X( 3), X( 5), X(11), X( 0)); | 289 | BODY_32_39(35, B,C, D,E, T,A, X3, X5, X11, X0); |
317 | BODY_32_39(36, A,B, C,D, E,T, X( 4), X( 6), X(12), X( 1)); | 290 | BODY_32_39(36, A,B, C,D, E,T, X4, X6, X12, X1); |
318 | BODY_32_39(37, T,A, B,C, D,E, X( 5), X( 7), X(13), X( 2)); | 291 | BODY_32_39(37, T,A, B,C, D,E, X5, X7, X13, X2); |
319 | BODY_32_39(38, E,T, A,B, C,D, X( 6), X( 8), X(14), X( 3)); | 292 | BODY_32_39(38, E,T, A,B, C,D, X6, X8, X14, X3); |
320 | BODY_32_39(39, D,E, T,A, B,C, X( 7), X( 9), X(15), X( 4)); | 293 | BODY_32_39(39, D,E, T,A, B,C, X7, X9, X15, X4); |
321 | 294 | ||
322 | BODY_40_59(40, C,D, E,T, A,B, X( 8), X(10), X( 0), X( 5)); | 295 | BODY_40_59(40, C,D, E,T, A,B, X8, X10, X0, X5); |
323 | BODY_40_59(41, B,C, D,E, T,A, X( 9), X(11), X( 1), X( 6)); | 296 | BODY_40_59(41, B,C, D,E, T,A, X9, X11, X1, X6); |
324 | BODY_40_59(42, A,B, C,D, E,T, X(10), X(12), X( 2), X( 7)); | 297 | BODY_40_59(42, A,B, C,D, E,T, X10, X12, X2, X7); |
325 | BODY_40_59(43, T,A, B,C, D,E, X(11), X(13), X( 3), X( 8)); | 298 | BODY_40_59(43, T,A, B,C, D,E, X11, X13, X3, X8); |
326 | BODY_40_59(44, E,T, A,B, C,D, X(12), X(14), X( 4), X( 9)); | 299 | BODY_40_59(44, E,T, A,B, C,D, X12, X14, X4, X9); |
327 | BODY_40_59(45, D,E, T,A, B,C, X(13), X(15), X( 5), X(10)); | 300 | BODY_40_59(45, D,E, T,A, B,C, X13, X15, X5, X10); |
328 | BODY_40_59(46, C,D, E,T, A,B, X(14), X( 0), X( 6), X(11)); | 301 | BODY_40_59(46, C,D, E,T, A,B, X14, X0, X6, X11); |
329 | BODY_40_59(47, B,C, D,E, T,A, X(15), X( 1), X( 7), X(12)); | 302 | BODY_40_59(47, B,C, D,E, T,A, X15, X1, X7, X12); |
330 | BODY_40_59(48, A,B, C,D, E,T, X( 0), X( 2), X( 8), X(13)); | 303 | BODY_40_59(48, A,B, C,D, E,T, X0, X2, X8, X13); |
331 | BODY_40_59(49, T,A, B,C, D,E, X( 1), X( 3), X( 9), X(14)); | 304 | BODY_40_59(49, T,A, B,C, D,E, X1, X3, X9, X14); |
332 | BODY_40_59(50, E,T, A,B, C,D, X( 2), X( 4), X(10), X(15)); | 305 | BODY_40_59(50, E,T, A,B, C,D, X2, X4, X10, X15); |
333 | BODY_40_59(51, D,E, T,A, B,C, X( 3), X( 5), X(11), X( 0)); | 306 | BODY_40_59(51, D,E, T,A, B,C, X3, X5, X11, X0); |
334 | BODY_40_59(52, C,D, E,T, A,B, X( 4), X( 6), X(12), X( 1)); | 307 | BODY_40_59(52, C,D, E,T, A,B, X4, X6, X12, X1); |
335 | BODY_40_59(53, B,C, D,E, T,A, X( 5), X( 7), X(13), X( 2)); | 308 | BODY_40_59(53, B,C, D,E, T,A, X5, X7, X13, X2); |
336 | BODY_40_59(54, A,B, C,D, E,T, X( 6), X( 8), X(14), X( 3)); | 309 | BODY_40_59(54, A,B, C,D, E,T, X6, X8, X14, X3); |
337 | BODY_40_59(55, T,A, B,C, D,E, X( 7), X( 9), X(15), X( 4)); | 310 | BODY_40_59(55, T,A, B,C, D,E, X7, X9, X15, X4); |
338 | BODY_40_59(56, E,T, A,B, C,D, X( 8), X(10), X( 0), X( 5)); | 311 | BODY_40_59(56, E,T, A,B, C,D, X8, X10, X0, X5); |
339 | BODY_40_59(57, D,E, T,A, B,C, X( 9), X(11), X( 1), X( 6)); | 312 | BODY_40_59(57, D,E, T,A, B,C, X9, X11, X1, X6); |
340 | BODY_40_59(58, C,D, E,T, A,B, X(10), X(12), X( 2), X( 7)); | 313 | BODY_40_59(58, C,D, E,T, A,B, X10, X12, X2, X7); |
341 | BODY_40_59(59, B,C, D,E, T,A, X(11), X(13), X( 3), X( 8)); | 314 | BODY_40_59(59, B,C, D,E, T,A, X11, X13, X3, X8); |
342 | 315 | ||
343 | BODY_60_79(60, A,B, C,D, E,T, X(12), X(14), X( 4), X( 9)); | 316 | BODY_60_79(60, A,B, C,D, E,T, X12, X14, X4, X9); |
344 | BODY_60_79(61, T,A, B,C, D,E, X(13), X(15), X( 5), X(10)); | 317 | BODY_60_79(61, T,A, B,C, D,E, X13, X15, X5, X10); |
345 | BODY_60_79(62, E,T, A,B, C,D, X(14), X( 0), X( 6), X(11)); | 318 | BODY_60_79(62, E,T, A,B, C,D, X14, X0, X6, X11); |
346 | BODY_60_79(63, D,E, T,A, B,C, X(15), X( 1), X( 7), X(12)); | 319 | BODY_60_79(63, D,E, T,A, B,C, X15, X1, X7, X12); |
347 | BODY_60_79(64, C,D, E,T, A,B, X( 0), X( 2), X( 8), X(13)); | 320 | BODY_60_79(64, C,D, E,T, A,B, X0, X2, X8, X13); |
348 | BODY_60_79(65, B,C, D,E, T,A, X( 1), X( 3), X( 9), X(14)); | 321 | BODY_60_79(65, B,C, D,E, T,A, X1, X3, X9, X14); |
349 | BODY_60_79(66, A,B, C,D, E,T, X( 2), X( 4), X(10), X(15)); | 322 | BODY_60_79(66, A,B, C,D, E,T, X2, X4, X10, X15); |
350 | BODY_60_79(67, T,A, B,C, D,E, X( 3), X( 5), X(11), X( 0)); | 323 | BODY_60_79(67, T,A, B,C, D,E, X3, X5, X11, X0); |
351 | BODY_60_79(68, E,T, A,B, C,D, X( 4), X( 6), X(12), X( 1)); | 324 | BODY_60_79(68, E,T, A,B, C,D, X4, X6, X12, X1); |
352 | BODY_60_79(69, D,E, T,A, B,C, X( 5), X( 7), X(13), X( 2)); | 325 | BODY_60_79(69, D,E, T,A, B,C, X5, X7, X13, X2); |
353 | BODY_60_79(70, C,D, E,T, A,B, X( 6), X( 8), X(14), X( 3)); | 326 | BODY_60_79(70, C,D, E,T, A,B, X6, X8, X14, X3); |
354 | BODY_60_79(71, B,C, D,E, T,A, X( 7), X( 9), X(15), X( 4)); | 327 | BODY_60_79(71, B,C, D,E, T,A, X7, X9, X15, X4); |
355 | BODY_60_79(72, A,B, C,D, E,T, X( 8), X(10), X( 0), X( 5)); | 328 | BODY_60_79(72, A,B, C,D, E,T, X8, X10, X0, X5); |
356 | BODY_60_79(73, T,A, B,C, D,E, X( 9), X(11), X( 1), X( 6)); | 329 | BODY_60_79(73, T,A, B,C, D,E, X9, X11, X1, X6); |
357 | BODY_60_79(74, E,T, A,B, C,D, X(10), X(12), X( 2), X( 7)); | 330 | BODY_60_79(74, E,T, A,B, C,D, X10, X12, X2, X7); |
358 | BODY_60_79(75, D,E, T,A, B,C, X(11), X(13), X( 3), X( 8)); | 331 | BODY_60_79(75, D,E, T,A, B,C, X11, X13, X3, X8); |
359 | BODY_60_79(76, C,D, E,T, A,B, X(12), X(14), X( 4), X( 9)); | 332 | BODY_60_79(76, C,D, E,T, A,B, X12, X14, X4, X9); |
360 | BODY_60_79(77, B,C, D,E, T,A, X(13), X(15), X( 5), X(10)); | 333 | BODY_60_79(77, B,C, D,E, T,A, X13, X15, X5, X10); |
361 | BODY_60_79(78, A,B, C,D, E,T, X(14), X( 0), X( 6), X(11)); | 334 | BODY_60_79(78, A,B, C,D, E,T, X14, X0, X6, X11); |
362 | BODY_60_79(79, T,A, B,C, D,E, X(15), X( 1), X( 7), X(12)); | 335 | BODY_60_79(79, T,A, B,C, D,E, X15, X1, X7, X12); |
363 | 336 | ||
364 | c->h0 = (c->h0 + E)&0xffffffffL; | 337 | c->h0 = (c->h0 + E)&0xffffffffL; |
365 | c->h1 = (c->h1 + T)&0xffffffffL; | 338 | c->h1 = (c->h1 + T)&0xffffffffL; |