Browse Source

crypto: aes - Precompute tables

The tables used by the various AES algorithms are currently
computed at run-time.  This has created an init ordering problem
because some AES algorithms may be registered before the tables
have been initialised.

This patch gets around this whole thing by precomputing the tables.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Herbert Xu 16 years ago
parent
commit
0ee4a96902
2 changed files with 1059 additions and 93 deletions
  1. 1055 89
      crypto/aes_generic.c
  2. 4 4
      include/crypto/aes.h

File diff suppressed because it is too large
+ 1055 - 89
crypto/aes_generic.c


+ 4 - 4
include/crypto/aes.h

@@ -23,10 +23,10 @@ struct crypto_aes_ctx {
 	u32 key_dec[AES_MAX_KEYLENGTH_U32];
 	u32 key_dec[AES_MAX_KEYLENGTH_U32];
 };
 };
 
 
-extern u32 crypto_ft_tab[4][256];
-extern u32 crypto_fl_tab[4][256];
-extern u32 crypto_it_tab[4][256];
-extern u32 crypto_il_tab[4][256];
+extern const u32 crypto_ft_tab[4][256];
+extern const u32 crypto_fl_tab[4][256];
+extern const u32 crypto_it_tab[4][256];
+extern const u32 crypto_il_tab[4][256];
 
 
 int crypto_aes_set_key(struct crypto_tfm *tfm, const u8 *in_key,
 int crypto_aes_set_key(struct crypto_tfm *tfm, const u8 *in_key,
 		unsigned int key_len);
 		unsigned int key_len);

Some files were not shown because too many files changed in this diff