From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id EE3AB952; Tue, 7 Feb 2017 23:48:09 +0100 (CET) Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga102.jf.intel.com with ESMTP; 07 Feb 2017 14:48:08 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.33,346,1477983600"; d="scan'208";a="62379372" Received: from silpixa00381631.ir.intel.com (HELO silpixa00381631.ger.corp.intel.com) ([10.237.222.122]) by fmsmga005.fm.intel.com with ESMTP; 07 Feb 2017 14:48:07 -0800 From: Pablo de Lara To: dev@dpdk.org Cc: Pablo de Lara , stable@dpdk.org Date: Tue, 7 Feb 2017 22:49:58 +0000 Message-Id: <1486507798-47652-1-git-send-email-pablo.de.lara.guarch@intel.com> X-Mailer: git-send-email 2.7.4 Subject: [dpdk-dev] [PATCH] crypto: fix incorrect key setting X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Feb 2017 22:48:10 -0000 When ciphering and authenticating in the same operation (cipher-then-auth or auth-then-cipher), the cipher key and authentication key was set with the same key, in SNOW3G, KASUMI and ZUC PMDs. They were using the key of the first transform structure, instead of using the keys of the two different transform structures. This is not a big issue, since usually, the same key is used for ciphering and authentication, but keys may be different. Fixes: 3aafc423cf4d ("snow3g: add driver for SNOW 3G library") Fixes: 2773c86d061a ("crypto/kasumi: add driver for KASUMI library") Fixes: cf7685d68f00 ("crypto/zuc: add driver for ZUC library") CC: stable@dpdk.org Signed-off-by: Pablo de Lara --- drivers/crypto/kasumi/rte_kasumi_pmd.c | 4 ++-- drivers/crypto/snow3g/rte_snow3g_pmd.c | 4 ++-- drivers/crypto/zuc/rte_zuc_pmd.c | 6 ++++-- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/crypto/kasumi/rte_kasumi_pmd.c b/drivers/crypto/kasumi/rte_kasumi_pmd.c index a1ec653..234921e 100644 --- a/drivers/crypto/kasumi/rte_kasumi_pmd.c +++ b/drivers/crypto/kasumi/rte_kasumi_pmd.c @@ -116,7 +116,7 @@ kasumi_set_session_parameters(struct kasumi_session *sess, if (cipher_xform->cipher.algo != RTE_CRYPTO_CIPHER_KASUMI_F8) return -EINVAL; /* Initialize key */ - sso_kasumi_init_f8_key_sched(xform->cipher.key.data, + sso_kasumi_init_f8_key_sched(cipher_xform->cipher.key.data, &sess->pKeySched_cipher); } @@ -126,7 +126,7 @@ kasumi_set_session_parameters(struct kasumi_session *sess, return -EINVAL; sess->auth_op = auth_xform->auth.op; /* Initialize key */ - sso_kasumi_init_f9_key_sched(xform->auth.key.data, + sso_kasumi_init_f9_key_sched(auth_xform->auth.key.data, &sess->pKeySched_hash); } diff --git a/drivers/crypto/snow3g/rte_snow3g_pmd.c b/drivers/crypto/snow3g/rte_snow3g_pmd.c index bccf6a5..ca97271 100644 --- a/drivers/crypto/snow3g/rte_snow3g_pmd.c +++ b/drivers/crypto/snow3g/rte_snow3g_pmd.c @@ -116,7 +116,7 @@ snow3g_set_session_parameters(struct snow3g_session *sess, if (cipher_xform->cipher.algo != RTE_CRYPTO_CIPHER_SNOW3G_UEA2) return -EINVAL; /* Initialize key */ - sso_snow3g_init_key_sched(xform->cipher.key.data, + sso_snow3g_init_key_sched(cipher_xform->cipher.key.data, &sess->pKeySched_cipher); } @@ -126,7 +126,7 @@ snow3g_set_session_parameters(struct snow3g_session *sess, return -EINVAL; sess->auth_op = auth_xform->auth.op; /* Initialize key */ - sso_snow3g_init_key_sched(xform->auth.key.data, + sso_snow3g_init_key_sched(auth_xform->auth.key.data, &sess->pKeySched_hash); } diff --git a/drivers/crypto/zuc/rte_zuc_pmd.c b/drivers/crypto/zuc/rte_zuc_pmd.c index fabcfb4..6f9c06a 100644 --- a/drivers/crypto/zuc/rte_zuc_pmd.c +++ b/drivers/crypto/zuc/rte_zuc_pmd.c @@ -115,7 +115,8 @@ zuc_set_session_parameters(struct zuc_session *sess, if (cipher_xform->cipher.algo != RTE_CRYPTO_CIPHER_ZUC_EEA3) return -EINVAL; /* Copy the key */ - memcpy(sess->pKey_cipher, xform->cipher.key.data, ZUC_IV_KEY_LENGTH); + memcpy(sess->pKey_cipher, cipher_xform->cipher.key.data, + ZUC_IV_KEY_LENGTH); } if (auth_xform) { @@ -124,7 +125,8 @@ zuc_set_session_parameters(struct zuc_session *sess, return -EINVAL; sess->auth_op = auth_xform->auth.op; /* Copy the key */ - memcpy(sess->pKey_hash, xform->auth.key.data, ZUC_IV_KEY_LENGTH); + memcpy(sess->pKey_hash, auth_xform->auth.key.data, + ZUC_IV_KEY_LENGTH); } -- 2.7.4