Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6
[pandora-kernel.git] / arch / i386 / crypto / aes.c
index 1deb9ff..d3806da 100644 (file)
@@ -45,8 +45,8 @@
 #include <linux/crypto.h>
 #include <linux/linkage.h>
 
-asmlinkage void aes_enc_blk(const u8 *src, u8 *dst, void *ctx);
-asmlinkage void aes_dec_blk(const u8 *src, u8 *dst, void *ctx);
+asmlinkage void aes_enc_blk(struct crypto_tfm *tfm, u8 *dst, const u8 *src);
+asmlinkage void aes_dec_blk(struct crypto_tfm *tfm, u8 *dst, const u8 *src);
 
 #define AES_MIN_KEY_SIZE       16
 #define AES_MAX_KEY_SIZE       32
@@ -94,7 +94,6 @@ static u32 rcon_tab[RC_LENGTH];
 
 u32 ft_tab[4][256];
 u32 fl_tab[4][256];
-static u32 ls_tab[4][256];
 static u32 im_tab[4][256];
 u32 il_tab[4][256];
 u32 it_tab[4][256];
@@ -145,15 +144,6 @@ static void gen_tabs(void)
                fl_tab[2][i] = upr(w, 2);
                fl_tab[3][i] = upr(w, 3);
                
-               /*
-                * table for key schedule if fl_tab above is
-                * not of the required form
-                */
-               ls_tab[0][i] = w;
-               ls_tab[1][i] = upr(w, 1);
-               ls_tab[2][i] = upr(w, 2);
-               ls_tab[3][i] = upr(w, 3);
-               
                b = fi(inv_affine((u8)i));
                w = bytes2word(fe(b), f9(b), fd(b), fb(b));
 
@@ -388,12 +378,12 @@ static void gen_tabs(void)
        k[8*(i)+11] = ss[3];                                            \
 }
 
-static int
-aes_set_key(void *ctx_arg, const u8 *in_key, unsigned int key_len, u32 *flags)
+static int aes_set_key(struct crypto_tfm *tfm, const u8 *in_key,
+                      unsigned int key_len, u32 *flags)
 {
        int i;
        u32 ss[8];
-       struct aes_ctx *ctx = ctx_arg;
+       struct aes_ctx *ctx = crypto_tfm_ctx(tfm);
        const __le32 *key = (const __le32 *)in_key;
 
        /* encryption schedule */
@@ -474,18 +464,20 @@ aes_set_key(void *ctx_arg, const u8 *in_key, unsigned int key_len, u32 *flags)
        return 0;
 }
 
-static inline void aes_encrypt(void *ctx, u8 *dst, const u8 *src)
+static void aes_encrypt(struct crypto_tfm *tfm, u8 *dst, const u8 *src)
 {
-       aes_enc_blk(src, dst, ctx);
+       aes_enc_blk(tfm, dst, src);
 }
-static inline void aes_decrypt(void *ctx, u8 *dst, const u8 *src)
+
+static void aes_decrypt(struct crypto_tfm *tfm, u8 *dst, const u8 *src)
 {
-       aes_dec_blk(src, dst, ctx);
+       aes_dec_blk(tfm, dst, src);
 }
 
-
 static struct crypto_alg aes_alg = {
        .cra_name               =       "aes",
+       .cra_driver_name        =       "aes-i586",
+       .cra_priority           =       200,
        .cra_flags              =       CRYPTO_ALG_TYPE_CIPHER,
        .cra_blocksize          =       AES_BLOCK_SIZE,
        .cra_ctxsize            =       sizeof(struct aes_ctx),