#ifndef _CRYPTO_INTERNAL_SKCIPHER_H
#define _CRYPTO_INTERNAL_SKCIPHER_H
#include <crypto/algapi.h>
#include <crypto/internal/cipher.h>
#include <crypto/skcipher.h>
#include <linux/list.h>
#include <linux/types.h>
#define CRYPTO_ALG_SKCIPHER_REQSIZE_LARGE …
struct aead_request;
struct rtattr;
struct skcipher_instance { … };
struct lskcipher_instance { … };
struct crypto_skcipher_spawn { … };
struct crypto_lskcipher_spawn { … };
struct skcipher_walk { … };
static inline struct crypto_instance *skcipher_crypto_instance(
struct skcipher_instance *inst)
{ … }
static inline struct crypto_instance *lskcipher_crypto_instance(
struct lskcipher_instance *inst)
{ … }
static inline struct skcipher_instance *skcipher_alg_instance(
struct crypto_skcipher *skcipher)
{ … }
static inline struct lskcipher_instance *lskcipher_alg_instance(
struct crypto_lskcipher *lskcipher)
{ … }
static inline void *skcipher_instance_ctx(struct skcipher_instance *inst)
{ … }
static inline void *lskcipher_instance_ctx(struct lskcipher_instance *inst)
{ … }
static inline void skcipher_request_complete(struct skcipher_request *req, int err)
{ … }
int crypto_grab_skcipher(struct crypto_skcipher_spawn *spawn,
struct crypto_instance *inst,
const char *name, u32 type, u32 mask);
int crypto_grab_lskcipher(struct crypto_lskcipher_spawn *spawn,
struct crypto_instance *inst,
const char *name, u32 type, u32 mask);
static inline void crypto_drop_skcipher(struct crypto_skcipher_spawn *spawn)
{ … }
static inline void crypto_drop_lskcipher(struct crypto_lskcipher_spawn *spawn)
{ … }
static inline struct lskcipher_alg *crypto_lskcipher_spawn_alg(
struct crypto_lskcipher_spawn *spawn)
{ … }
static inline struct skcipher_alg_common *crypto_spawn_skcipher_alg_common(
struct crypto_skcipher_spawn *spawn)
{ … }
static inline struct lskcipher_alg *crypto_spawn_lskcipher_alg(
struct crypto_lskcipher_spawn *spawn)
{ … }
static inline struct crypto_skcipher *crypto_spawn_skcipher(
struct crypto_skcipher_spawn *spawn)
{ … }
static inline struct crypto_lskcipher *crypto_spawn_lskcipher(
struct crypto_lskcipher_spawn *spawn)
{ … }
static inline void crypto_skcipher_set_reqsize(
struct crypto_skcipher *skcipher, unsigned int reqsize)
{ … }
static inline void crypto_skcipher_set_reqsize_dma(
struct crypto_skcipher *skcipher, unsigned int reqsize)
{ … }
int crypto_register_skcipher(struct skcipher_alg *alg);
void crypto_unregister_skcipher(struct skcipher_alg *alg);
int crypto_register_skciphers(struct skcipher_alg *algs, int count);
void crypto_unregister_skciphers(struct skcipher_alg *algs, int count);
int skcipher_register_instance(struct crypto_template *tmpl,
struct skcipher_instance *inst);
int crypto_register_lskcipher(struct lskcipher_alg *alg);
void crypto_unregister_lskcipher(struct lskcipher_alg *alg);
int crypto_register_lskciphers(struct lskcipher_alg *algs, int count);
void crypto_unregister_lskciphers(struct lskcipher_alg *algs, int count);
int lskcipher_register_instance(struct crypto_template *tmpl,
struct lskcipher_instance *inst);
int skcipher_walk_done(struct skcipher_walk *walk, int err);
int skcipher_walk_virt(struct skcipher_walk *walk,
struct skcipher_request *req,
bool atomic);
int skcipher_walk_async(struct skcipher_walk *walk,
struct skcipher_request *req);
int skcipher_walk_aead_encrypt(struct skcipher_walk *walk,
struct aead_request *req, bool atomic);
int skcipher_walk_aead_decrypt(struct skcipher_walk *walk,
struct aead_request *req, bool atomic);
void skcipher_walk_complete(struct skcipher_walk *walk, int err);
static inline void skcipher_walk_abort(struct skcipher_walk *walk)
{ … }
static inline void *crypto_skcipher_ctx(struct crypto_skcipher *tfm)
{ … }
static inline void *crypto_lskcipher_ctx(struct crypto_lskcipher *tfm)
{ … }
static inline void *crypto_skcipher_ctx_dma(struct crypto_skcipher *tfm)
{ … }
static inline void *skcipher_request_ctx(struct skcipher_request *req)
{ … }
static inline void *skcipher_request_ctx_dma(struct skcipher_request *req)
{ … }
static inline u32 skcipher_request_flags(struct skcipher_request *req)
{ … }
struct skcipher_ctx_simple { … };
static inline struct crypto_cipher *
skcipher_cipher_simple(struct crypto_skcipher *tfm)
{ … }
struct skcipher_instance *skcipher_alloc_instance_simple(
struct crypto_template *tmpl, struct rtattr **tb);
static inline struct crypto_alg *skcipher_ialg_simple(
struct skcipher_instance *inst)
{ … }
static inline struct crypto_lskcipher *lskcipher_cipher_simple(
struct crypto_lskcipher *tfm)
{ … }
struct lskcipher_instance *lskcipher_alloc_instance_simple(
struct crypto_template *tmpl, struct rtattr **tb);
static inline struct lskcipher_alg *lskcipher_ialg_simple(
struct lskcipher_instance *inst)
{ … }
#endif