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_skcipher
*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 * @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
42 struct qce_cipher_reqctx
{
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
;
56 static inline struct qce_alg_template
*to_cipher_tmpl(struct crypto_tfm
*tfm
)
58 struct crypto_alg
*alg
= tfm
->__crt_alg
;
59 return container_of(alg
, struct qce_alg_template
, alg
.crypto
);
62 extern const struct qce_algo_ops ablkcipher_ops
;
64 #endif /* _CIPHER_H_ */