diff options
| author | James Morris <jmorris@intercode.com.au> | 2002-11-18 08:00:26 -0800 |
|---|---|---|
| committer | Jeff Garzik <jgarzik@redhat.com> | 2002-11-18 08:00:26 -0800 |
| commit | 3c7707e07cff36292f7451a1dee045f752c8f924 (patch) | |
| tree | aa69f4ceb96c1fdf755dd5f70c864ae7a38404fb | |
| parent | 889cb5257af979c531cefdbd02d5a23bc1f572b5 (diff) | |
[CRYPTO]: Add null algorithms and minor cleanups.
| -rw-r--r-- | Documentation/crypto/api-intro.txt | 7 | ||||
| -rw-r--r-- | crypto/Kconfig | 6 | ||||
| -rw-r--r-- | crypto/Makefile | 1 | ||||
| -rw-r--r-- | crypto/api.c | 4 | ||||
| -rw-r--r-- | crypto/compress.c | 12 | ||||
| -rw-r--r-- | include/linux/crypto.h | 10 |
6 files changed, 29 insertions, 11 deletions
diff --git a/Documentation/crypto/api-intro.txt b/Documentation/crypto/api-intro.txt index b8cc036cac32..f2e42883bdb5 100644 --- a/Documentation/crypto/api-intro.txt +++ b/Documentation/crypto/api-intro.txt @@ -73,6 +73,13 @@ add the following line to /etc/modules.conf: alias des3_ede des +The Null algorithms reside in the crypto_null module, so these lines +should also be added: + + alias cipher_null crypto_null + alias digest_null crypto_null + alias compress_null crypto_null + DEVELOPER NOTES diff --git a/crypto/Kconfig b/crypto/Kconfig index f09c10bcfe6b..b87a265717d6 100644 --- a/crypto/Kconfig +++ b/crypto/Kconfig @@ -16,6 +16,12 @@ config CRYPTO_HMAC HMAC: Keyed-Hashing for Message Authentication (RFC2104). This is required for IPSec. +config CRYPTO_NULL + tristate "Null algorithms" + depends on CRYPTO + help + These are 'Null' algorithms, used by IPsec, which do nothing. + config CRYPTO_MD4 tristate "MD4 digest algorithm" depends on CRYPTO diff --git a/crypto/Makefile b/crypto/Makefile index bd8973bdd84d..d94a470b3a9d 100644 --- a/crypto/Makefile +++ b/crypto/Makefile @@ -9,6 +9,7 @@ autoload-crypto-$(CONFIG_KMOD) = autoload.o obj-$(CONFIG_CRYPTO) += api.o cipher.o digest.o compress.o $(autoload-crypto-y) obj-$(CONFIG_CRYPTO_HMAC) += hmac.o +obj-$(CONFIG_CRYPTO_NULL) += crypto_null.o obj-$(CONFIG_CRYPTO_MD4) += md4.o obj-$(CONFIG_CRYPTO_MD5) += md5.o obj-$(CONFIG_CRYPTO_SHA1) += sha1.o diff --git a/crypto/api.c b/crypto/api.c index 7657bd59eefa..0649c6ebb781 100644 --- a/crypto/api.c +++ b/crypto/api.c @@ -63,7 +63,7 @@ static int crypto_init_flags(struct crypto_tfm *tfm, u32 flags) case CRYPTO_ALG_TYPE_DIGEST: return crypto_init_digest_flags(tfm, flags); - case CRYPTO_ALG_TYPE_COMP: + case CRYPTO_ALG_TYPE_COMPRESS: return crypto_init_compress_flags(tfm, flags); default: @@ -83,7 +83,7 @@ static int crypto_init_ops(struct crypto_tfm *tfm) case CRYPTO_ALG_TYPE_DIGEST: return crypto_init_digest_ops(tfm); - case CRYPTO_ALG_TYPE_COMP: + case CRYPTO_ALG_TYPE_COMPRESS: return crypto_init_compress_ops(tfm); default: diff --git a/crypto/compress.c b/crypto/compress.c index 773fc5764050..7baaae047941 100644 --- a/crypto/compress.c +++ b/crypto/compress.c @@ -18,15 +18,15 @@ #include <linux/string.h> #include "internal.h" -/* - * This code currently implements blazingly fast and - * lossless Quadruple ROT13 compression. - */ static void crypto_compress(struct crypto_tfm *tfm) -{ } +{ + tfm->__crt_alg->cra_compress.coa_compress(); +} static void crypto_decompress(struct crypto_tfm *tfm) -{ } +{ + tfm->__crt_alg->cra_compress.coa_decompress(); +} int crypto_init_compress_flags(struct crypto_tfm *tfm, u32 flags) { diff --git a/include/linux/crypto.h b/include/linux/crypto.h index b3448683d02d..960e54133e29 100644 --- a/include/linux/crypto.h +++ b/include/linux/crypto.h @@ -29,7 +29,7 @@ #define CRYPTO_ALG_TYPE_MASK 0x000000ff #define CRYPTO_ALG_TYPE_CIPHER 0x00000001 #define CRYPTO_ALG_TYPE_DIGEST 0x00000002 -#define CRYPTO_ALG_TYPE_COMP 0x00000004 +#define CRYPTO_ALG_TYPE_COMPRESS 0x00000004 /* @@ -209,16 +209,19 @@ static inline u32 crypto_tfm_alg_type(struct crypto_tfm *tfm) static inline unsigned int crypto_tfm_alg_min_keysize(struct crypto_tfm *tfm) { + BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER); return tfm->__crt_alg->cra_cipher.cia_min_keysize; } static inline unsigned int crypto_tfm_alg_max_keysize(struct crypto_tfm *tfm) { + BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER); return tfm->__crt_alg->cra_cipher.cia_max_keysize; } static inline unsigned int crypto_tfm_alg_ivsize(struct crypto_tfm *tfm) { + BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER); return tfm->__crt_alg->cra_cipher.cia_ivsize; } @@ -229,6 +232,7 @@ static inline unsigned int crypto_tfm_alg_blocksize(struct crypto_tfm *tfm) static inline unsigned int crypto_tfm_alg_digestsize(struct crypto_tfm *tfm) { + BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_DIGEST); return tfm->__crt_alg->cra_digest.dia_digestsize; } @@ -302,13 +306,13 @@ static inline void crypto_cipher_get_iv(struct crypto_tfm *tfm, static inline void crypto_comp_compress(struct crypto_tfm *tfm) { - BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_COMP); + BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_COMPRESS); tfm->crt_compress.cot_compress(tfm); } static inline void crypto_comp_decompress(struct crypto_tfm *tfm) { - BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_COMP); + BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_COMPRESS); tfm->crt_compress.cot_decompress(tfm); } |
