diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2006-07-13 20:42:27 -0400 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2006-09-20 21:41:03 -0400 |
commit | df89820ebd5bbf4f3c6b5f8ee7d9e983107f6a91 (patch) | |
tree | a782e2662cbdb6c7ad7591f2697d06008048f966 | |
parent | c907ee76d8456fe1d98f40b5febfc7802a73b784 (diff) |
[CRYPTO] cipher: Removed special IV checks for ECB
This patch makes IV operations on ECB fail through nocrypt_iv rather than
calling BUG(). This is needed to generalise CBC/ECB using the template
mechanism.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
-rw-r--r-- | crypto/cipher.c | 2 | ||||
-rw-r--r-- | include/linux/crypto.h | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/crypto/cipher.c b/crypto/cipher.c index 56406a4a88d4..aebc4a2adc80 100644 --- a/crypto/cipher.c +++ b/crypto/cipher.c | |||
@@ -399,6 +399,8 @@ int crypto_init_cipher_ops(struct crypto_tfm *tfm) | |||
399 | case CRYPTO_TFM_MODE_ECB: | 399 | case CRYPTO_TFM_MODE_ECB: |
400 | ops->cit_encrypt = ecb_encrypt; | 400 | ops->cit_encrypt = ecb_encrypt; |
401 | ops->cit_decrypt = ecb_decrypt; | 401 | ops->cit_decrypt = ecb_decrypt; |
402 | ops->cit_encrypt_iv = nocrypt_iv; | ||
403 | ops->cit_decrypt_iv = nocrypt_iv; | ||
402 | break; | 404 | break; |
403 | 405 | ||
404 | case CRYPTO_TFM_MODE_CBC: | 406 | case CRYPTO_TFM_MODE_CBC: |
diff --git a/include/linux/crypto.h b/include/linux/crypto.h index 053bfab43e8d..dbdfc7c79367 100644 --- a/include/linux/crypto.h +++ b/include/linux/crypto.h | |||
@@ -422,7 +422,6 @@ static inline int crypto_cipher_encrypt_iv(struct crypto_tfm *tfm, | |||
422 | unsigned int nbytes, u8 *iv) | 422 | unsigned int nbytes, u8 *iv) |
423 | { | 423 | { |
424 | BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER); | 424 | BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER); |
425 | BUG_ON(tfm->crt_cipher.cit_mode == CRYPTO_TFM_MODE_ECB); | ||
426 | return tfm->crt_cipher.cit_encrypt_iv(tfm, dst, src, nbytes, iv); | 425 | return tfm->crt_cipher.cit_encrypt_iv(tfm, dst, src, nbytes, iv); |
427 | } | 426 | } |
428 | 427 | ||
@@ -441,7 +440,6 @@ static inline int crypto_cipher_decrypt_iv(struct crypto_tfm *tfm, | |||
441 | unsigned int nbytes, u8 *iv) | 440 | unsigned int nbytes, u8 *iv) |
442 | { | 441 | { |
443 | BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER); | 442 | BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER); |
444 | BUG_ON(tfm->crt_cipher.cit_mode == CRYPTO_TFM_MODE_ECB); | ||
445 | return tfm->crt_cipher.cit_decrypt_iv(tfm, dst, src, nbytes, iv); | 443 | return tfm->crt_cipher.cit_decrypt_iv(tfm, dst, src, nbytes, iv); |
446 | } | 444 | } |
447 | 445 | ||