cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

aead.h (1262B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/*
      3 * Copyright (c) 2021, Linaro Limited. All rights reserved.
      4 */
      5
      6#ifndef _AEAD_H_
      7#define _AEAD_H_
      8
      9#include "common.h"
     10#include "core.h"
     11
     12#define QCE_MAX_KEY_SIZE		64
     13#define QCE_CCM4309_SALT_SIZE		3
     14
     15struct qce_aead_ctx {
     16	u8 enc_key[QCE_MAX_KEY_SIZE];
     17	u8 auth_key[QCE_MAX_KEY_SIZE];
     18	u8 ccm4309_salt[QCE_CCM4309_SALT_SIZE];
     19	unsigned int enc_keylen;
     20	unsigned int auth_keylen;
     21	unsigned int authsize;
     22	bool need_fallback;
     23	struct crypto_aead *fallback;
     24};
     25
     26struct qce_aead_reqctx {
     27	unsigned long flags;
     28	u8 *iv;
     29	unsigned int ivsize;
     30	int src_nents;
     31	int dst_nents;
     32	struct scatterlist result_sg;
     33	struct scatterlist adata_sg;
     34	struct sg_table dst_tbl;
     35	struct sg_table src_tbl;
     36	struct scatterlist *dst_sg;
     37	struct scatterlist *src_sg;
     38	unsigned int cryptlen;
     39	unsigned int assoclen;
     40	unsigned char *adata;
     41	u8 ccm_nonce[QCE_MAX_NONCE];
     42	u8 ccmresult_buf[QCE_BAM_BURST_SIZE];
     43	u8 ccm_rfc4309_iv[QCE_MAX_IV_SIZE];
     44	struct aead_request fallback_req;
     45};
     46
     47static inline struct qce_alg_template *to_aead_tmpl(struct crypto_aead *tfm)
     48{
     49	struct aead_alg *alg = crypto_aead_alg(tfm);
     50
     51	return container_of(alg, struct qce_alg_template, alg.aead);
     52}
     53
     54extern const struct qce_algo_ops aead_ops;
     55
     56#endif /* _AEAD_H_ */