#include <crypto/aes.h>
#include <crypto/algapi.h>
#include <crypto/authenc.h>
#include <crypto/internal/des.h>
#include <crypto/xts.h>
#include <linux/crypto.h>
#include <linux/err.h>
#include <linux/list.h>
#include <linux/scatterlist.h>
#include "cptvf.h"
#include "cptvf_algs.h"
struct cpt_device_handle { … };
static struct cpt_device_handle dev_handle;
static void cvm_callback(u32 status, void *arg)
{ … }
static inline void update_input_iv(struct cpt_request_info *req_info,
u8 *iv, u32 enc_iv_len,
u32 *argcnt)
{ … }
static inline void update_output_iv(struct cpt_request_info *req_info,
u8 *iv, u32 enc_iv_len,
u32 *argcnt)
{ … }
static inline void update_input_data(struct cpt_request_info *req_info,
struct scatterlist *inp_sg,
u32 nbytes, u32 *argcnt)
{ … }
static inline void update_output_data(struct cpt_request_info *req_info,
struct scatterlist *outp_sg,
u32 nbytes, u32 *argcnt)
{ … }
static inline u32 create_ctx_hdr(struct skcipher_request *req, u32 enc,
u32 *argcnt)
{ … }
static inline u32 create_input_list(struct skcipher_request *req, u32 enc,
u32 enc_iv_len)
{ … }
static inline void store_cb_info(struct skcipher_request *req,
struct cpt_request_info *req_info)
{ … }
static inline void create_output_list(struct skcipher_request *req,
u32 enc_iv_len)
{ … }
static inline int cvm_enc_dec(struct skcipher_request *req, u32 enc)
{ … }
static int cvm_encrypt(struct skcipher_request *req)
{ … }
static int cvm_decrypt(struct skcipher_request *req)
{ … }
static int cvm_xts_setkey(struct crypto_skcipher *cipher, const u8 *key,
u32 keylen)
{ … }
static int cvm_validate_keylen(struct cvm_enc_ctx *ctx, u32 keylen)
{ … }
static int cvm_setkey(struct crypto_skcipher *cipher, const u8 *key,
u32 keylen, u8 cipher_type)
{ … }
static int cvm_cbc_aes_setkey(struct crypto_skcipher *cipher, const u8 *key,
u32 keylen)
{ … }
static int cvm_ecb_aes_setkey(struct crypto_skcipher *cipher, const u8 *key,
u32 keylen)
{ … }
static int cvm_cbc_des3_setkey(struct crypto_skcipher *cipher, const u8 *key,
u32 keylen)
{ … }
static int cvm_ecb_des3_setkey(struct crypto_skcipher *cipher, const u8 *key,
u32 keylen)
{ … }
static int cvm_enc_dec_init(struct crypto_skcipher *tfm)
{ … }
static struct skcipher_alg algs[] = …;
static inline int cav_register_algs(void)
{ … }
static inline void cav_unregister_algs(void)
{ … }
int cvm_crypto_init(struct cpt_vf *cptvf)
{ … }
void cvm_crypto_exit(void)
{ … }