Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
8c00b90f
Commit
8c00b90f
authored
Aug 04, 2004
by
Deepak Saxena
Browse files
Options
Browse Files
Download
Plain Diff
Merge
bk://linux.bkbits.net/linux-2.5
into plexity.net:/home/dsaxena/src/linux-2.5-bk
parents
a685d7b5
1cc9f865
Changes
7
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
10 additions
and
1044 deletions
+10
-1044
Documentation/crypto/api-intro.txt
Documentation/crypto/api-intro.txt
+0
-1
arch/i386/Makefile
arch/i386/Makefile
+1
-2
arch/i386/crypto/Makefile
arch/i386/crypto/Makefile
+0
-9
arch/i386/crypto/aes-i586-asm.S
arch/i386/crypto/aes-i586-asm.S
+0
-903
arch/i386/crypto/aes-i586-glue.c
arch/i386/crypto/aes-i586-glue.c
+0
-105
crypto/Kconfig
crypto/Kconfig
+2
-22
drivers/md/multipath.c
drivers/md/multipath.c
+7
-2
No files found.
Documentation/crypto/api-intro.txt
View file @
8c00b90f
...
...
@@ -215,7 +215,6 @@ AES algorithm contributors:
Herbert Valerio Riedel
Kyle McMartin
Adam J. Richter
Fruhwirth Clemens (i586)
CAST5 algorithm contributors:
Kartikey Mahendra Bhatt (original developers unknown, FSF copyright).
...
...
arch/i386/Makefile
View file @
8c00b90f
...
...
@@ -104,8 +104,7 @@ head-y := arch/i386/kernel/head.o arch/i386/kernel/init_task.o
libs-y
+=
arch
/i386/lib/
core-y
+=
arch
/i386/kernel/
\
arch
/i386/mm/
\
arch
/i386/
$
(
mcore-y
)
/
\
arch
/i386/crypto/
arch
/i386/
$
(
mcore-y
)
/
drivers-$(CONFIG_MATH_EMULATION)
+=
arch
/i386/math-emu/
drivers-$(CONFIG_PCI)
+=
arch
/i386/pci/
# must be linked after kernel/
...
...
arch/i386/crypto/Makefile
deleted
100644 → 0
View file @
a685d7b5
#
# i386/crypto/Makefile
#
# Arch-specific CryptoAPI modules.
#
obj-$(CONFIG_CRYPTO_AES_586)
+=
aes-i586.o
aes-i586-y
:=
aes-i586-asm.o aes-i586-glue.o
arch/i386/crypto/aes-i586-asm.S
deleted
100644 → 0
View file @
a685d7b5
This diff is collapsed.
Click to expand it.
arch/i386/crypto/aes-i586-glue.c
deleted
100644 → 0
View file @
a685d7b5
/*
*
* Glue Code for optimized 586 assembler version of AES
*
* Copyright (c) 2001, Dr Brian Gladman <brg@gladman.uk.net>, Worcester, UK.
* Copyright (c) 2003, Adam J. Richter <adam@yggdrasil.com> (conversion to
* 2.5 API).
* Copyright (c) 2003, 2004 Fruhwirth Clemens <clemens@endorphin.org>
*/
#include <linux/module.h>
#include <linux/init.h>
#include <linux/types.h>
#include <linux/crypto.h>
#include <linux/linkage.h>
#define AES_MIN_KEY_SIZE 16
#define AES_MAX_KEY_SIZE 32
#define AES_BLOCK_SIZE 16
#define AES_KS_LENGTH 4 * AES_BLOCK_SIZE
#define AES_RC_LENGTH (9 * AES_BLOCK_SIZE) / 8 - 8
typedef
struct
{
u_int32_t
aes_Nkey
;
// the number of words in the key input block
u_int32_t
aes_Nrnd
;
// the number of cipher rounds
u_int32_t
aes_e_key
[
AES_KS_LENGTH
];
// the encryption key schedule
u_int32_t
aes_d_key
[
AES_KS_LENGTH
];
// the decryption key schedule
u_int32_t
aes_Ncol
;
// the number of columns in the cipher state
}
aes_context
;
/*
* The Cipher Interface
*/
asmlinkage
void
aes_set_key
(
void
*
,
const
unsigned
char
[],
const
int
,
const
int
);
/* Actually:
* extern void aes_encrypt(const aes_context *, unsigned char [], const unsigned char []);
* extern void aes_decrypt(const aes_context *, unsigned char [], const unsigned char []);
*/
asmlinkage
void
aes_encrypt
(
void
*
,
unsigned
char
[],
const
unsigned
char
[]);
asmlinkage
void
aes_decrypt
(
void
*
,
unsigned
char
[],
const
unsigned
char
[]);
static
int
aes_set_key_glue
(
void
*
cx
,
const
u8
*
key
,
unsigned
int
key_length
,
u32
*
flags
)
{
if
(
key_length
!=
16
&&
key_length
!=
24
&&
key_length
!=
32
)
{
*
flags
|=
CRYPTO_TFM_RES_BAD_KEY_LEN
;
return
-
EINVAL
;
}
aes_set_key
(
cx
,
key
,
key_length
,
0
);
return
0
;
}
#ifdef CONFIG_REGPARM
static
void
aes_encrypt_glue
(
void
*
a
,
unsigned
char
b
[],
const
unsigned
char
c
[])
{
aes_encrypt
(
a
,
b
,
c
);
}
static
void
aes_decrypt_glue
(
void
*
a
,
unsigned
char
b
[],
const
unsigned
char
c
[])
{
aes_decrypt
(
a
,
b
,
c
);
}
#else
#define aes_encrypt_glue aes_encrypt
#define aes_decrypt_glue aes_decrypt
#endif
/* CONFIG_REGPARM */
static
struct
crypto_alg
aes_alg
=
{
.
cra_name
=
"aes"
,
.
cra_flags
=
CRYPTO_ALG_TYPE_CIPHER
,
.
cra_blocksize
=
AES_BLOCK_SIZE
,
.
cra_ctxsize
=
sizeof
(
aes_context
),
.
cra_module
=
THIS_MODULE
,
.
cra_list
=
LIST_HEAD_INIT
(
aes_alg
.
cra_list
),
.
cra_u
=
{
.
cipher
=
{
.
cia_min_keysize
=
AES_MIN_KEY_SIZE
,
.
cia_max_keysize
=
AES_MAX_KEY_SIZE
,
.
cia_setkey
=
aes_set_key_glue
,
.
cia_encrypt
=
aes_encrypt_glue
,
.
cia_decrypt
=
aes_decrypt_glue
}
}
};
static
int
__init
aes_init
(
void
)
{
return
crypto_register_alg
(
&
aes_alg
);
}
static
void
__exit
aes_fini
(
void
)
{
crypto_unregister_alg
(
&
aes_alg
);
}
module_init
(
aes_init
);
module_exit
(
aes_fini
);
MODULE_DESCRIPTION
(
"Rijndael (AES) Cipher Algorithm, i586 asm optimized"
);
MODULE_LICENSE
(
"GPL"
);
MODULE_AUTHOR
(
"Fruhwirth Clemens"
);
MODULE_ALIAS
(
"aes"
);
crypto/Kconfig
View file @
8c00b90f
...
...
@@ -118,9 +118,9 @@ config CRYPTO_SERPENT
See also:
http://www.cl.cam.ac.uk/~rja14/serpent.html
config CRYPTO_AES
_GENERIC
config CRYPTO_AES
tristate "AES cipher algorithms"
depends on CRYPTO
&& !(X86 && !X86_64)
depends on CRYPTO
help
AES cipher algorithms (FIPS-197). AES uses the Rijndael
algorithm.
...
...
@@ -138,26 +138,6 @@ config CRYPTO_AES_GENERIC
See http://csrc.nist.gov/CryptoToolkit/aes/ for more information.
config CRYPTO_AES_586
tristate "AES cipher algorithms (i586)"
depends on CRYPTO && (X86 && !X86_64)
help
AES cipher algorithms (FIPS-197). AES uses the Rijndael
algorithm.
Rijndael appears to be consistently a very good performer in
both hardware and software across a wide range of computing
environments regardless of its use in feedback or non-feedback
modes. Its key setup time is excellent, and its key agility is
good. Rijndael's very low memory requirements make it very well
suited for restricted-space environments, in which it also
demonstrates excellent performance. Rijndael's operations are
among the easiest to defend against power and timing attacks.
The AES specifies three key sizes: 128, 192 and 256 bits
See http://csrc.nist.gov/encryption/aes/ for more information.
config CRYPTO_CAST5
tristate "CAST5 (CAST-128) cipher algorithm"
depends on CRYPTO
...
...
drivers/md/multipath.c
View file @
8c00b90f
...
...
@@ -120,7 +120,7 @@ int multipath_end_request(struct bio *bio, unsigned int bytes_done, int error)
if
(
uptodate
)
multipath_end_bh_io
(
mp_bh
,
uptodate
);
else
{
else
if
((
bio
->
bi_rw
&
(
1
<<
BIO_RW_AHEAD
))
==
0
)
{
/*
* oops, IO error:
*/
...
...
@@ -130,7 +130,8 @@ int multipath_end_request(struct bio *bio, unsigned int bytes_done, int error)
bdevname
(
rdev
->
bdev
,
b
),
(
unsigned
long
long
)
bio
->
bi_sector
);
multipath_reschedule_retry
(
mp_bh
);
}
}
else
multipath_end_bh_io
(
mp_bh
,
0
);
rdev_dec_pending
(
rdev
,
conf
->
mddev
);
return
0
;
}
...
...
@@ -382,7 +383,11 @@ static void multipathd (mddev_t *mddev)
" to another IO path
\n
"
,
bdevname
(
bio
->
bi_bdev
,
b
),
(
unsigned
long
long
)
bio
->
bi_sector
);
*
bio
=
*
(
mp_bh
->
master_bio
);
bio
->
bi_bdev
=
conf
->
multipaths
[
mp_bh
->
path
].
rdev
->
bdev
;
bio
->
bi_rw
|=
(
1
<<
BIO_RW_FAILFAST
);
bio
->
bi_end_io
=
multipath_end_request
;
bio
->
bi_private
=
mp_bh
;
generic_make_request
(
bio
);
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment