2 * Copyright (c) 2010-2014, The Linux Foundation. All rights reserved.
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.
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.
20 #define QCE_MAX_KEY_SIZE 64
22 struct qce_cipher_ctx
{
23 u8 enc_key
[QCE_MAX_KEY_SIZE
];
24 unsigned int enc_keylen
;
25 struct crypto_ablkcipher
*fallback
;
29 * struct qce_cipher_reqctx - holds private cipher objects per request
30 * @flags: operation flags
31 * @iv: pointer to the IV
33 * @src_nents: source entries
34 * @dst_nents: destination entries
35 * @src_chained: is source chained
36 * @dst_chained: is destination chained
37 * @result_sg: scatterlist used for result buffer
38 * @dst_tbl: destination sg table
39 * @dst_sg: destination sg pointer table beginning
40 * @src_tbl: source sg table
41 * @src_sg: source sg pointer table beginning;
42 * @cryptlen: crypto length
44 struct qce_cipher_reqctx
{
52 struct scatterlist result_sg
;
53 struct sg_table dst_tbl
;
54 struct scatterlist
*dst_sg
;
55 struct sg_table src_tbl
;
56 struct scatterlist
*src_sg
;
57 unsigned int cryptlen
;
60 static inline struct qce_alg_template
*to_cipher_tmpl(struct crypto_tfm
*tfm
)
62 struct crypto_alg
*alg
= tfm
->__crt_alg
;
63 return container_of(alg
, struct qce_alg_template
, alg
.crypto
);
66 extern const struct qce_algo_ops ablkcipher_ops
;
68 #endif /* _CIPHER_H_ */