linux/drivers/crypto/ccree/cc_aead.c

// SPDX-License-Identifier: GPL-2.0
/* Copyright (C) 2012-2019 ARM Limited (or its affiliates). */

#include <linux/kernel.h>
#include <linux/module.h>
#include <crypto/algapi.h>
#include <crypto/internal/aead.h>
#include <crypto/authenc.h>
#include <crypto/gcm.h>
#include <linux/rtnetlink.h>
#include <crypto/internal/des.h>
#include "cc_driver.h"
#include "cc_buffer_mgr.h"
#include "cc_aead.h"
#include "cc_request_mgr.h"
#include "cc_hash.h"
#include "cc_sram_mgr.h"

#define template_aead

#define MAX_AEAD_SETKEY_SEQ
#define MAX_AEAD_PROCESS_SEQ

#define MAX_HMAC_DIGEST_SIZE
#define MAX_HMAC_BLOCK_SIZE

#define MAX_NONCE_SIZE

struct cc_aead_handle {};

struct cc_hmac_s {};

struct cc_xcbc_s {};

struct cc_aead_ctx {};

static void cc_aead_exit(struct crypto_aead *tfm)
{}

static unsigned int cc_get_aead_hash_len(struct crypto_aead *tfm)
{}

static int cc_aead_init(struct crypto_aead *tfm)
{}

static void cc_aead_complete(struct device *dev, void *cc_req, int err)
{}

static unsigned int xcbc_setkey(struct cc_hw_desc *desc,
				struct cc_aead_ctx *ctx)
{}

static unsigned int hmac_setkey(struct cc_hw_desc *desc,
				struct cc_aead_ctx *ctx)
{}

static int validate_keys_sizes(struct cc_aead_ctx *ctx)
{}

/* This function prepers the user key so it can pass to the hmac processing
 * (copy to intenral buffer or hash in case of key longer than block
 */
static int cc_get_plain_hmac_key(struct crypto_aead *tfm, const u8 *authkey,
				 unsigned int keylen)
{}

static int cc_aead_setkey(struct crypto_aead *tfm, const u8 *key,
			  unsigned int keylen)
{}

static int cc_des3_aead_setkey(struct crypto_aead *aead, const u8 *key,
			       unsigned int keylen)
{}

static int cc_rfc4309_ccm_setkey(struct crypto_aead *tfm, const u8 *key,
				 unsigned int keylen)
{}

static int cc_aead_setauthsize(struct crypto_aead *authenc,
			       unsigned int authsize)
{}

static int cc_rfc4309_ccm_setauthsize(struct crypto_aead *authenc,
				      unsigned int authsize)
{}

static int cc_ccm_setauthsize(struct crypto_aead *authenc,
			      unsigned int authsize)
{}

static void cc_set_assoc_desc(struct aead_request *areq, unsigned int flow_mode,
			      struct cc_hw_desc desc[], unsigned int *seq_size)
{}

static void cc_proc_authen_desc(struct aead_request *areq,
				unsigned int flow_mode,
				struct cc_hw_desc desc[],
				unsigned int *seq_size, int direct)
{}

static void cc_proc_cipher_desc(struct aead_request *areq,
				unsigned int flow_mode,
				struct cc_hw_desc desc[],
				unsigned int *seq_size)
{}

static void cc_proc_digest_desc(struct aead_request *req,
				struct cc_hw_desc desc[],
				unsigned int *seq_size)
{}

static void cc_set_cipher_desc(struct aead_request *req,
			       struct cc_hw_desc desc[],
			       unsigned int *seq_size)
{}

static void cc_proc_cipher(struct aead_request *req, struct cc_hw_desc desc[],
			   unsigned int *seq_size, unsigned int data_flow_mode)
{}

static void cc_set_hmac_desc(struct aead_request *req, struct cc_hw_desc desc[],
			     unsigned int *seq_size)
{}

static void cc_set_xcbc_desc(struct aead_request *req, struct cc_hw_desc desc[],
			     unsigned int *seq_size)
{}

