0001
0002
0003
0004
0005
0006
0007
0008 #ifndef _CAAMALG_DESC_H_
0009 #define _CAAMALG_DESC_H_
0010
0011
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
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