Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
arch
x86
crypto
aes_glue.c
Go to the documentation of this file.
1
/*
2
* Glue Code for the asm optimized version of the AES Cipher Algorithm
3
*
4
*/
5
6
#include <linux/module.h>
7
#include <crypto/aes.h>
8
#include <
asm/crypto/aes.h
>
9
10
asmlinkage
void
aes_enc_blk
(
struct
crypto_aes_ctx
*
ctx
,
u8
*
out
,
const
u8
*
in
);
11
asmlinkage
void
aes_dec_blk
(
struct
crypto_aes_ctx
*
ctx
,
u8
*
out
,
const
u8
*
in
);
12
13
void
crypto_aes_encrypt_x86
(
struct
crypto_aes_ctx
*
ctx
,
u8
*
dst
,
const
u8
*
src
)
14
{
15
aes_enc_blk
(ctx, dst, src);
16
}
17
EXPORT_SYMBOL_GPL
(
crypto_aes_encrypt_x86
);
18
19
void
crypto_aes_decrypt_x86
(
struct
crypto_aes_ctx
*
ctx
,
u8
*
dst
,
const
u8
*
src
)
20
{
21
aes_dec_blk
(ctx, dst, src);
22
}
23
EXPORT_SYMBOL_GPL
(
crypto_aes_decrypt_x86
);
24
25
static
void
aes_encrypt(
struct
crypto_tfm
*tfm,
u8
*
dst
,
const
u8
*
src
)
26
{
27
aes_enc_blk
(crypto_tfm_ctx(tfm), dst, src);
28
}
29
30
static
void
aes_decrypt(
struct
crypto_tfm
*tfm,
u8
*dst,
const
u8
*src)
31
{
32
aes_dec_blk
(crypto_tfm_ctx(tfm), dst, src);
33
}
34
35
static
struct
crypto_alg
aes_alg = {
36
.cra_name =
"aes"
,
37
.cra_driver_name =
"aes-asm"
,
38
.cra_priority = 200,
39
.cra_flags =
CRYPTO_ALG_TYPE_CIPHER
,
40
.cra_blocksize =
AES_BLOCK_SIZE
,
41
.cra_ctxsize =
sizeof
(
struct
crypto_aes_ctx
),
42
.cra_module =
THIS_MODULE
,
43
.cra_u = {
44
.cipher = {
45
.cia_min_keysize =
AES_MIN_KEY_SIZE
,
46
.cia_max_keysize =
AES_MAX_KEY_SIZE
,
47
.cia_setkey =
crypto_aes_set_key
,
48
.cia_encrypt = aes_encrypt,
49
.cia_decrypt = aes_decrypt
50
}
51
}
52
};
53
54
static
int
__init
aes_init(
void
)
55
{
56
return
crypto_register_alg
(&aes_alg);
57
}
58
59
static
void
__exit
aes_fini(
void
)
60
{
61
crypto_unregister_alg
(&aes_alg);
62
}
63
64
module_init
(aes_init);
65
module_exit
(aes_fini);
66
67
MODULE_DESCRIPTION
(
"Rijndael (AES) Cipher Algorithm, asm optimized"
);
68
MODULE_LICENSE
(
"GPL"
);
69
MODULE_ALIAS
(
"aes"
);
70
MODULE_ALIAS
(
"aes-asm"
);
Generated on Thu Jan 10 2013 12:55:01 for Linux Kernel by
1.8.2