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
nexedi
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