#include <linux/module.h>
#include <linux/sched.h>
#include <linux/delay.h>
#include <linux/scatterlist.h>
#include <linux/crypto.h>
#include <crypto/internal/aead.h>
#include <crypto/algapi.h>
#include <crypto/aes.h>
#include <crypto/ctr.h>
#include <crypto/gcm.h>
#include <crypto/scatterwalk.h>
#include "ccp-crypto.h"
static int ccp_aes_gcm_complete(struct crypto_async_request *async_req, int ret)
{ … }
static int ccp_aes_gcm_setkey(struct crypto_aead *tfm, const u8 *key,
unsigned int key_len)
{ … }
static int ccp_aes_gcm_setauthsize(struct crypto_aead *tfm,
unsigned int authsize)
{ … }
static int ccp_aes_gcm_crypt(struct aead_request *req, bool encrypt)
{ … }
static int ccp_aes_gcm_encrypt(struct aead_request *req)
{ … }
static int ccp_aes_gcm_decrypt(struct aead_request *req)
{ … }
static int ccp_aes_gcm_cra_init(struct crypto_aead *tfm)
{ … }
static void ccp_aes_gcm_cra_exit(struct crypto_tfm *tfm)
{ … }
static struct aead_alg ccp_aes_gcm_defaults = …;
struct ccp_aes_aead_def { … };
static struct ccp_aes_aead_def aes_aead_algs[] = …;
static int ccp_register_aes_aead(struct list_head *head,
const struct ccp_aes_aead_def *def)
{ … }
int ccp_register_aes_aeads(struct list_head *head)
{ … }