]> git.pld-linux.org Git - packages/perl-Crypt-RC6.git/commitdiff
- support big endians
authorJakub Bogusz <qboosh@pld-linux.org>
Sun, 9 May 2004 00:16:44 +0000 (00:16 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    perl-Crypt-RC6-endian.patch -> 1.1

perl-Crypt-RC6-endian.patch [new file with mode: 0644]

diff --git a/perl-Crypt-RC6-endian.patch b/perl-Crypt-RC6-endian.patch
new file mode 100644 (file)
index 0000000..7548d94
--- /dev/null
@@ -0,0 +1,86 @@
+--- Crypt-RC6-1.0/_rc6.c.orig  2002-03-16 22:54:10.000000000 +0000
++++ Crypt-RC6-1.0/_rc6.c       2004-05-09 00:14:37.000000000 +0000
+@@ -5,6 +5,14 @@
\r
+ #include "platform.h"\r
\r
++#include <endian.h>\r
++#if __BYTE_ORDER == __BIG_ENDIAN\r
++#  include <byteswap.h>\r
++#  define regswp(x) bswap_32(x)\r
++#else\r
++#  define regswp(x) x\r
++#endif\r
++\r
+ /*\r
+     function: rc6_generateKeySchedule\r
\r
+@@ -27,6 +35,8 @@
+     /* Move the bytes of initKey into L, little-endian fashion. */\r
\r
+     memcpy(bPtr, initKey, keyLength);\r
++    for(i=0; i<8; i++)\r
++          L[i] = regswp(L[i]);\r
\r
+     /* Set S[0] to the constant P32, then generate the rest of S. */\r
\r
+@@ -61,10 +71,10 @@
\r
+     regPtr = (unsigned char*)&regs[0];\r
+     memcpy(regPtr, input, 16);\r
+-    A = regs[0]; /* Cook up A, B, C, and D as our four 32-bit registers. */\r
+-    B = regs[1];\r
+-    C = regs[2];\r
+-    D = regs[3];\r
++    A = regswp(regs[0]); /* Cook up A, B, C, and D as our four 32-bit registers. */\r
++    B = regswp(regs[1]);\r
++    C = regswp(regs[2]);\r
++    D = regswp(regs[3]);\r
+       B += S[0];\r
+       D += S[1];\r
+       for (j = 1; j <= 20; j++)  /* Perform 20 rounds. */\r
+@@ -81,10 +91,10 @@
+     }\r
+       A += S[42];\r
+       C += S[43];\r
+-    regs[0] = A;\r
+-    regs[1] = B;\r
+-    regs[2] = C;\r
+-    regs[3] = D;\r
++    regs[0] = regswp(A);\r
++    regs[1] = regswp(B);\r
++    regs[2] = regswp(C);\r
++    regs[3] = regswp(D);\r
+     memcpy(output, regPtr, 16);\r
+ }\r
\r
+@@ -104,10 +114,10 @@
\r
+     regPtr = (unsigned char*)&regs[0];\r
+     memcpy(regPtr, input, 16);\r
+-    A = regs[0];\r
+-    B = regs[1];\r
+-    C = regs[2];\r
+-    D = regs[3];\r
++    A = regswp(regs[0]);\r
++    B = regswp(regs[1]);\r
++    C = regswp(regs[2]);\r
++    D = regswp(regs[3]);\r
+       C -= S[43];\r
+       A -= S[42];\r
+       for (j = 20; j >= 1; j--)\r
+@@ -126,10 +136,10 @@
+       }\r
+       D -= S[1];\r
+       B -= S[0];\r
+-    regs[0] = A;\r
+-    regs[1] = B;\r
+-    regs[2] = C;\r
+-    regs[3] = D;\r
++    regs[0] = regswp(A);\r
++    regs[1] = regswp(B);\r
++    regs[2] = regswp(C);\r
++    regs[3] = regswp(D);\r
+     memcpy(output, regPtr, 16);\r
+ }\r
\r
This page took 0.222315 seconds and 4 git commands to generate.