90 | 90 |
|
91 | 91 |
static ulong32 setup_mix(ulong32 temp)
|
92 | 92 |
{
|
93 | |
return (Te4_3[byte(temp, 2)]) ^
|
94 | |
(Te4_2[byte(temp, 1)]) ^
|
95 | |
(Te4_1[byte(temp, 0)]) ^
|
96 | |
(Te4_0[byte(temp, 3)]);
|
|
93 |
return (Te4_3[LTC_BYTE(temp, 2)]) ^
|
|
94 |
(Te4_2[LTC_BYTE(temp, 1)]) ^
|
|
95 |
(Te4_1[LTC_BYTE(temp, 0)]) ^
|
|
96 |
(Te4_0[LTC_BYTE(temp, 3)]);
|
97 | 97 |
}
|
98 | 98 |
|
99 | 99 |
#ifndef ENCRYPT_ONLY
|
100 | 100 |
#ifdef LTC_SMALL_CODE
|
101 | 101 |
static ulong32 setup_mix2(ulong32 temp)
|
102 | 102 |
{
|
103 | |
return Td0(255 & Te4[byte(temp, 3)]) ^
|
104 | |
Td1(255 & Te4[byte(temp, 2)]) ^
|
105 | |
Td2(255 & Te4[byte(temp, 1)]) ^
|
106 | |
Td3(255 & Te4[byte(temp, 0)]);
|
|
103 |
return Td0(255 & Te4[LTC_BYTE(temp, 3)]) ^
|
|
104 |
Td1(255 & Te4[LTC_BYTE(temp, 2)]) ^
|
|
105 |
Td2(255 & Te4[LTC_BYTE(temp, 1)]) ^
|
|
106 |
Td3(255 & Te4[LTC_BYTE(temp, 0)]);
|
107 | 107 |
}
|
108 | 108 |
#endif
|
109 | 109 |
#endif
|
|
234 | 234 |
#else
|
235 | 235 |
temp = rrk[0];
|
236 | 236 |
rk[0] =
|
237 | |
Tks0[byte(temp, 3)] ^
|
238 | |
Tks1[byte(temp, 2)] ^
|
239 | |
Tks2[byte(temp, 1)] ^
|
240 | |
Tks3[byte(temp, 0)];
|
|
237 |
Tks0[LTC_BYTE(temp, 3)] ^
|
|
238 |
Tks1[LTC_BYTE(temp, 2)] ^
|
|
239 |
Tks2[LTC_BYTE(temp, 1)] ^
|
|
240 |
Tks3[LTC_BYTE(temp, 0)];
|
241 | 241 |
temp = rrk[1];
|
242 | 242 |
rk[1] =
|
243 | |
Tks0[byte(temp, 3)] ^
|
244 | |
Tks1[byte(temp, 2)] ^
|
245 | |
Tks2[byte(temp, 1)] ^
|
246 | |
Tks3[byte(temp, 0)];
|
|
243 |
Tks0[LTC_BYTE(temp, 3)] ^
|
|
244 |
Tks1[LTC_BYTE(temp, 2)] ^
|
|
245 |
Tks2[LTC_BYTE(temp, 1)] ^
|
|
246 |
Tks3[LTC_BYTE(temp, 0)];
|
247 | 247 |
temp = rrk[2];
|
248 | 248 |
rk[2] =
|
249 | |
Tks0[byte(temp, 3)] ^
|
250 | |
Tks1[byte(temp, 2)] ^
|
251 | |
Tks2[byte(temp, 1)] ^
|
252 | |
Tks3[byte(temp, 0)];
|
|
249 |
Tks0[LTC_BYTE(temp, 3)] ^
|
|
250 |
Tks1[LTC_BYTE(temp, 2)] ^
|
|
251 |
Tks2[LTC_BYTE(temp, 1)] ^
|
|
252 |
Tks3[LTC_BYTE(temp, 0)];
|
253 | 253 |
temp = rrk[3];
|
254 | 254 |
rk[3] =
|
255 | |
Tks0[byte(temp, 3)] ^
|
256 | |
Tks1[byte(temp, 2)] ^
|
257 | |
Tks2[byte(temp, 1)] ^
|
258 | |
Tks3[byte(temp, 0)];
|
|
255 |
Tks0[LTC_BYTE(temp, 3)] ^
|
|
256 |
Tks1[LTC_BYTE(temp, 2)] ^
|
|
257 |
Tks2[LTC_BYTE(temp, 1)] ^
|
|
258 |
Tks3[LTC_BYTE(temp, 0)];
|
259 | 259 |
#endif
|
260 | 260 |
|
261 | 261 |
}
|
|
310 | 310 |
for (r = 0; ; r++) {
|
311 | 311 |
rk += 4;
|
312 | 312 |
t0 =
|
313 | |
Te0(byte(s0, 3)) ^
|
314 | |
Te1(byte(s1, 2)) ^
|
315 | |
Te2(byte(s2, 1)) ^
|
316 | |
Te3(byte(s3, 0)) ^
|
|
313 |
Te0(LTC_BYTE(s0, 3)) ^
|
|
314 |
Te1(LTC_BYTE(s1, 2)) ^
|
|
315 |
Te2(LTC_BYTE(s2, 1)) ^
|
|
316 |
Te3(LTC_BYTE(s3, 0)) ^
|
317 | 317 |
rk[0];
|
318 | 318 |
t1 =
|
319 | |
Te0(byte(s1, 3)) ^
|
320 | |
Te1(byte(s2, 2)) ^
|
321 | |
Te2(byte(s3, 1)) ^
|
322 | |
Te3(byte(s0, 0)) ^
|
|
319 |
Te0(LTC_BYTE(s1, 3)) ^
|
|
320 |
Te1(LTC_BYTE(s2, 2)) ^
|
|
321 |
Te2(LTC_BYTE(s3, 1)) ^
|
|
322 |
Te3(LTC_BYTE(s0, 0)) ^
|
323 | 323 |
rk[1];
|
324 | 324 |
t2 =
|
325 | |
Te0(byte(s2, 3)) ^
|
326 | |
Te1(byte(s3, 2)) ^
|
327 | |
Te2(byte(s0, 1)) ^
|
328 | |
Te3(byte(s1, 0)) ^
|
|
325 |
Te0(LTC_BYTE(s2, 3)) ^
|
|
326 |
Te1(LTC_BYTE(s3, 2)) ^
|
|
327 |
Te2(LTC_BYTE(s0, 1)) ^
|
|
328 |
Te3(LTC_BYTE(s1, 0)) ^
|
329 | 329 |
rk[2];
|
330 | 330 |
t3 =
|
331 | |
Te0(byte(s3, 3)) ^
|
332 | |
Te1(byte(s0, 2)) ^
|
333 | |
Te2(byte(s1, 1)) ^
|
334 | |
Te3(byte(s2, 0)) ^
|
|
331 |
Te0(LTC_BYTE(s3, 3)) ^
|
|
332 |
Te1(LTC_BYTE(s0, 2)) ^
|
|
333 |
Te2(LTC_BYTE(s1, 1)) ^
|
|
334 |
Te3(LTC_BYTE(s2, 0)) ^
|
335 | 335 |
rk[3];
|
336 | 336 |
if (r == Nr-2) {
|
337 | 337 |
break;
|
|
348 | 348 |
r = Nr >> 1;
|
349 | 349 |
for (;;) {
|
350 | 350 |
t0 =
|
351 | |
Te0(byte(s0, 3)) ^
|
352 | |
Te1(byte(s1, 2)) ^
|
353 | |
Te2(byte(s2, 1)) ^
|
354 | |
Te3(byte(s3, 0)) ^
|
|
351 |
Te0(LTC_BYTE(s0, 3)) ^
|
|
352 |
Te1(LTC_BYTE(s1, 2)) ^
|
|
353 |
Te2(LTC_BYTE(s2, 1)) ^
|
|
354 |
Te3(LTC_BYTE(s3, 0)) ^
|
355 | 355 |
rk[4];
|
356 | 356 |
t1 =
|
357 | |
Te0(byte(s1, 3)) ^
|
358 | |
Te1(byte(s2, 2)) ^
|
359 | |
Te2(byte(s3, 1)) ^
|
360 | |
Te3(byte(s0, 0)) ^
|
|
357 |
Te0(LTC_BYTE(s1, 3)) ^
|
|
358 |
Te1(LTC_BYTE(s2, 2)) ^
|
|
359 |
Te2(LTC_BYTE(s3, 1)) ^
|
|
360 |
Te3(LTC_BYTE(s0, 0)) ^
|
361 | 361 |
rk[5];
|
362 | 362 |
t2 =
|
363 | |
Te0(byte(s2, 3)) ^
|
364 | |
Te1(byte(s3, 2)) ^
|
365 | |
Te2(byte(s0, 1)) ^
|
366 | |
Te3(byte(s1, 0)) ^
|
|
363 |
Te0(LTC_BYTE(s2, 3)) ^
|
|
364 |
Te1(LTC_BYTE(s3, 2)) ^
|
|
365 |
Te2(LTC_BYTE(s0, 1)) ^
|
|
366 |
Te3(LTC_BYTE(s1, 0)) ^
|
367 | 367 |
rk[6];
|
368 | 368 |
t3 =
|
369 | |
Te0(byte(s3, 3)) ^
|
370 | |
Te1(byte(s0, 2)) ^
|
371 | |
Te2(byte(s1, 1)) ^
|
372 | |
Te3(byte(s2, 0)) ^
|
|
369 |
Te0(LTC_BYTE(s3, 3)) ^
|
|
370 |
Te1(LTC_BYTE(s0, 2)) ^
|
|
371 |
Te2(LTC_BYTE(s1, 1)) ^
|
|
372 |
Te3(LTC_BYTE(s2, 0)) ^
|
373 | 373 |
rk[7];
|
374 | 374 |
|
375 | 375 |
rk += 8;
|
|
378 | 378 |
}
|
379 | 379 |
|
380 | 380 |
s0 =
|
381 | |
Te0(byte(t0, 3)) ^
|
382 | |
Te1(byte(t1, 2)) ^
|
383 | |
Te2(byte(t2, 1)) ^
|
384 | |
Te3(byte(t3, 0)) ^
|
|
381 |
Te0(LTC_BYTE(t0, 3)) ^
|
|
382 |
Te1(LTC_BYTE(t1, 2)) ^
|
|
383 |
Te2(LTC_BYTE(t2, 1)) ^
|
|
384 |
Te3(LTC_BYTE(t3, 0)) ^
|
385 | 385 |
rk[0];
|
386 | 386 |
s1 =
|
387 | |
Te0(byte(t1, 3)) ^
|
388 | |
Te1(byte(t2, 2)) ^
|
389 | |
Te2(byte(t3, 1)) ^
|
390 | |
Te3(byte(t0, 0)) ^
|
|
387 |
Te0(LTC_BYTE(t1, 3)) ^
|
|
388 |
Te1(LTC_BYTE(t2, 2)) ^
|
|
389 |
Te2(LTC_BYTE(t3, 1)) ^
|
|
390 |
Te3(LTC_BYTE(t0, 0)) ^
|
391 | 391 |
rk[1];
|
392 | 392 |
s2 =
|
393 | |
Te0(byte(t2, 3)) ^
|
394 | |
Te1(byte(t3, 2)) ^
|
395 | |
Te2(byte(t0, 1)) ^
|
396 | |
Te3(byte(t1, 0)) ^
|
|
393 |
Te0(LTC_BYTE(t2, 3)) ^
|
|
394 |
Te1(LTC_BYTE(t3, 2)) ^
|
|
395 |
Te2(LTC_BYTE(t0, 1)) ^
|
|
396 |
Te3(LTC_BYTE(t1, 0)) ^
|
397 | 397 |
rk[2];
|
398 | 398 |
s3 =
|
399 | |
Te0(byte(t3, 3)) ^
|
400 | |
Te1(byte(t0, 2)) ^
|
401 | |
Te2(byte(t1, 1)) ^
|
402 | |
Te3(byte(t2, 0)) ^
|
|
399 |
Te0(LTC_BYTE(t3, 3)) ^
|
|
400 |
Te1(LTC_BYTE(t0, 2)) ^
|
|
401 |
Te2(LTC_BYTE(t1, 1)) ^
|
|
402 |
Te3(LTC_BYTE(t2, 0)) ^
|
403 | 403 |
rk[3];
|
404 | 404 |
}
|
405 | 405 |
|
|
410 | 410 |
* map cipher state to byte array block:
|
411 | 411 |
*/
|
412 | 412 |
s0 =
|
413 | |
(Te4_3[byte(t0, 3)]) ^
|
414 | |
(Te4_2[byte(t1, 2)]) ^
|
415 | |
(Te4_1[byte(t2, 1)]) ^
|
416 | |
(Te4_0[byte(t3, 0)]) ^
|
|
413 |
(Te4_3[LTC_BYTE(t0, 3)]) ^
|
|
414 |
(Te4_2[LTC_BYTE(t1, 2)]) ^
|
|
415 |
(Te4_1[LTC_BYTE(t2, 1)]) ^
|
|
416 |
(Te4_0[LTC_BYTE(t3, 0)]) ^
|
417 | 417 |
rk[0];
|
418 | 418 |
STORE32H(s0, ct);
|
419 | 419 |
s1 =
|
420 | |
(Te4_3[byte(t1, 3)]) ^
|
421 | |
(Te4_2[byte(t2, 2)]) ^
|
422 | |
(Te4_1[byte(t3, 1)]) ^
|
423 | |
(Te4_0[byte(t0, 0)]) ^
|
|
420 |
(Te4_3[LTC_BYTE(t1, 3)]) ^
|
|
421 |
(Te4_2[LTC_BYTE(t2, 2)]) ^
|
|
422 |
(Te4_1[LTC_BYTE(t3, 1)]) ^
|
|
423 |
(Te4_0[LTC_BYTE(t0, 0)]) ^
|
424 | 424 |
rk[1];
|
425 | 425 |
STORE32H(s1, ct+4);
|
426 | 426 |
s2 =
|
427 | |
(Te4_3[byte(t2, 3)]) ^
|
428 | |
(Te4_2[byte(t3, 2)]) ^
|
429 | |
(Te4_1[byte(t0, 1)]) ^
|
430 | |
(Te4_0[byte(t1, 0)]) ^
|
|
427 |
(Te4_3[LTC_BYTE(t2, 3)]) ^
|
|
428 |
(Te4_2[LTC_BYTE(t3, 2)]) ^
|
|
429 |
(Te4_1[LTC_BYTE(t0, 1)]) ^
|
|
430 |
(Te4_0[LTC_BYTE(t1, 0)]) ^
|
431 | 431 |
rk[2];
|
432 | 432 |
STORE32H(s2, ct+8);
|
433 | 433 |
s3 =
|
434 | |
(Te4_3[byte(t3, 3)]) ^
|
435 | |
(Te4_2[byte(t0, 2)]) ^
|
436 | |
(Te4_1[byte(t1, 1)]) ^
|
437 | |
(Te4_0[byte(t2, 0)]) ^
|
|
434 |
(Te4_3[LTC_BYTE(t3, 3)]) ^
|
|
435 |
(Te4_2[LTC_BYTE(t0, 2)]) ^
|
|
436 |
(Te4_1[LTC_BYTE(t1, 1)]) ^
|
|
437 |
(Te4_0[LTC_BYTE(t2, 0)]) ^
|
438 | 438 |
rk[3];
|
439 | 439 |
STORE32H(s3, ct+12);
|
440 | 440 |
|
|
489 | 489 |
for (r = 0; ; r++) {
|
490 | 490 |
rk += 4;
|
491 | 491 |
t0 =
|
492 | |
Td0(byte(s0, 3)) ^
|
493 | |
Td1(byte(s3, 2)) ^
|
494 | |
Td2(byte(s2, 1)) ^
|
495 | |
Td3(byte(s1, 0)) ^
|
|
492 |
Td0(LTC_BYTE(s0, 3)) ^
|
|
493 |
Td1(LTC_BYTE(s3, 2)) ^
|
|
494 |
Td2(LTC_BYTE(s2, 1)) ^
|
|
495 |
Td3(LTC_BYTE(s1, 0)) ^
|
496 | 496 |
rk[0];
|
497 | 497 |
t1 =
|
498 | |
Td0(byte(s1, 3)) ^
|
499 | |
Td1(byte(s0, 2)) ^
|
500 | |
Td2(byte(s3, 1)) ^
|
501 | |
Td3(byte(s2, 0)) ^
|
|
498 |
Td0(LTC_BYTE(s1, 3)) ^
|
|
499 |
Td1(LTC_BYTE(s0, 2)) ^
|
|
500 |
Td2(LTC_BYTE(s3, 1)) ^
|
|
501 |
Td3(LTC_BYTE(s2, 0)) ^
|
502 | 502 |
rk[1];
|
503 | 503 |
t2 =
|
504 | |
Td0(byte(s2, 3)) ^
|
505 | |
Td1(byte(s1, 2)) ^
|
506 | |
Td2(byte(s0, 1)) ^
|
507 | |
Td3(byte(s3, 0)) ^
|
|
504 |
Td0(LTC_BYTE(s2, 3)) ^
|
|
505 |
Td1(LTC_BYTE(s1, 2)) ^
|
|
506 |
Td2(LTC_BYTE(s0, 1)) ^
|
|
507 |
Td3(LTC_BYTE(s3, 0)) ^
|
508 | 508 |
rk[2];
|
509 | 509 |
t3 =
|
510 | |
Td0(byte(s3, 3)) ^
|
511 | |
Td1(byte(s2, 2)) ^
|
512 | |
Td2(byte(s1, 1)) ^
|
513 | |
Td3(byte(s0, 0)) ^
|
|
510 |
Td0(LTC_BYTE(s3, 3)) ^
|
|
511 |
Td1(LTC_BYTE(s2, 2)) ^
|
|
512 |
Td2(LTC_BYTE(s1, 1)) ^
|
|
513 |
Td3(LTC_BYTE(s0, 0)) ^
|
514 | 514 |
rk[3];
|
515 | 515 |
if (r == Nr-2) {
|
516 | 516 |
break;
|
|
528 | 528 |
for (;;) {
|
529 | 529 |
|
530 | 530 |
t0 =
|
531 | |
Td0(byte(s0, 3)) ^
|
532 | |
Td1(byte(s3, 2)) ^
|
533 | |
Td2(byte(s2, 1)) ^
|
534 | |
Td3(byte(s1, 0)) ^
|
|
531 |
Td0(LTC_BYTE(s0, 3)) ^
|
|
532 |
Td1(LTC_BYTE(s3, 2)) ^
|
|
533 |
Td2(LTC_BYTE(s2, 1)) ^
|
|
534 |
Td3(LTC_BYTE(s1, 0)) ^
|
535 | 535 |
rk[4];
|
536 | 536 |
t1 =
|
537 | |
Td0(byte(s1, 3)) ^
|
538 | |
Td1(byte(s0, 2)) ^
|
539 | |
Td2(byte(s3, 1)) ^
|
540 | |
Td3(byte(s2, 0)) ^
|
|
537 |
Td0(LTC_BYTE(s1, 3)) ^
|
|
538 |
Td1(LTC_BYTE(s0, 2)) ^
|
|
539 |
Td2(LTC_BYTE(s3, 1)) ^
|
|
540 |
Td3(LTC_BYTE(s2, 0)) ^
|
541 | 541 |
rk[5];
|
542 | 542 |
t2 =
|
543 | |
Td0(byte(s2, 3)) ^
|
544 | |
Td1(byte(s1, 2)) ^
|
545 | |
Td2(byte(s0, 1)) ^
|
546 | |
Td3(byte(s3, 0)) ^
|
|
543 |
Td0(LTC_BYTE(s2, 3)) ^
|
|
544 |
Td1(LTC_BYTE(s1, 2)) ^
|
|
545 |
Td2(LTC_BYTE(s0, 1)) ^
|
|
546 |
Td3(LTC_BYTE(s3, 0)) ^
|
547 | 547 |
rk[6];
|
548 | 548 |
t3 =
|
549 | |
Td0(byte(s3, 3)) ^
|
550 | |
Td1(byte(s2, 2)) ^
|
551 | |
Td2(byte(s1, 1)) ^
|
552 | |
Td3(byte(s0, 0)) ^
|
|
549 |
Td0(LTC_BYTE(s3, 3)) ^
|
|
550 |
Td1(LTC_BYTE(s2, 2)) ^
|
|
551 |
Td2(LTC_BYTE(s1, 1)) ^
|
|
552 |
Td3(LTC_BYTE(s0, 0)) ^
|
553 | 553 |
rk[7];
|
554 | 554 |
|
555 | 555 |
rk += 8;
|
|
559 | 559 |
|
560 | 560 |
|
561 | 561 |
s0 =
|
562 | |
Td0(byte(t0, 3)) ^
|
563 | |
Td1(byte(t3, 2)) ^
|
564 | |
Td2(byte(t2, 1)) ^
|
565 | |
Td3(byte(t1, 0)) ^
|
|
562 |
Td0(LTC_BYTE(t0, 3)) ^
|
|
563 |
Td1(LTC_BYTE(t3, 2)) ^
|
|
564 |
Td2(LTC_BYTE(t2, 1)) ^
|
|
565 |
Td3(LTC_BYTE(t1, 0)) ^
|
566 | 566 |
rk[0];
|
567 | 567 |
s1 =
|
568 | |
Td0(byte(t1, 3)) ^
|
569 | |
Td1(byte(t0, 2)) ^
|
570 | |
Td2(byte(t3, 1)) ^
|
571 | |
Td3(byte(t2, 0)) ^
|
|
568 |
Td0(LTC_BYTE(t1, 3)) ^
|
|
569 |
Td1(LTC_BYTE(t0, 2)) ^
|
|
570 |
Td2(LTC_BYTE(t3, 1)) ^
|
|
571 |
Td3(LTC_BYTE(t2, 0)) ^
|
572 | 572 |
rk[1];
|
573 | 573 |
s2 =
|
574 | |
Td0(byte(t2, 3)) ^
|
575 | |
Td1(byte(t1, 2)) ^
|
576 | |
Td2(byte(t0, 1)) ^
|
577 | |
Td3(byte(t3, 0)) ^
|
|
574 |
Td0(LTC_BYTE(t2, 3)) ^
|
|
575 |
Td1(LTC_BYTE(t1, 2)) ^
|
|
576 |
Td2(LTC_BYTE(t0, 1)) ^
|
|
577 |
Td3(LTC_BYTE(t3, 0)) ^
|
578 | 578 |
rk[2];
|
579 | 579 |
s3 =
|
580 | |
Td0(byte(t3, 3)) ^
|
581 | |
Td1(byte(t2, 2)) ^
|
582 | |
Td2(byte(t1, 1)) ^
|
583 | |
Td3(byte(t0, 0)) ^
|
|
580 |
Td0(LTC_BYTE(t3, 3)) ^
|
|
581 |
Td1(LTC_BYTE(t2, 2)) ^
|
|
582 |
Td2(LTC_BYTE(t1, 1)) ^
|
|
583 |
Td3(LTC_BYTE(t0, 0)) ^
|
584 | 584 |
rk[3];
|
585 | 585 |
}
|
586 | 586 |
#endif
|
|
590 | 590 |
* map cipher state to byte array block:
|
591 | 591 |
*/
|
592 | 592 |
s0 =
|
593 | |
(Td4[byte(t0, 3)] & 0xff000000) ^
|
594 | |
(Td4[byte(t3, 2)] & 0x00ff0000) ^
|
595 | |
(Td4[byte(t2, 1)] & 0x0000ff00) ^
|
596 | |
(Td4[byte(t1, 0)] & 0x000000ff) ^
|
|
593 |
(Td4[LTC_BYTE(t0, 3)] & 0xff000000) ^
|
|
594 |
(Td4[LTC_BYTE(t3, 2)] & 0x00ff0000) ^
|
|
595 |
(Td4[LTC_BYTE(t2, 1)] & 0x0000ff00) ^
|
|
596 |
(Td4[LTC_BYTE(t1, 0)] & 0x000000ff) ^
|
597 | 597 |
rk[0];
|
598 | 598 |
STORE32H(s0, pt);
|
599 | 599 |
s1 =
|
600 | |
(Td4[byte(t1, 3)] & 0xff000000) ^
|
601 | |
(Td4[byte(t0, 2)] & 0x00ff0000) ^
|
602 | |
(Td4[byte(t3, 1)] & 0x0000ff00) ^
|
603 | |
(Td4[byte(t2, 0)] & 0x000000ff) ^
|
|
600 |
(Td4[LTC_BYTE(t1, 3)] & 0xff000000) ^
|
|
601 |
(Td4[LTC_BYTE(t0, 2)] & 0x00ff0000) ^
|
|
602 |
(Td4[LTC_BYTE(t3, 1)] & 0x0000ff00) ^
|
|
603 |
(Td4[LTC_BYTE(t2, 0)] & 0x000000ff) ^
|
604 | 604 |
rk[1];
|
605 | 605 |
STORE32H(s1, pt+4);
|
606 | 606 |
s2 =
|
607 | |
(Td4[byte(t2, 3)] & 0xff000000) ^
|
608 | |
(Td4[byte(t1, 2)] & 0x00ff0000) ^
|
609 | |
(Td4[byte(t0, 1)] & 0x0000ff00) ^
|
610 | |
(Td4[byte(t3, 0)] & 0x000000ff) ^
|
|
607 |
(Td4[LTC_BYTE(t2, 3)] & 0xff000000) ^
|
|
608 |
(Td4[LTC_BYTE(t1, 2)] & 0x00ff0000) ^
|
|
609 |
(Td4[LTC_BYTE(t0, 1)] & 0x0000ff00) ^
|
|
610 |
(Td4[LTC_BYTE(t3, 0)] & 0x000000ff) ^
|
611 | 611 |
rk[2];
|
612 | 612 |
STORE32H(s2, pt+8);
|
613 | 613 |
s3 =
|
614 | |
(Td4[byte(t3, 3)] & 0xff000000) ^
|
615 | |
(Td4[byte(t2, 2)] & 0x00ff0000) ^
|
616 | |
(Td4[byte(t1, 1)] & 0x0000ff00) ^
|
617 | |
(Td4[byte(t0, 0)] & 0x000000ff) ^
|
|
614 |
(Td4[LTC_BYTE(t3, 3)] & 0xff000000) ^
|
|
615 |
(Td4[LTC_BYTE(t2, 2)] & 0x00ff0000) ^
|
|
616 |
(Td4[LTC_BYTE(t1, 1)] & 0x0000ff00) ^
|
|
617 |
(Td4[LTC_BYTE(t0, 0)] & 0x000000ff) ^
|
618 | 618 |
rk[3];
|
619 | 619 |
STORE32H(s3, pt+12);
|
620 | 620 |
|