Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 /*
0003  * Shared descriptors for aead, skcipher algorithms
0004  *
0005  * Copyright 2016 NXP
0006  */
0007 
0008 #ifndef _CAAMALG_DESC_H_
0009 #define _CAAMALG_DESC_H_
0010 
0011 /* length of descriptors text */
0012 #define DESC_AEAD_BASE          (4 * CAAM_CMD_SZ)
0013 #define DESC_AEAD_ENC_LEN       (DESC_AEAD_BASE + 11 * CAAM_CMD_SZ)
0014 #define DESC_AEAD_DEC_LEN       (DESC_AEAD_BASE + 15 * CAAM_CMD_SZ)
0015 #define DESC_AEAD_GIVENC_LEN        (DESC_AEAD_ENC_LEN + 8 * CAAM_CMD_SZ)
0016 #define DESC_QI_AEAD_ENC_LEN        (DESC_AEAD_ENC_LEN + 3 * CAAM_CMD_SZ)
0017 #define DESC_QI_AEAD_DEC_LEN        (DESC_AEAD_DEC_LEN + 3 * CAAM_CMD_SZ)
0018 #define DESC_QI_AEAD_GIVENC_LEN     (DESC_AEAD_GIVENC_LEN + 3 * CAAM_CMD_SZ)
0019 
0020 /* Note: Nonce is counted in cdata.keylen */
0021 #define DESC_AEAD_CTR_RFC3686_LEN   (4 * CAAM_CMD_SZ)
0022 
0023 #define DESC_AEAD_NULL_BASE     (3 * CAAM_CMD_SZ)
0024 #define DESC_AEAD_NULL_ENC_LEN      (DESC_AEAD_NULL_BASE + 11 * CAAM_CMD_SZ)
0025 #define DESC_AEAD_NULL_DEC_LEN      (DESC_AEAD_NULL_BASE + 13 * CAAM_CMD_SZ)
0026 
0027 #define DESC_GCM_BASE           (3 * CAAM_CMD_SZ)
0028 #define DESC_GCM_ENC_LEN        (DESC_GCM_BASE + 16 * CAAM_CMD_SZ)
0029 #define DESC_GCM_DEC_LEN        (DESC_GCM_BASE + 12 * CAAM_CMD_SZ)
0030 #define DESC_QI_GCM_ENC_LEN     (DESC_GCM_ENC_LEN + 6 * CAAM_CMD_SZ)
0031 #define DESC_QI_GCM_DEC_LEN     (DESC_GCM_DEC_LEN + 3 * CAAM_CMD_SZ)
0032 
0033 #define DESC_RFC4106_BASE       (3 * CAAM_CMD_SZ)
0034 #define DESC_RFC4106_ENC_LEN        (DESC_RFC4106_BASE + 16 * CAAM_CMD_SZ)
0035 #define DESC_RFC4106_DEC_LEN        (DESC_RFC4106_BASE + 13 * CAAM_CMD_SZ)
0036 #define DESC_QI_RFC4106_ENC_LEN     (DESC_RFC4106_ENC_LEN + 5 * CAAM_CMD_SZ)
0037 #define DESC_QI_RFC4106_DEC_LEN     (DESC_RFC4106_DEC_LEN + 5 * CAAM_CMD_SZ)
0038 
0039 #define DESC_RFC4543_BASE       (3 * CAAM_CMD_SZ)
0040 #define DESC_RFC4543_ENC_LEN        (DESC_RFC4543_BASE + 11 * CAAM_CMD_SZ)
0041 #define DESC_RFC4543_DEC_LEN        (DESC_RFC4543_BASE + 12 * CAAM_CMD_SZ)
0042 #define DESC_QI_RFC4543_ENC_LEN     (DESC_RFC4543_ENC_LEN + 4 * CAAM_CMD_SZ)
0043 #define DESC_QI_RFC4543_DEC_LEN     (DESC_RFC4543_DEC_LEN + 4 * CAAM_CMD_SZ)
0044 
0045 #define DESC_SKCIPHER_BASE      (3 * CAAM_CMD_SZ)
0046 #define DESC_SKCIPHER_ENC_LEN       (DESC_SKCIPHER_BASE + \
0047                      21 * CAAM_CMD_SZ)
0048 #define DESC_SKCIPHER_DEC_LEN       (DESC_SKCIPHER_BASE + \
0049                      16 * CAAM_CMD_SZ)
0050 
0051 void cnstr_shdsc_aead_null_encap(u32 * const desc, struct alginfo *adata,
0052                  unsigned int icvsize, int era);
0053 
0054 void cnstr_shdsc_aead_null_decap(u32 * const desc, struct alginfo *adata,
0055                  unsigned int icvsize, int era);
0056 
0057 void cnstr_shdsc_aead_encap(u32 * const desc, struct alginfo *cdata,
0058                 struct alginfo *adata, unsigned int ivsize,
0059                 unsigned int icvsize, const bool is_rfc3686,
0060                 u32 *nonce, const u32 ctx1_iv_off,
0061                 const bool is_qi, int era);
0062 
0063 void cnstr_shdsc_aead_decap(u32 * const desc, struct alginfo *cdata,
0064                 struct alginfo *adata, unsigned int ivsize,
0065                 unsigned int icvsize, const bool geniv,
0066                 const bool is_rfc3686, u32 *nonce,
0067                 const u32 ctx1_iv_off, const bool is_qi, int era);
0068 
0069 void cnstr_shdsc_aead_givencap(u32 * const desc, struct alginfo *cdata,
0070                    struct alginfo *adata, unsigned int ivsize,
0071                    unsigned int icvsize, const bool is_rfc3686,
0072                    u32 *nonce, const u32 ctx1_iv_off,
0073                    const bool is_qi, int era);
0074 
0075 void cnstr_shdsc_gcm_encap(u32 * const desc, struct alginfo *cdata,
0076                unsigned int ivsize, unsigned int icvsize,
0077                const bool is_qi);
0078 
0079 void cnstr_shdsc_gcm_decap(u32 * const desc, struct alginfo *cdata,
0080                unsigned int ivsize, unsigned int icvsize,
0081                const bool is_qi);
0082 
0083 void cnstr_shdsc_rfc4106_encap(u32 * const desc, struct alginfo *cdata,
0084                    unsigned int ivsize, unsigned int icvsize,
0085                    const bool is_qi);
0086 
0087 void cnstr_shdsc_rfc4106_decap(u32 * const desc, struct alginfo *cdata,
0088                    unsigned int ivsize, unsigned int icvsize,
0089                    const bool is_qi);
0090 
0091 void cnstr_shdsc_rfc4543_encap(u32 * const desc, struct alginfo *cdata,
0092                    unsigned int ivsize, unsigned int icvsize,
0093                    const bool is_qi);
0094 
0095 void cnstr_shdsc_rfc4543_decap(u32 * const desc, struct alginfo *cdata,
0096                    unsigned int ivsize, unsigned int icvsize,
0097                    const bool is_qi);
0098 
0099 void cnstr_shdsc_chachapoly(u32 * const desc, struct alginfo *cdata,
0100                 struct alginfo *adata, unsigned int ivsize,
0101                 unsigned int icvsize, const bool encap,
0102                 const bool is_qi);
0103 
0104 void cnstr_shdsc_skcipher_encap(u32 * const desc, struct alginfo *cdata,
0105                 unsigned int ivsize, const bool is_rfc3686,
0106                 const u32 ctx1_iv_off);
0107 
0108 void cnstr_shdsc_skcipher_decap(u32 * const desc, struct alginfo *cdata,
0109                 unsigned int ivsize, const bool is_rfc3686,
0110                 const u32 ctx1_iv_off);
0111 
0112 void cnstr_shdsc_xts_skcipher_encap(u32 * const desc, struct alginfo *cdata);
0113 
0114 void cnstr_shdsc_xts_skcipher_decap(u32 * const desc, struct alginfo *cdata);
0115 
0116 #endif /* _CAAMALG_DESC_H_ */