summary refs log tree commit diff
path: root/crypto/src/crypto/digests/HarakaBase.cs
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/src/crypto/digests/HarakaBase.cs')
-rw-r--r--crypto/src/crypto/digests/HarakaBase.cs11
1 files changed, 7 insertions, 4 deletions
diff --git a/crypto/src/crypto/digests/HarakaBase.cs b/crypto/src/crypto/digests/HarakaBase.cs
index 37dda2163..1ca688914 100644
--- a/crypto/src/crypto/digests/HarakaBase.cs
+++ b/crypto/src/crypto/digests/HarakaBase.cs
@@ -102,7 +102,7 @@ namespace Org.BouncyCastle.Crypto.Digests
             s = SubBytes(s);
             s = ShiftRows(s);
             s = MixColumns(s);
-            XorWith(rk, s);
+            XorTo(rk, s);
             return s;
         }
 
@@ -131,11 +131,14 @@ namespace Org.BouncyCastle.Crypto.Digests
         }
 #endif
 
-        private static void XorWith(byte[] x, byte[] z)
+        private static void XorTo(byte[] x, byte[] z)
         {
-            for (int i = 0; i < 16; ++i)
+            for (int i = 0; i < 16; i += 4)
             {
-                z[i] ^= x[i];
+                z[i + 0] ^= x[i + 0];
+                z[i + 1] ^= x[i + 1];
+                z[i + 2] ^= x[i + 2];
+                z[i + 3] ^= x[i + 3];
             }
         }