#include <crypto/internal/aead.h>
#include <crypto/internal/hash.h>
#include <crypto/internal/skcipher.h>
#include <crypto/scatterwalk.h>
#include <linux/kernel.h>
#include <linux/module.h>
struct ccm_instance_ctx {
struct crypto_skcipher_spawn ctr;
struct crypto_ahash_spawn mac;
struct crypto_ahash *mac;
struct crypto_skcipher *ctr;
struct crypto_rfc4309_ctx {
struct crypto_aead *child;
struct crypto_rfc4309_req_ctx {
struct scatterlist src[3];
struct scatterlist dst[3];
struct aead_request subreq;
struct crypto_ccm_req_priv_ctx {
struct scatterlist src[3];
struct scatterlist dst[3];
struct ahash_request ahreq;
struct skcipher_request skreq;
struct crypto_cipher *child;
static inline struct crypto_ccm_req_priv_ctx *crypto_ccm_reqctx(
struct aead_request *req)