aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/i386/crypto/aes-i586-asm.S9
-rw-r--r--arch/i386/crypto/aes.c18
2 files changed, 8 insertions, 19 deletions
diff --git a/arch/i386/crypto/aes-i586-asm.S b/arch/i386/crypto/aes-i586-asm.S
index 911b15377f2e..2851f7fe51e6 100644
--- a/arch/i386/crypto/aes-i586-asm.S
+++ b/arch/i386/crypto/aes-i586-asm.S
@@ -36,16 +36,13 @@
36.file "aes-i586-asm.S" 36.file "aes-i586-asm.S"
37.text 37.text
38 38
39// aes_rval aes_enc_blk(const unsigned char in_blk[], unsigned char out_blk[], const aes_ctx cx[1])//
40// aes_rval aes_dec_blk(const unsigned char in_blk[], unsigned char out_blk[], const aes_ctx cx[1])//
41
42#define tlen 1024 // length of each of 4 'xor' arrays (256 32-bit words) 39#define tlen 1024 // length of each of 4 'xor' arrays (256 32-bit words)
43 40
44// offsets to parameters with one register pushed onto stack 41// offsets to parameters with one register pushed onto stack
45 42
46#define in_blk 8 // input byte array address parameter 43#define in_blk 16 // input byte array address parameter
47#define out_blk 12 // output byte array address parameter 44#define out_blk 12 // output byte array address parameter
48#define ctx 16 // AES context structure 45#define ctx 8 // AES context structure
49 46
50// offsets in context structure 47// offsets in context structure
51 48
@@ -220,6 +217,7 @@
220 do_col (table, r5,r0,r1,r4, r2,r3); /* idx=r5 */ 217 do_col (table, r5,r0,r1,r4, r2,r3); /* idx=r5 */
221 218
222// AES (Rijndael) Encryption Subroutine 219// AES (Rijndael) Encryption Subroutine
220/* void aes_enc_blk(void *ctx, u8 *out_blk, const u8 *in_blk) */
223 221
224.global aes_enc_blk 222.global aes_enc_blk
225 223
@@ -295,6 +293,7 @@ aes_enc_blk:
295 ret 293 ret
296 294
297// AES (Rijndael) Decryption Subroutine 295// AES (Rijndael) Decryption Subroutine
296/* void aes_dec_blk(void *ctx, u8 *out_blk, const u8 *in_blk) */
298 297
299.global aes_dec_blk 298.global aes_dec_blk
300 299
diff --git a/arch/i386/crypto/aes.c b/arch/i386/crypto/aes.c
index a50397b1d5c7..a0e033510a3b 100644
--- a/arch/i386/crypto/aes.c
+++ b/arch/i386/crypto/aes.c
@@ -45,8 +45,8 @@
45#include <linux/crypto.h> 45#include <linux/crypto.h>
46#include <linux/linkage.h> 46#include <linux/linkage.h>
47 47
48asmlinkage void aes_enc_blk(const u8 *src, u8 *dst, void *ctx); 48asmlinkage void aes_enc_blk(void *ctx, u8 *dst, const u8 *src);
49asmlinkage void aes_dec_blk(const u8 *src, u8 *dst, void *ctx); 49asmlinkage void aes_dec_blk(void *ctx, u8 *dst, const u8 *src);
50 50
51#define AES_MIN_KEY_SIZE 16 51#define AES_MIN_KEY_SIZE 16
52#define AES_MAX_KEY_SIZE 32 52#define AES_MAX_KEY_SIZE 32
@@ -464,16 +464,6 @@ aes_set_key(void *ctx_arg, const u8 *in_key, unsigned int key_len, u32 *flags)
464 return 0; 464 return 0;
465} 465}
466 466
467static inline void aes_encrypt(void *ctx, u8 *dst, const u8 *src)
468{
469 aes_enc_blk(src, dst, ctx);
470}
471static inline void aes_decrypt(void *ctx, u8 *dst, const u8 *src)
472{
473 aes_dec_blk(src, dst, ctx);
474}
475
476
477static struct crypto_alg aes_alg = { 467static struct crypto_alg aes_alg = {
478 .cra_name = "aes", 468 .cra_name = "aes",
479 .cra_driver_name = "aes-i586", 469 .cra_driver_name = "aes-i586",
@@ -488,8 +478,8 @@ static struct crypto_alg aes_alg = {
488 .cia_min_keysize = AES_MIN_KEY_SIZE, 478 .cia_min_keysize = AES_MIN_KEY_SIZE,
489 .cia_max_keysize = AES_MAX_KEY_SIZE, 479 .cia_max_keysize = AES_MAX_KEY_SIZE,
490 .cia_setkey = aes_set_key, 480 .cia_setkey = aes_set_key,
491 .cia_encrypt = aes_encrypt, 481 .cia_encrypt = aes_enc_blk,
492 .cia_decrypt = aes_decrypt 482 .cia_decrypt = aes_dec_blk
493 } 483 }
494 } 484 }
495}; 485};