aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/crypto/padlock-aes.c
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2006-08-13 00:16:39 -0400
committerHerbert Xu <herbert@gondor.apana.org.au>2006-09-20 21:41:02 -0400
commit560c06ae1ab7c677002ea3b6ac83521bf12ee07d (patch)
tree374ed69a7e23ba9d07458d20672aac6ae552ae51 /drivers/crypto/padlock-aes.c
parent25cdbcd9e5d20e431f829cafce48a418830011f4 (diff)
[CRYPTO] api: Get rid of flags argument to setkey
Now that the tfm is passed directly to setkey instead of the ctx, we no longer need to pass the &tfm->crt_flags pointer. This patch also gets rid of a few unnecessary checks on the key length for ciphers as the cipher layer guarantees that the key length is within the bounds specified by the algorithm. Rather than testing dia_setkey every time, this patch does it only once during crypto_alloc_tfm. The redundant check from crypto_digest_setkey is also removed. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'drivers/crypto/padlock-aes.c')
-rw-r--r--drivers/crypto/padlock-aes.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/crypto/padlock-aes.c b/drivers/crypto/padlock-aes.c
index 3a2a71108d35..3e683709243e 100644
--- a/drivers/crypto/padlock-aes.c
+++ b/drivers/crypto/padlock-aes.c
@@ -308,15 +308,16 @@ static inline struct aes_ctx *aes_ctx(struct crypto_tfm *tfm)
308} 308}
309 309
310static int aes_set_key(struct crypto_tfm *tfm, const u8 *in_key, 310static int aes_set_key(struct crypto_tfm *tfm, const u8 *in_key,
311 unsigned int key_len, u32 *flags) 311 unsigned int key_len)
312{ 312{
313 struct aes_ctx *ctx = aes_ctx(tfm); 313 struct aes_ctx *ctx = aes_ctx(tfm);
314 const __le32 *key = (const __le32 *)in_key; 314 const __le32 *key = (const __le32 *)in_key;
315 u32 *flags = &tfm->crt_flags;
315 uint32_t i, t, u, v, w; 316 uint32_t i, t, u, v, w;
316 uint32_t P[AES_EXTENDED_KEY_SIZE]; 317 uint32_t P[AES_EXTENDED_KEY_SIZE];
317 uint32_t rounds; 318 uint32_t rounds;
318 319
319 if (key_len != 16 && key_len != 24 && key_len != 32) { 320 if (key_len % 8) {
320 *flags |= CRYPTO_TFM_RES_BAD_KEY_LEN; 321 *flags |= CRYPTO_TFM_RES_BAD_KEY_LEN;
321 return -EINVAL; 322 return -EINVAL;
322 } 323 }