crypto: sha512 - Fix byte counter overflow in SHA-512
[linux-2.6.git] / crypto / tea.c
index a6a02b3..412bc74 100644 (file)
@@ -23,7 +23,6 @@
 #include <linux/module.h>
 #include <linux/mm.h>
 #include <asm/byteorder.h>
-#include <asm/scatterlist.h>
 #include <linux/crypto.h>
 #include <linux/types.h>
 
@@ -45,17 +44,11 @@ struct xtea_ctx {
        u32 KEY[4];
 };
 
-static int tea_setkey(void *ctx_arg, const u8 *in_key,
-                       unsigned int key_len, u32 *flags)
-{ 
-       struct tea_ctx *ctx = ctx_arg;
+static int tea_setkey(struct crypto_tfm *tfm, const u8 *in_key,
+                     unsigned int key_len)
+{
+       struct tea_ctx *ctx = crypto_tfm_ctx(tfm);
        const __le32 *key = (const __le32 *)in_key;
-       
-       if (key_len != 16)
-       {
-               *flags |= CRYPTO_TFM_RES_BAD_KEY_LEN;
-               return -EINVAL;
-       }
 
        ctx->KEY[0] = le32_to_cpu(key[0]);
        ctx->KEY[1] = le32_to_cpu(key[1]);
@@ -66,12 +59,11 @@ static int tea_setkey(void *ctx_arg, const u8 *in_key,
 
 }
 
-static void tea_encrypt(void *ctx_arg, u8 *dst, const u8 *src)
-{ 
+static void tea_encrypt(struct crypto_tfm *tfm, u8 *dst, const u8 *src)
+{
        u32 y, z, n, sum = 0;
        u32 k0, k1, k2, k3;
-
-       struct tea_ctx *ctx = ctx_arg;
+       struct tea_ctx *ctx = crypto_tfm_ctx(tfm);
        const __le32 *in = (const __le32 *)src;
        __le32 *out = (__le32 *)dst;
 
@@ -95,11 +87,11 @@ static void tea_encrypt(void *ctx_arg, u8 *dst, const u8 *src)
        out[1] = cpu_to_le32(z);
 }
 
-static void tea_decrypt(void *ctx_arg, u8 *dst, const u8 *src)
-{ 
+static void tea_decrypt(struct crypto_tfm *tfm, u8 *dst, const u8 *src)
+{
        u32 y, z, n, sum;
        u32 k0, k1, k2, k3;
-       struct tea_ctx *ctx = ctx_arg;
+       struct tea_ctx *ctx = crypto_tfm_ctx(tfm);
        const __le32 *in = (const __le32 *)src;
        __le32 *out = (__le32 *)dst;
 
@@ -125,17 +117,11 @@ static void tea_decrypt(void *ctx_arg, u8 *dst, const u8 *src)
        out[1] = cpu_to_le32(z);
 }
 
-static int xtea_setkey(void *ctx_arg, const u8 *in_key,
-                       unsigned int key_len, u32 *flags)
-{ 
-       struct xtea_ctx *ctx = ctx_arg;
+static int xtea_setkey(struct crypto_tfm *tfm, const u8 *in_key,
+                      unsigned int key_len)
+{
+       struct xtea_ctx *ctx = crypto_tfm_ctx(tfm);
        const __le32 *key = (const __le32 *)in_key;
-       
-       if (key_len != 16)
-       {
-               *flags |= CRYPTO_TFM_RES_BAD_KEY_LEN;
-               return -EINVAL;
-       }
 
        ctx->KEY[0] = le32_to_cpu(key[0]);
        ctx->KEY[1] = le32_to_cpu(key[1]);
@@ -146,12 +132,11 @@ static int xtea_setkey(void *ctx_arg, const u8 *in_key,
 
 }
 
-static void xtea_encrypt(void *ctx_arg, u8 *dst, const u8 *src)
-{ 
+static void xtea_encrypt(struct crypto_tfm *tfm, u8 *dst, const u8 *src)
+{
        u32 y, z, sum = 0;
        u32 limit = XTEA_DELTA * XTEA_ROUNDS;
-
-       struct xtea_ctx *ctx = ctx_arg;
+       struct xtea_ctx *ctx = crypto_tfm_ctx(tfm);
        const __le32 *in = (const __le32 *)src;
        __le32 *out = (__le32 *)dst;
 
@@ -168,10 +153,10 @@ static void xtea_encrypt(void *ctx_arg, u8 *dst, const u8 *src)
        out[1] = cpu_to_le32(z);
 }
 
-static void xtea_decrypt(void *ctx_arg, u8 *dst, const u8 *src)
-{ 
+static void xtea_decrypt(struct crypto_tfm *tfm, u8 *dst, const u8 *src)
+{
        u32 y, z, sum;
-       struct tea_ctx *ctx = ctx_arg;
+       struct tea_ctx *ctx = crypto_tfm_ctx(tfm);
        const __le32 *in = (const __le32 *)src;
        __le32 *out = (__le32 *)dst;
 
@@ -191,12 +176,11 @@ static void xtea_decrypt(void *ctx_arg, u8 *dst, const u8 *src)
 }
 
 
-static void xeta_encrypt(void *ctx_arg, u8 *dst, const u8 *src)
-{ 
+static void xeta_encrypt(struct crypto_tfm *tfm, u8 *dst, const u8 *src)
+{
        u32 y, z, sum = 0;
        u32 limit = XTEA_DELTA * XTEA_ROUNDS;
-
-       struct xtea_ctx *ctx = ctx_arg;
+       struct xtea_ctx *ctx = crypto_tfm_ctx(tfm);
        const __le32 *in = (const __le32 *)src;
        __le32 *out = (__le32 *)dst;
 
@@ -213,10 +197,10 @@ static void xeta_encrypt(void *ctx_arg, u8 *dst, const u8 *src)
        out[1] = cpu_to_le32(z);
 }
 
-static void xeta_decrypt(void *ctx_arg, u8 *dst, const u8 *src)
-{ 
+static void xeta_decrypt(struct crypto_tfm *tfm, u8 *dst, const u8 *src)
+{
        u32 y, z, sum;
-       struct tea_ctx *ctx = ctx_arg;
+       struct tea_ctx *ctx = crypto_tfm_ctx(tfm);
        const __le32 *in = (const __le32 *)src;
        __le32 *out = (__le32 *)dst;
 
@@ -283,7 +267,7 @@ static struct crypto_alg xeta_alg = {
        .cia_decrypt            =       xeta_decrypt } }
 };
 
-static int __init init(void)
+static int __init tea_mod_init(void)
 {
        int ret = 0;
        
@@ -308,7 +292,7 @@ out:
        return ret;
 }
 
-static void __exit fini(void)
+static void __exit tea_mod_fini(void)
 {
        crypto_unregister_alg(&tea_alg);
        crypto_unregister_alg(&xtea_alg);
@@ -318,8 +302,8 @@ static void __exit fini(void)
 MODULE_ALIAS("xtea");
 MODULE_ALIAS("xeta");
 
-module_init(init);
-module_exit(fini);
+module_init(tea_mod_init);
+module_exit(tea_mod_fini);
 
 MODULE_LICENSE("GPL");
 MODULE_DESCRIPTION("TEA, XTEA & XETA Cryptographic Algorithms");