rijndael: Make implementation big-endian.
[u/mdw/catacomb] / rijndael-base.c
index b2480c8..34881e3 100644 (file)
@@ -90,7 +90,7 @@ void rijndael_setup(rijndael_ctx *k, unsigned nb, const void *buf, size_t sz)
 
   p = buf;
   for (i = 0; i < nk; i++) {
-    k->w[i] = LOAD32_L(p);
+    k->w[i] = LOAD32_B(p);
     p += 4;
   }
 
@@ -102,8 +102,8 @@ void rijndael_setup(rijndael_ctx *k, unsigned nb, const void *buf, size_t sz)
   for (; i < nw; i++) {
     uint32 w = k->w[i - nk];
     if (i % nk == 0) {
-      ww = ROR32(ww, 8);
-      w ^= SUB(S, ww, ww, ww, ww) ^ *p++;
+      ww = ROL32(ww, 8);
+      w ^= SUB(S, ww, ww, ww, ww) ^ (*p++ << 24);
     } else if (nk > 6 && i % nk == 4)
       w ^= SUB(S, ww, ww, ww, ww);
     else