Commit | Line | Data |
---|---|---|
5157dea8 | 1 | /* |
1da177e4 | 2 | * Glue Code for optimized 586 assembler version of AES |
1da177e4 | 3 | */ |
06ace7a9 | 4 | |
89e12654 | 5 | #include <crypto/aes.h> |
1da177e4 | 6 | #include <linux/module.h> |
1da177e4 | 7 | #include <linux/crypto.h> |
1da177e4 | 8 | |
6c2bb98b HX |
9 | asmlinkage void aes_enc_blk(struct crypto_tfm *tfm, u8 *dst, const u8 *src); |
10 | asmlinkage void aes_dec_blk(struct crypto_tfm *tfm, u8 *dst, const u8 *src); | |
1da177e4 | 11 | |
e90b1a2b HX |
12 | static void aes_encrypt(struct crypto_tfm *tfm, u8 *dst, const u8 *src) |
13 | { | |
14 | aes_enc_blk(tfm, dst, src); | |
15 | } | |
16 | ||
17 | static void aes_decrypt(struct crypto_tfm *tfm, u8 *dst, const u8 *src) | |
18 | { | |
19 | aes_dec_blk(tfm, dst, src); | |
20 | } | |
21 | ||
1da177e4 LT |
22 | static struct crypto_alg aes_alg = { |
23 | .cra_name = "aes", | |
c8a19c91 HX |
24 | .cra_driver_name = "aes-i586", |
25 | .cra_priority = 200, | |
1da177e4 LT |
26 | .cra_flags = CRYPTO_ALG_TYPE_CIPHER, |
27 | .cra_blocksize = AES_BLOCK_SIZE, | |
5157dea8 | 28 | .cra_ctxsize = sizeof(struct crypto_aes_ctx), |
1da177e4 LT |
29 | .cra_module = THIS_MODULE, |
30 | .cra_list = LIST_HEAD_INIT(aes_alg.cra_list), | |
31 | .cra_u = { | |
32 | .cipher = { | |
33 | .cia_min_keysize = AES_MIN_KEY_SIZE, | |
34 | .cia_max_keysize = AES_MAX_KEY_SIZE, | |
5157dea8 | 35 | .cia_setkey = crypto_aes_set_key, |
e90b1a2b HX |
36 | .cia_encrypt = aes_encrypt, |
37 | .cia_decrypt = aes_decrypt | |
1da177e4 LT |
38 | } |
39 | } | |
40 | }; | |
41 | ||
42 | static int __init aes_init(void) | |
43 | { | |
1da177e4 LT |
44 | return crypto_register_alg(&aes_alg); |
45 | } | |
46 | ||
47 | static void __exit aes_fini(void) | |
48 | { | |
49 | crypto_unregister_alg(&aes_alg); | |
50 | } | |
51 | ||
52 | module_init(aes_init); | |
53 | module_exit(aes_fini); | |
54 | ||
55 | MODULE_DESCRIPTION("Rijndael (AES) Cipher Algorithm, i586 asm optimized"); | |
56 | MODULE_LICENSE("Dual BSD/GPL"); | |
57 | MODULE_AUTHOR("Fruhwirth Clemens, James Morris, Brian Gladman, Adam Richter"); | |
58 | MODULE_ALIAS("aes"); |