From: Akhil Goyal <akhil.goyal@nxp.com>
To: Fan Zhang <roy.fan.zhang@intel.com>, "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] [PATCH] crypto/mvsam: fix missed code change for mvsam
Date: Fri, 5 Jul 2019 13:28:15 +0000 [thread overview]
Message-ID: <VE1PR04MB6639678BF55C0BDDDB854447E6F50@VE1PR04MB6639.eurprd04.prod.outlook.com> (raw)
In-Reply-To: <20190705132349.7245-1-roy.fan.zhang@intel.com>
Hi Fan,
>
> This patch fixes the missed "uint8_t *" to "const uint8_t *" xform
> key data type change for mvsam driver.
>
> Fixes: f3390532cf6a ("cryptodev: make xform key pointer constant")
>
> Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
> ---
> drivers/crypto/mvsam/rte_mrvl_pmd.c | 44
> ++++++++++++++++++++++++++++++---
> drivers/crypto/mvsam/rte_mrvl_pmd_ops.c | 9 +++++++
> 2 files changed, 49 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/crypto/mvsam/rte_mrvl_pmd.c
> b/drivers/crypto/mvsam/rte_mrvl_pmd.c
> index c2ae82a26..65e4769f2 100644
> --- a/drivers/crypto/mvsam/rte_mrvl_pmd.c
> +++ b/drivers/crypto/mvsam/rte_mrvl_pmd.c
> @@ -222,6 +222,8 @@ static int
> mrvl_crypto_set_cipher_session_parameters(struct mrvl_crypto_session *sess,
> const struct rte_crypto_sym_xform *cipher_xform)
> {
> + uint8_t *cipher_key;
> +
> /* Make sure we've got proper struct */
> if (cipher_xform->type != RTE_CRYPTO_SYM_XFORM_CIPHER) {
> MRVL_LOG(ERR, "Wrong xform struct provided!");
> @@ -256,8 +258,17 @@ mrvl_crypto_set_cipher_session_parameters(struct
> mrvl_crypto_session *sess,
> return -EINVAL;
> }
>
> + cipher_key = malloc(cipher_xform->cipher.key.length);
> + if (cipher_key == NULL) {
> + MRVL_LOG(ERR, "Insufficient memory!");
> + return -ENOMEM;
> + }
> +
> + memcpy(cipher_key, cipher_xform->cipher.key,
> + cipher_xform->cipher.key.length);
> +
> sess->sam_sess_params.cipher_key_len = cipher_xform-
> >cipher.key.length;
> - sess->sam_sess_params.cipher_key = cipher_xform->cipher.key.data;
> + sess->sam_sess_params.cipher_key = cipher_key;
>
> return 0;
> }
> @@ -273,6 +284,8 @@ static int
> mrvl_crypto_set_auth_session_parameters(struct mrvl_crypto_session *sess,
> const struct rte_crypto_sym_xform *auth_xform)
> {
> + uint8_t *auth_key = NULL;
> +
> /* Make sure we've got proper struct */
> if (auth_xform->type != RTE_CRYPTO_SYM_XFORM_AUTH) {
> MRVL_LOG(ERR, "Wrong xform struct provided!");
> @@ -293,9 +306,21 @@ mrvl_crypto_set_auth_session_parameters(struct
> mrvl_crypto_session *sess,
> auth_map[auth_xform->auth.algo].auth_alg;
> sess->sam_sess_params.u.basic.auth_icv_len =
> auth_xform->auth.digest_length;
> +
> + if (auth_xform->auth.key.length > 0) {
> + auth_key = malloc(auth_xform->auth.key.length);
> + if (auth_key == NULL) {
> + MRVL_LOG(ERR, "Not enough memory!");
> + return -EINVAL;
> + }
> +
> + memcpy(auth_key, auth_xform->auth.key.data,
> + auth_xform->auth.key.length);
> + }
> +
> +
Extra blank spaces.
> /* auth_key must be NULL if auth algorithm does not use HMAC */
> - sess->sam_sess_params.auth_key = auth_xform->auth.key.length ?
> - auth_xform->auth.key.data : NULL;
> + sess->sam_sess_params.auth_key = auth_key;
> sess->sam_sess_params.auth_key_len = auth_xform->auth.key.length;
>
> return 0;
> @@ -312,6 +337,8 @@ static int
> mrvl_crypto_set_aead_session_parameters(struct mrvl_crypto_session *sess,
> const struct rte_crypto_sym_xform *aead_xform)
> {
> + uint8_t *aead_key;
> +
> /* Make sure we've got proper struct */
> if (aead_xform->type != RTE_CRYPTO_SYM_XFORM_AEAD) {
> MRVL_LOG(ERR, "Wrong xform struct provided!");
> @@ -344,7 +371,16 @@ mrvl_crypto_set_aead_session_parameters(struct
> mrvl_crypto_session *sess,
> return -EINVAL;
> }
>
> - sess->sam_sess_params.cipher_key = aead_xform->aead.key.data;
> + aead_key = malloc(aead_xform->aead.key.length);
> + if (aead_key == NULL) {
> + MRVL_LOG(ERR, "Insufficient memory!");
> + return -ENOMEM;
> + }
> +
> + memcpy(aead_key, aead_xform->aead.key.data,
> + aead_xform->aead.key.length);
> +
> + sess->sam_sess_params.cipher_key = aead_key;
> sess->sam_sess_params.cipher_key_len = aead_xform-
> >aead.key.length;
>
> if (sess->sam_sess_params.cipher_mode == SAM_CIPHER_GCM)
> diff --git a/drivers/crypto/mvsam/rte_mrvl_pmd_ops.c
> b/drivers/crypto/mvsam/rte_mrvl_pmd_ops.c
> index f6bf2cd4c..b334c7694 100644
> --- a/drivers/crypto/mvsam/rte_mrvl_pmd_ops.c
> +++ b/drivers/crypto/mvsam/rte_mrvl_pmd_ops.c
> @@ -751,6 +751,8 @@
> mrvl_crypto_pmd_sym_session_configure(__rte_unused struct rte_cryptodev
> *dev,
> return -ENOMEM;
> }
>
> + memset(sess_private_data, 0, sizeof(struct mrvl_crypto_session));
> +
> ret = mrvl_crypto_set_session_parameters(sess_private_data, xform);
> if (ret != 0) {
> MRVL_LOG(ERR, "Failed to configure session parameters!");
> @@ -769,6 +771,13 @@
> mrvl_crypto_pmd_sym_session_configure(__rte_unused struct rte_cryptodev
> *dev,
> return -EIO;
> }
>
> + /* free the keys memory allocated for session creation */
> + if (mrvl_sess->sam_sess_params.cipher_key != NULL)
> + free(mrvl_sess->sam_sess_params.cipher_key);
> + if (mrvl_sess->sam_sess_params.auth_key != NULL)
> + free(mrvl_sess->sam_sess_params.auth_key);
> +
> +
Extra blank and missing the aead key free.
> return 0;
> }
>
> --
> 2.14.5
next prev parent reply other threads:[~2019-07-05 13:28 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-05 13:23 Fan Zhang
2019-07-05 13:28 ` Akhil Goyal [this message]
2019-07-05 13:57 ` Zhang, Roy Fan
2019-07-05 13:31 ` Akhil Goyal
2019-07-07 5:41 ` Liron Himi
2019-07-08 10:26 ` Thomas Monjalon
2019-07-08 10:31 ` Akhil Goyal
2019-07-08 15:22 ` Thomas Monjalon
2019-07-12 6:31 ` Akhil Goyal
2019-07-15 12:45 ` Akhil Goyal
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=VE1PR04MB6639678BF55C0BDDDB854447E6F50@VE1PR04MB6639.eurprd04.prod.outlook.com \
--to=akhil.goyal@nxp.com \
--cc=dev@dpdk.org \
--cc=roy.fan.zhang@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).