Loading crypto/crypto_null.c +6 −43 Original line number Diff line number Diff line Loading @@ -26,10 +26,8 @@ #include <linux/string.h> static DEFINE_MUTEX(crypto_default_null_skcipher_lock); static struct crypto_blkcipher *crypto_default_null_skcipher; static struct crypto_skcipher *crypto_default_null_skcipher; static int crypto_default_null_skcipher_refcnt; static struct crypto_skcipher *crypto_default_null_skcipher2; static int crypto_default_null_skcipher2_refcnt; static int null_compress(struct crypto_tfm *tfm, const u8 *src, unsigned int slen, u8 *dst, unsigned int *dlen) Loading Loading @@ -155,15 +153,16 @@ MODULE_ALIAS_CRYPTO("compress_null"); MODULE_ALIAS_CRYPTO("digest_null"); MODULE_ALIAS_CRYPTO("cipher_null"); struct crypto_blkcipher *crypto_get_default_null_skcipher(void) struct crypto_skcipher *crypto_get_default_null_skcipher(void) { struct crypto_blkcipher *tfm; struct crypto_skcipher *tfm; mutex_lock(&crypto_default_null_skcipher_lock); tfm = crypto_default_null_skcipher; if (!tfm) { tfm = crypto_alloc_blkcipher("ecb(cipher_null)", 0, 0); tfm = crypto_alloc_skcipher("ecb(cipher_null)", 0, CRYPTO_ALG_ASYNC); if (IS_ERR(tfm)) goto unlock; Loading @@ -183,49 +182,13 @@ void crypto_put_default_null_skcipher(void) { mutex_lock(&crypto_default_null_skcipher_lock); if (!--crypto_default_null_skcipher_refcnt) { crypto_free_blkcipher(crypto_default_null_skcipher); crypto_free_skcipher(crypto_default_null_skcipher); crypto_default_null_skcipher = NULL; } mutex_unlock(&crypto_default_null_skcipher_lock); } EXPORT_SYMBOL_GPL(crypto_put_default_null_skcipher); struct crypto_skcipher *crypto_get_default_null_skcipher2(void) { struct crypto_skcipher *tfm; mutex_lock(&crypto_default_null_skcipher_lock); tfm = crypto_default_null_skcipher2; if (!tfm) { tfm = crypto_alloc_skcipher("ecb(cipher_null)", 0, CRYPTO_ALG_ASYNC); if (IS_ERR(tfm)) goto unlock; crypto_default_null_skcipher2 = tfm; } crypto_default_null_skcipher2_refcnt++; unlock: mutex_unlock(&crypto_default_null_skcipher_lock); return tfm; } EXPORT_SYMBOL_GPL(crypto_get_default_null_skcipher2); void crypto_put_default_null_skcipher2(void) { mutex_lock(&crypto_default_null_skcipher_lock); if (!--crypto_default_null_skcipher2_refcnt) { crypto_free_skcipher(crypto_default_null_skcipher2); crypto_default_null_skcipher2 = NULL; } mutex_unlock(&crypto_default_null_skcipher_lock); } EXPORT_SYMBOL_GPL(crypto_put_default_null_skcipher2); static int __init crypto_null_mod_init(void) { int ret = 0; Loading include/crypto/null.h +11 −3 Original line number Diff line number Diff line Loading @@ -8,9 +8,17 @@ #define NULL_DIGEST_SIZE 0 #define NULL_IV_SIZE 0 struct crypto_blkcipher *crypto_get_default_null_skcipher(void); struct crypto_skcipher *crypto_get_default_null_skcipher(void); void crypto_put_default_null_skcipher(void); struct crypto_skcipher *crypto_get_default_null_skcipher2(void); void crypto_put_default_null_skcipher2(void); static inline struct crypto_skcipher *crypto_get_default_null_skcipher2(void) { return crypto_get_default_null_skcipher(); } static inline void crypto_put_default_null_skcipher2(void) { crypto_put_default_null_skcipher(); } #endif Loading
crypto/crypto_null.c +6 −43 Original line number Diff line number Diff line Loading @@ -26,10 +26,8 @@ #include <linux/string.h> static DEFINE_MUTEX(crypto_default_null_skcipher_lock); static struct crypto_blkcipher *crypto_default_null_skcipher; static struct crypto_skcipher *crypto_default_null_skcipher; static int crypto_default_null_skcipher_refcnt; static struct crypto_skcipher *crypto_default_null_skcipher2; static int crypto_default_null_skcipher2_refcnt; static int null_compress(struct crypto_tfm *tfm, const u8 *src, unsigned int slen, u8 *dst, unsigned int *dlen) Loading Loading @@ -155,15 +153,16 @@ MODULE_ALIAS_CRYPTO("compress_null"); MODULE_ALIAS_CRYPTO("digest_null"); MODULE_ALIAS_CRYPTO("cipher_null"); struct crypto_blkcipher *crypto_get_default_null_skcipher(void) struct crypto_skcipher *crypto_get_default_null_skcipher(void) { struct crypto_blkcipher *tfm; struct crypto_skcipher *tfm; mutex_lock(&crypto_default_null_skcipher_lock); tfm = crypto_default_null_skcipher; if (!tfm) { tfm = crypto_alloc_blkcipher("ecb(cipher_null)", 0, 0); tfm = crypto_alloc_skcipher("ecb(cipher_null)", 0, CRYPTO_ALG_ASYNC); if (IS_ERR(tfm)) goto unlock; Loading @@ -183,49 +182,13 @@ void crypto_put_default_null_skcipher(void) { mutex_lock(&crypto_default_null_skcipher_lock); if (!--crypto_default_null_skcipher_refcnt) { crypto_free_blkcipher(crypto_default_null_skcipher); crypto_free_skcipher(crypto_default_null_skcipher); crypto_default_null_skcipher = NULL; } mutex_unlock(&crypto_default_null_skcipher_lock); } EXPORT_SYMBOL_GPL(crypto_put_default_null_skcipher); struct crypto_skcipher *crypto_get_default_null_skcipher2(void) { struct crypto_skcipher *tfm; mutex_lock(&crypto_default_null_skcipher_lock); tfm = crypto_default_null_skcipher2; if (!tfm) { tfm = crypto_alloc_skcipher("ecb(cipher_null)", 0, CRYPTO_ALG_ASYNC); if (IS_ERR(tfm)) goto unlock; crypto_default_null_skcipher2 = tfm; } crypto_default_null_skcipher2_refcnt++; unlock: mutex_unlock(&crypto_default_null_skcipher_lock); return tfm; } EXPORT_SYMBOL_GPL(crypto_get_default_null_skcipher2); void crypto_put_default_null_skcipher2(void) { mutex_lock(&crypto_default_null_skcipher_lock); if (!--crypto_default_null_skcipher2_refcnt) { crypto_free_skcipher(crypto_default_null_skcipher2); crypto_default_null_skcipher2 = NULL; } mutex_unlock(&crypto_default_null_skcipher_lock); } EXPORT_SYMBOL_GPL(crypto_put_default_null_skcipher2); static int __init crypto_null_mod_init(void) { int ret = 0; Loading
include/crypto/null.h +11 −3 Original line number Diff line number Diff line Loading @@ -8,9 +8,17 @@ #define NULL_DIGEST_SIZE 0 #define NULL_IV_SIZE 0 struct crypto_blkcipher *crypto_get_default_null_skcipher(void); struct crypto_skcipher *crypto_get_default_null_skcipher(void); void crypto_put_default_null_skcipher(void); struct crypto_skcipher *crypto_get_default_null_skcipher2(void); void crypto_put_default_null_skcipher2(void); static inline struct crypto_skcipher *crypto_get_default_null_skcipher2(void) { return crypto_get_default_null_skcipher(); } static inline void crypto_put_default_null_skcipher2(void) { crypto_put_default_null_skcipher(); } #endif