1 --- Crypt-RC6-1.0/_rc6.c.orig 2002-03-16 22:54:10.000000000 +0000
2 +++ Crypt-RC6-1.0/_rc6.c 2004-05-09 00:14:37.000000000 +0000
5 #include "platform.h"
\r
8 +#if __BYTE_ORDER == __BIG_ENDIAN
\r
9 +# include <byteswap.h>
\r
10 +# define regswp(x) bswap_32(x)
\r
12 +# define regswp(x) x
\r
16 function: rc6_generateKeySchedule
\r
19 /* Move the bytes of initKey into L, little-endian fashion. */
\r
21 memcpy(bPtr, initKey, keyLength);
\r
22 + for(i=0; i<8; i++)
\r
23 + L[i] = regswp(L[i]);
\r
25 /* Set S[0] to the constant P32, then generate the rest of S. */
\r
29 regPtr = (unsigned char*)®s[0];
\r
30 memcpy(regPtr, input, 16);
\r
31 - A = regs[0]; /* Cook up A, B, C, and D as our four 32-bit registers. */
\r
35 + A = regswp(regs[0]); /* Cook up A, B, C, and D as our four 32-bit registers. */
\r
36 + B = regswp(regs[1]);
\r
37 + C = regswp(regs[2]);
\r
38 + D = regswp(regs[3]);
\r
41 for (j = 1; j <= 20; j++) /* Perform 20 rounds. */
\r
50 + regs[0] = regswp(A);
\r
51 + regs[1] = regswp(B);
\r
52 + regs[2] = regswp(C);
\r
53 + regs[3] = regswp(D);
\r
54 memcpy(output, regPtr, 16);
\r
59 regPtr = (unsigned char*)®s[0];
\r
60 memcpy(regPtr, input, 16);
\r
65 + A = regswp(regs[0]);
\r
66 + B = regswp(regs[1]);
\r
67 + C = regswp(regs[2]);
\r
68 + D = regswp(regs[3]);
\r
71 for (j = 20; j >= 1; j--)
\r
80 + regs[0] = regswp(A);
\r
81 + regs[1] = regswp(B);
\r
82 + regs[2] = regswp(C);
\r
83 + regs[3] = regswp(D);
\r
84 memcpy(output, regPtr, 16);
\r