[CRYPTO] xts: XTS blockcipher mode implementation without partial blocks
[linux-2.6.git] / crypto / gf128mul.c
index 0a2aadf..ecbeaa1 100644 (file)
@@ -142,6 +142,17 @@ static void gf128mul_x_bbe(be128 *r, const be128 *x)
        r->b = cpu_to_be64((b << 1) ^ _tt);
 }
 
+void gf128mul_x_ble(be128 *r, const be128 *x)
+{
+       u64 a = le64_to_cpu(x->a);
+       u64 b = le64_to_cpu(x->b);
+       u64 _tt = gf128mul_table_bbe[b >> 63];
+
+       r->a = cpu_to_le64((a << 1) ^ _tt);
+       r->b = cpu_to_le64((b << 1) | (a >> 63));
+}
+EXPORT_SYMBOL(gf128mul_x_ble);
+
 static void gf128mul_x8_lle(be128 *x)
 {
        u64 a = be64_to_cpu(x->a);