#include <linux/err.h>
#include <linux/errno.h>
#include <linux/jump_label.h>
#include <linux/kernel.h>
#include <linux/kmod.h>
#include <linux/module.h>
#include <linux/param.h>
#include <linux/sched/signal.h>
#include <linux/slab.h>
#include <linux/string.h>
#include <linux/completion.h>
#include "internal.h"
LIST_HEAD(…);
EXPORT_SYMBOL_GPL(…);
DECLARE_RWSEM(…) …;
EXPORT_SYMBOL_GPL(…);
BLOCKING_NOTIFIER_HEAD(…) …;
EXPORT_SYMBOL_GPL(…);
#if IS_BUILTIN(CONFIG_CRYPTO_ALGAPI) && \
!IS_ENABLED(CONFIG_CRYPTO_MANAGER_DISABLE_TESTS)
DEFINE_STATIC_KEY_FALSE(__crypto_boot_test_finished);
#endif
static struct crypto_alg *crypto_larval_wait(struct crypto_alg *alg);
struct crypto_alg *crypto_mod_get(struct crypto_alg *alg)
{ … }
EXPORT_SYMBOL_GPL(…);
void crypto_mod_put(struct crypto_alg *alg)
{ … }
EXPORT_SYMBOL_GPL(…);
static struct crypto_alg *__crypto_alg_lookup(const char *name, u32 type,
u32 mask)
{ … }
static void crypto_larval_destroy(struct crypto_alg *alg)
{ … }
struct crypto_larval *crypto_larval_alloc(const char *name, u32 type, u32 mask)
{ … }
EXPORT_SYMBOL_GPL(…);
static struct crypto_alg *crypto_larval_add(const char *name, u32 type,
u32 mask)
{ … }
void crypto_larval_kill(struct crypto_alg *alg)
{ … }
EXPORT_SYMBOL_GPL(…);
void crypto_wait_for_test(struct crypto_larval *larval)
{ … }
EXPORT_SYMBOL_GPL(…);
static void crypto_start_test(struct crypto_larval *larval)
{ … }
static struct crypto_alg *crypto_larval_wait(struct crypto_alg *alg)
{ … }
static struct crypto_alg *crypto_alg_lookup(const char *name, u32 type,
u32 mask)
{ … }
static struct crypto_alg *crypto_larval_lookup(const char *name, u32 type,
u32 mask)
{ … }
int crypto_probing_notify(unsigned long val, void *v)
{ … }
EXPORT_SYMBOL_GPL(…);
struct crypto_alg *crypto_alg_mod_lookup(const char *name, u32 type, u32 mask)
{ … }
EXPORT_SYMBOL_GPL(…);
static void crypto_exit_ops(struct crypto_tfm *tfm)
{ … }
static unsigned int crypto_ctxsize(struct crypto_alg *alg, u32 type, u32 mask)
{ … }
void crypto_shoot_alg(struct crypto_alg *alg)
{ … }
EXPORT_SYMBOL_GPL(…);
struct crypto_tfm *__crypto_alloc_tfmgfp(struct crypto_alg *alg, u32 type,
u32 mask, gfp_t gfp)
{ … }
EXPORT_SYMBOL_GPL(…);
struct crypto_tfm *__crypto_alloc_tfm(struct crypto_alg *alg, u32 type,
u32 mask)
{ … }
EXPORT_SYMBOL_GPL(…);
struct crypto_tfm *crypto_alloc_base(const char *alg_name, u32 type, u32 mask)
{ … }
EXPORT_SYMBOL_GPL(…);
static void *crypto_alloc_tfmmem(struct crypto_alg *alg,
const struct crypto_type *frontend, int node,
gfp_t gfp)
{ … }
void *crypto_create_tfm_node(struct crypto_alg *alg,
const struct crypto_type *frontend,
int node)
{ … }
EXPORT_SYMBOL_GPL(…);
void *crypto_clone_tfm(const struct crypto_type *frontend,
struct crypto_tfm *otfm)
{ … }
EXPORT_SYMBOL_GPL(…);
struct crypto_alg *crypto_find_alg(const char *alg_name,
const struct crypto_type *frontend,
u32 type, u32 mask)
{ … }
EXPORT_SYMBOL_GPL(…);
void *crypto_alloc_tfm_node(const char *alg_name,
const struct crypto_type *frontend, u32 type, u32 mask,
int node)
{ … }
EXPORT_SYMBOL_GPL(…);
void crypto_destroy_tfm(void *mem, struct crypto_tfm *tfm)
{ … }
EXPORT_SYMBOL_GPL(…);
int crypto_has_alg(const char *name, u32 type, u32 mask)
{ … }
EXPORT_SYMBOL_GPL(…);
void crypto_req_done(void *data, int err)
{ … }
EXPORT_SYMBOL_GPL(…);
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;