提交 7d86152d 编写于 作者: K Kai Ye 提交者: Zheng Zengkai

crypto: hisilicon/sec - fix the CTR mode BD configuration

driver inclusion
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I4750I?from=project-issue

----------------------------------------------------------------------

The CTR counter is 32bit rollover default on the BD.
But the NIST standard is 128bit rollover. it cause the
testing failed, so need to fix the BD configuration.
Signed-off-by: NKai Ye <yekai13@huawei.com>
Reviewed-by: NHao Fang <fanghao11@huawei.com>
Reviewed-by: NMingqiang Ling <lingmingqiang@huawei.com>
Signed-off-by: NZheng Zengkai <zhengzengkai@huawei.com>
上级 7ff4d56a
...@@ -42,6 +42,8 @@ ...@@ -42,6 +42,8 @@
#define SEC_DE_OFFSET_V3 9 #define SEC_DE_OFFSET_V3 9
#define SEC_SCENE_OFFSET_V3 5 #define SEC_SCENE_OFFSET_V3 5
#define SEC_CKEY_OFFSET_V3 13 #define SEC_CKEY_OFFSET_V3 13
#define SEC_CTR_CNT_OFFSET 25
#define SEC_CTR_CNT_ROLLOVER 2
#define SEC_SRC_SGL_OFFSET_V3 11 #define SEC_SRC_SGL_OFFSET_V3 11
#define SEC_DST_SGL_OFFSET_V3 14 #define SEC_DST_SGL_OFFSET_V3 14
#define SEC_CALG_OFFSET_V3 4 #define SEC_CALG_OFFSET_V3 4
...@@ -1301,6 +1303,10 @@ static int sec_skcipher_bd_fill_v3(struct sec_ctx *ctx, struct sec_req *req) ...@@ -1301,6 +1303,10 @@ static int sec_skcipher_bd_fill_v3(struct sec_ctx *ctx, struct sec_req *req)
cipher = SEC_CIPHER_DEC; cipher = SEC_CIPHER_DEC;
sec_sqe3->c_icv_key |= cpu_to_le16(cipher); sec_sqe3->c_icv_key |= cpu_to_le16(cipher);
/* Set the CTR counter mode is 128bit rollover */
sec_sqe3->auth_mac_key = cpu_to_le32((u32)SEC_CTR_CNT_ROLLOVER <<
SEC_CTR_CNT_OFFSET);
if (req->use_pbuf) { if (req->use_pbuf) {
bd_param |= SEC_PBUF << SEC_SRC_SGL_OFFSET_V3; bd_param |= SEC_PBUF << SEC_SRC_SGL_OFFSET_V3;
bd_param |= SEC_PBUF << SEC_DST_SGL_OFFSET_V3; bd_param |= SEC_PBUF << SEC_DST_SGL_OFFSET_V3;
......
...@@ -354,8 +354,10 @@ struct sec_sqe3 { ...@@ -354,8 +354,10 @@ struct sec_sqe3 {
* akey_len: 9~14 bits * akey_len: 9~14 bits
* a_alg: 15~20 bits * a_alg: 15~20 bits
* key_sel: 21~24 bits * key_sel: 21~24 bits
* updata_key: 25 bits * ctr_count_mode/sm4_xts: 25~26 bits
* reserved: 26~31 bits * sva_prefetch: 27 bits
* key_wrap_num: 28~30 bits
* update_key: 31 bits
*/ */
__le32 auth_mac_key; __le32 auth_mac_key;
__le32 salt; __le32 salt;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册