From patchwork Thu Oct 22 16:20:57 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "De Lara Guarch, Pablo" X-Patchwork-Id: 81818 X-Patchwork-Delegate: gakhil@marvell.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id EB361A04DD; Thu, 22 Oct 2020 18:21:11 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 4846C5A24; Thu, 22 Oct 2020 18:21:10 +0200 (CEST) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by dpdk.org (Postfix) with ESMTP id CE57D2BE2 for ; Thu, 22 Oct 2020 18:21:06 +0200 (CEST) IronPort-SDR: 6nR1lPlhmc5eglYy39dwkjs2Rv/3ObxVxdtvAH1trI0b306xW9vZjrkbUx9CsoTGRgqJJboO+u dWZVyhXhgEhQ== X-IronPort-AV: E=McAfee;i="6000,8403,9781"; a="146847750" X-IronPort-AV: E=Sophos;i="5.77,404,1596524400"; d="scan'208";a="146847750" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Oct 2020 09:21:02 -0700 IronPort-SDR: vgHVHBpSYxr/fQZBksqKnqi7x/E59QirFaPwrdjCt1gsBW18zv2d/52VOZ6p65cxa8ZCpkJVJs 9AYjSJgKkvSQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,404,1596524400"; d="scan'208";a="348817125" Received: from silpixa00400496.ir.intel.com ([10.237.214.182]) by fmsmga004.fm.intel.com with ESMTP; 22 Oct 2020 09:21:00 -0700 From: Pablo de Lara To: declan.doherty@intel.com Cc: dev@dpdk.org, Pablo de Lara Date: Thu, 22 Oct 2020 16:20:57 +0000 Message-Id: <20201022162058.259369-1-pablo.de.lara.guarch@intel.com> X-Mailer: git-send-email 2.27.0 MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH 1/2] crypto/aesni_mb: support Chacha-Poly in symmetric API 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Add support for Chacha20-Poly1305 in the crypto symmetric API. Signed-off-by: Pablo de Lara --- drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c b/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c index fbbb38af0..03186485f 100644 --- a/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c +++ b/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c @@ -1108,7 +1108,8 @@ auth_start_offset(struct rte_crypto_op *op, struct aesni_mb_session *session, static inline void set_cpu_mb_job_params(JOB_AES_HMAC *job, struct aesni_mb_session *session, union rte_crypto_sym_ofs sofs, void *buf, uint32_t len, - void *iv, void *aad, void *digest, void *udata) + struct rte_crypto_va_iova_ptr *iv, + struct rte_crypto_va_iova_ptr *aad, void *digest, void *udata) { /* Set crypto operation */ job->chain_order = session->chain_order; @@ -1121,7 +1122,7 @@ set_cpu_mb_job_params(JOB_AES_HMAC *job, struct aesni_mb_session *session, /* Set authentication parameters */ job->hash_alg = session->auth.algo; - job->iv = iv; + job->iv = iv->va; switch (job->hash_alg) { case AES_XCBC: @@ -1136,7 +1137,7 @@ set_cpu_mb_job_params(JOB_AES_HMAC *job, struct aesni_mb_session *session, break; case AES_CCM: - job->u.CCM.aad = (uint8_t *)aad + 18; + job->u.CCM.aad = (uint8_t *)aad->va + 18; job->u.CCM.aad_len_in_bytes = session->aead.aad_len; job->aes_enc_key_expanded = session->cipher.expanded_aes_keys.encode; @@ -1157,7 +1158,7 @@ set_cpu_mb_job_params(JOB_AES_HMAC *job, struct aesni_mb_session *session, case AES_GMAC: if (session->cipher.mode == GCM) { - job->u.GCM.aad = aad; + job->u.GCM.aad = aad->va; job->u.GCM.aad_len_in_bytes = session->aead.aad_len; } else { /* For GMAC */ @@ -1169,6 +1170,14 @@ set_cpu_mb_job_params(JOB_AES_HMAC *job, struct aesni_mb_session *session, job->aes_dec_key_expanded = &session->cipher.gcm_key; break; +#if IMB_VERSION(0, 54, 3) <= IMB_VERSION_NUM + case IMB_AUTH_CHACHA20_POLY1305: + job->u.CHACHA20_POLY1305.aad = aad->va; + job->u.CHACHA20_POLY1305.aad_len_in_bytes = session->aead.aad_len; + job->aes_enc_key_expanded = session->cipher.expanded_aes_keys.encode; + job->aes_dec_key_expanded = session->cipher.expanded_aes_keys.encode; + break; +#endif default: job->u.HMAC._hashed_auth_key_xor_ipad = session->auth.pads.inner; @@ -2010,8 +2019,8 @@ aesni_mb_cpu_crypto_process_bulk(struct rte_cryptodev *dev, } /* Submit job for processing */ - set_cpu_mb_job_params(job, s, sofs, buf, len, vec->iv[i].va, - vec->aad[i].va, tmp_dgst[i], &vec->status[i]); + set_cpu_mb_job_params(job, s, sofs, buf, len, &vec->iv[i], + &vec->aad[i], tmp_dgst[i], &vec->status[i]); job = submit_sync_job(mb_mgr); j++;