static void cc_proc_header_desc(struct aead_request *req,
				struct cc_hw_desc desc[],
				unsigned int *seq_size)
{}

static void cc_proc_scheme_desc(struct aead_request *req,
				struct cc_hw_desc desc[],
				unsigned int *seq_size)
{}

static void cc_mlli_to_sram(struct aead_request *req,
			    struct cc_hw_desc desc[], unsigned int *seq_size)
{}

static enum cc_flow_mode cc_get_data_flow(enum drv_crypto_direction direct,
					  enum cc_flow_mode setup_flow_mode,
					  bool is_single_pass)
{}

static void cc_hmac_authenc(struct aead_request *req, struct cc_hw_desc desc[],
			    unsigned int *seq_size)
{}

static void
cc_xcbc_authenc(struct aead_request *req, struct cc_hw_desc desc[],
		unsigned int *seq_size)
{}

static int validate_data_size(struct cc_aead_ctx *ctx,
			      enum drv_crypto_direction direct,
			      struct aead_request *req)
{}

static unsigned int format_ccm_a0(u8 *pa0_buff, u32 header_size)
{}

static int set_msg_len(u8 *block, unsigned int msglen, unsigned int csize)
{}

static int cc_ccm(struct aead_request *req, struct cc_hw_desc desc[],
		  unsigned int *seq_size)
{}

static int config_ccm_adata(struct aead_request *req)
{}

static void cc_proc_rfc4309_ccm(struct aead_request *req)
{}

static void cc_set_ghash_desc(struct aead_request *req,
			      struct cc_hw_desc desc[], unsigned int *seq_size)
{}

static void cc_set_gctr_desc(struct aead_request *req, struct cc_hw_desc desc[],
			     unsigned int *seq_size)
{}

static void cc_proc_gcm_result(struct aead_request *req,
			       struct cc_hw_desc desc[],
			       unsigned int *seq_size)
{}

static int cc_gcm(struct aead_request *req, struct cc_hw_desc desc[],
		  unsigned int *seq_size)
{}

static int config_gcm_context(struct aead_request *req)
{}

static void cc_proc_rfc4_gcm(struct aead_request *req)
{}

static int cc_proc_aead(struct aead_request *req,
			enum drv_crypto_direction direct)
{}

static int cc_aead_encrypt(struct aead_request *req)
{}

static int cc_rfc4309_ccm_encrypt(struct aead_request *req)
{}

static int cc_aead_decrypt(struct aead_request *req)
{}

static int cc_rfc4309_ccm_decrypt(struct aead_request *req)
{}

static int cc_rfc4106_gcm_setkey(struct crypto_aead *tfm, const u8 *key,
				 unsigned int keylen)
{}

static int cc_rfc4543_gcm_setkey(struct crypto_aead *tfm, const u8 *key,
				 unsigned int keylen)
{}

static int cc_gcm_setauthsize(struct crypto_aead *authenc,
			      unsigned int authsize)
{}

static int cc_rfc4106_gcm_setauthsize(struct crypto_aead *authenc,
				      unsigned int authsize)
{}

static int cc_rfc4543_gcm_setauthsize(struct crypto_aead *authenc,
				      unsigned int authsize)
{}

static int cc_rfc4106_gcm_encrypt(struct aead_request *req)
{}

static int cc_rfc4543_gcm_encrypt(struct aead_request *req)
{}

static int cc_rfc4106_gcm_decrypt(struct aead_request *req)
{}

static int cc_rfc4543_gcm_decrypt(struct aead_request *req)
{}

/* aead alg */
static struct cc_alg_template aead_algs[] =;

static struct cc_crypto_alg *cc_create_aead_alg(struct cc_alg_template *tmpl,
						struct device *dev)
{}

int cc_aead_free(struct cc_drvdata *drvdata)
{}

int cc_aead_alloc(struct cc_drvdata *drvdata)
{}