#include <linux/kernel.h>
#include <linux/printk.h>
#include <linux/crypto.h>
#include <linux/rtnetlink.h>
#include <crypto/aead.h>
#include <crypto/authenc.h>
#include <crypto/des.h>
#include <crypto/internal/aead.h>
#include <crypto/scatterwalk.h>
#include <crypto/gcm.h>
#include "nitrox_dev.h"
#include "nitrox_common.h"
#include "nitrox_req.h"
#define GCM_AES_SALT_SIZE …
gph_p3;
static int nitrox_aes_gcm_setkey(struct crypto_aead *aead, const u8 *key,
unsigned int keylen)
{ … }
static int nitrox_aead_setauthsize(struct crypto_aead *aead,
unsigned int authsize)
{ … }
static int nitrox_aes_gcm_setauthsize(struct crypto_aead *aead,
unsigned int authsize)
{ … }
static int alloc_src_sglist(struct nitrox_kcrypt_request *nkreq,
struct scatterlist *src, char *iv, int ivsize,
int buflen)
{ … }
static int alloc_dst_sglist(struct nitrox_kcrypt_request *nkreq,
struct scatterlist *dst, int ivsize, int buflen)
{ … }
static void free_src_sglist(struct nitrox_kcrypt_request *nkreq)
{ … }
static void free_dst_sglist(struct nitrox_kcrypt_request *nkreq)
{ … }
static int nitrox_set_creq(struct nitrox_aead_rctx *rctx)
{ … }
static void nitrox_aead_callback(void *arg, int err)
{ … }
static inline bool nitrox_aes_gcm_assoclen_supported(unsigned int assoclen)
{ … }
static int nitrox_aes_gcm_enc(struct aead_request *areq)
{ … }
static int nitrox_aes_gcm_dec(struct aead_request *areq)
{ … }
static int nitrox_aead_init(struct crypto_aead *aead)
{ … }
static int nitrox_gcm_common_init(struct crypto_aead *aead)
{ … }
static int nitrox_aes_gcm_init(struct crypto_aead *aead)
{ … }
static void nitrox_aead_exit(struct crypto_aead *aead)
{ … }
static int nitrox_rfc4106_setkey(struct crypto_aead *aead, const u8 *key,
unsigned int keylen)
{ … }
static int nitrox_rfc4106_setauthsize(struct crypto_aead *aead,
unsigned int authsize)
{ … }
static int nitrox_rfc4106_set_aead_rctx_sglist(struct aead_request *areq)
{ … }
static void nitrox_rfc4106_callback(void *arg, int err)
{ … }
static int nitrox_rfc4106_enc(struct aead_request *areq)
{ … }
static int nitrox_rfc4106_dec(struct aead_request *areq)
{ … }
static int nitrox_rfc4106_init(struct crypto_aead *aead)
{ … }
static struct aead_alg nitrox_aeads[] = …;
int nitrox_register_aeads(void)
{ … }
void nitrox_unregister_aeads(void)
{ … }