| /* SPDX-License-Identifier: GPL-2.0 |
| * |
| * Copyright (C) 2019 - 2021 |
| * |
| * Richard van Schagen <vschagen@icloud.com> |
| * Christian Marangi <ansuelsmth@gmail.com |
| */ |
| #ifndef _EIP93_CIPHER_H_ |
| #define _EIP93_CIPHER_H_ |
| |
| #include "eip93-main.h" |
| |
| struct eip93_crypto_ctx { |
| struct eip93_device *eip93; |
| u32 flags; |
| struct sa_record *sa_record; |
| u32 sa_nonce; |
| int blksize; |
| dma_addr_t sa_record_base; |
| /* AEAD specific */ |
| unsigned int authsize; |
| unsigned int assoclen; |
| bool set_assoc; |
| enum eip93_alg_type type; |
| }; |
| |
| struct eip93_cipher_reqctx { |
| u16 desc_flags; |
| u16 flags; |
| unsigned int blksize; |
| unsigned int ivsize; |
| unsigned int textsize; |
| unsigned int assoclen; |
| unsigned int authsize; |
| dma_addr_t sa_record_base; |
| struct sa_state *sa_state; |
| dma_addr_t sa_state_base; |
| struct eip93_descriptor *cdesc; |
| struct scatterlist *sg_src; |
| struct scatterlist *sg_dst; |
| int src_nents; |
| int dst_nents; |
| struct sa_state *sa_state_ctr; |
| dma_addr_t sa_state_ctr_base; |
| }; |
| |
| int check_valid_request(struct eip93_cipher_reqctx *rctx); |
| |
| void eip93_unmap_dma(struct eip93_device *eip93, struct eip93_cipher_reqctx *rctx, |
| struct scatterlist *reqsrc, struct scatterlist *reqdst); |
| |
| void eip93_skcipher_handle_result(struct crypto_async_request *async, int err); |
| |
| int eip93_send_req(struct crypto_async_request *async, |
| const u8 *reqiv, struct eip93_cipher_reqctx *rctx); |
| |
| void eip93_handle_result(struct eip93_device *eip93, struct eip93_cipher_reqctx *rctx, |
| u8 *reqiv); |
| |
| #endif /* _EIP93_CIPHER_H_ */ |