|  | /* | 
|  | * Copyright (c) 2010-2014, The Linux Foundation. All rights reserved. | 
|  | * | 
|  | * This program is free software; you can redistribute it and/or modify | 
|  | * it under the terms of the GNU General Public License version 2 and | 
|  | * only version 2 as published by the Free Software Foundation. | 
|  | * | 
|  | * This program is distributed in the hope that it will be useful, | 
|  | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
|  | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
|  | * GNU General Public License for more details. | 
|  | */ | 
|  |  | 
|  | #ifndef _CIPHER_H_ | 
|  | #define _CIPHER_H_ | 
|  |  | 
|  | #include "common.h" | 
|  | #include "core.h" | 
|  |  | 
|  | #define QCE_MAX_KEY_SIZE	64 | 
|  |  | 
|  | struct qce_cipher_ctx { | 
|  | u8 enc_key[QCE_MAX_KEY_SIZE]; | 
|  | unsigned int enc_keylen; | 
|  | struct crypto_skcipher *fallback; | 
|  | }; | 
|  |  | 
|  | /** | 
|  | * struct qce_cipher_reqctx - holds private cipher objects per request | 
|  | * @flags: operation flags | 
|  | * @iv: pointer to the IV | 
|  | * @ivsize: IV size | 
|  | * @src_nents: source entries | 
|  | * @dst_nents: destination entries | 
|  | * @result_sg: scatterlist used for result buffer | 
|  | * @dst_tbl: destination sg table | 
|  | * @dst_sg: destination sg pointer table beginning | 
|  | * @src_tbl: source sg table | 
|  | * @src_sg: source sg pointer table beginning; | 
|  | * @cryptlen: crypto length | 
|  | */ | 
|  | struct qce_cipher_reqctx { | 
|  | unsigned long flags; | 
|  | u8 *iv; | 
|  | unsigned int ivsize; | 
|  | int src_nents; | 
|  | int dst_nents; | 
|  | struct scatterlist result_sg; | 
|  | struct sg_table dst_tbl; | 
|  | struct scatterlist *dst_sg; | 
|  | struct sg_table src_tbl; | 
|  | struct scatterlist *src_sg; | 
|  | unsigned int cryptlen; | 
|  | }; | 
|  |  | 
|  | static inline struct qce_alg_template *to_cipher_tmpl(struct crypto_tfm *tfm) | 
|  | { | 
|  | struct crypto_alg *alg = tfm->__crt_alg; | 
|  | return container_of(alg, struct qce_alg_template, alg.crypto); | 
|  | } | 
|  |  | 
|  | extern const struct qce_algo_ops ablkcipher_ops; | 
|  |  | 
|  | #endif /* _CIPHER_H_ */ |