Merge branch 'drm-fixes-5.2' of git://people.freedesktop.org/~agd5f/linux into drm...
[sfrench/cifs-2.6.git] / drivers / crypto / qce / cipher.h
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * Copyright (c) 2010-2014, The Linux Foundation. All rights reserved.
4  */
5
6 #ifndef _CIPHER_H_
7 #define _CIPHER_H_
8
9 #include "common.h"
10 #include "core.h"
11
12 #define QCE_MAX_KEY_SIZE        64
13
14 struct qce_cipher_ctx {
15         u8 enc_key[QCE_MAX_KEY_SIZE];
16         unsigned int enc_keylen;
17         struct crypto_sync_skcipher *fallback;
18 };
19
20 /**
21  * struct qce_cipher_reqctx - holds private cipher objects per request
22  * @flags: operation flags
23  * @iv: pointer to the IV
24  * @ivsize: IV size
25  * @src_nents: source entries
26  * @dst_nents: destination entries
27  * @result_sg: scatterlist used for result buffer
28  * @dst_tbl: destination sg table
29  * @dst_sg: destination sg pointer table beginning
30  * @src_tbl: source sg table
31  * @src_sg: source sg pointer table beginning;
32  * @cryptlen: crypto length
33  */
34 struct qce_cipher_reqctx {
35         unsigned long flags;
36         u8 *iv;
37         unsigned int ivsize;
38         int src_nents;
39         int dst_nents;
40         struct scatterlist result_sg;
41         struct sg_table dst_tbl;
42         struct scatterlist *dst_sg;
43         struct sg_table src_tbl;
44         struct scatterlist *src_sg;
45         unsigned int cryptlen;
46 };
47
48 static inline struct qce_alg_template *to_cipher_tmpl(struct crypto_tfm *tfm)
49 {
50         struct crypto_alg *alg = tfm->__crt_alg;
51         return container_of(alg, struct qce_alg_template, alg.crypto);
52 }
53
54 extern const struct qce_algo_ops ablkcipher_ops;
55
56 #endif /* _CIPHER_H_ */