Commit | Line | Data |
---|---|---|
ec8f5d8f SV |
1 | /* |
2 | * Copyright (c) 2010-2014, The Linux Foundation. All rights reserved. | |
3 | * | |
4 | * This program is free software; you can redistribute it and/or modify | |
5 | * it under the terms of the GNU General Public License version 2 and | |
6 | * only version 2 as published by the Free Software Foundation. | |
7 | * | |
8 | * This program is distributed in the hope that it will be useful, | |
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
11 | * GNU General Public License for more details. | |
12 | */ | |
13 | ||
14 | #ifndef _CIPHER_H_ | |
15 | #define _CIPHER_H_ | |
16 | ||
17 | #include "common.h" | |
18 | #include "core.h" | |
19 | ||
20 | #define QCE_MAX_KEY_SIZE 64 | |
21 | ||
22 | struct qce_cipher_ctx { | |
23 | u8 enc_key[QCE_MAX_KEY_SIZE]; | |
24 | unsigned int enc_keylen; | |
25 | struct crypto_ablkcipher *fallback; | |
26 | }; | |
27 | ||
28 | /** | |
29 | * struct qce_cipher_reqctx - holds private cipher objects per request | |
30 | * @flags: operation flags | |
31 | * @iv: pointer to the IV | |
32 | * @ivsize: IV size | |
33 | * @src_nents: source entries | |
34 | * @dst_nents: destination entries | |
ec8f5d8f SV |
35 | * @result_sg: scatterlist used for result buffer |
36 | * @dst_tbl: destination sg table | |
37 | * @dst_sg: destination sg pointer table beginning | |
38 | * @src_tbl: source sg table | |
39 | * @src_sg: source sg pointer table beginning; | |
40 | * @cryptlen: crypto length | |
41 | */ | |
42 | struct qce_cipher_reqctx { | |
43 | unsigned long flags; | |
44 | u8 *iv; | |
45 | unsigned int ivsize; | |
46 | int src_nents; | |
47 | int dst_nents; | |
ec8f5d8f SV |
48 | struct scatterlist result_sg; |
49 | struct sg_table dst_tbl; | |
50 | struct scatterlist *dst_sg; | |
51 | struct sg_table src_tbl; | |
52 | struct scatterlist *src_sg; | |
53 | unsigned int cryptlen; | |
54 | }; | |
55 | ||
56 | static inline struct qce_alg_template *to_cipher_tmpl(struct crypto_tfm *tfm) | |
57 | { | |
58 | struct crypto_alg *alg = tfm->__crt_alg; | |
59 | return container_of(alg, struct qce_alg_template, alg.crypto); | |
60 | } | |
61 | ||
62 | extern const struct qce_algo_ops ablkcipher_ops; | |
63 | ||
64 | #endif /* _CIPHER_H_ */ |