DPDK patches and discussions
 help / color / mirror / Atom feed
From: "Kusztal, ArkadiuszX" <arkadiuszx.kusztal@intel.com>
To: Akhil Goyal <gakhil@marvell.com>, "dev@dpdk.org" <dev@dpdk.org>
Cc: "Dooley, Brian" <brian.dooley@intel.com>
Subject: RE: [EXTERNAL] [PATCH v5 2/4] cryptodev: add ec points to sm2 op
Date: Thu, 17 Oct 2024 18:54:14 +0000	[thread overview]
Message-ID: <PH0PR11MB501371973E7F59CD0C7B7A469F472@PH0PR11MB5013.namprd11.prod.outlook.com> (raw)
In-Reply-To: <CO6PR18MB4484BBDFF66D91F1B5730648D8792@CO6PR18MB4484.namprd18.prod.outlook.com>



> -----Original Message-----
> From: Akhil Goyal <gakhil@marvell.com>
> Sent: Friday, October 11, 2024 2:18 PM
> To: Kusztal, ArkadiuszX <arkadiuszx.kusztal@intel.com>; dev@dpdk.org
> Cc: Dooley, Brian <brian.dooley@intel.com>
> Subject: RE: [EXTERNAL] [PATCH v5 2/4] cryptodev: add ec points to sm2 op
> 
> > In the case when PMD cannot support the full process of the SM2, but
> > elliptic curve computation only, additional fields are needed to
> > handle such a case.
> >
> > Points C1, kP therefore were added to the SM2 crypto operation struct.
> >
> > Signed-off-by: Arkadiusz Kusztal <arkadiuszx.kusztal@intel.com>
> > ---
> >  lib/cryptodev/rte_crypto_asym.h | 53
> > ++++++++++++++++++++++++++++++------
> > -----
> >  1 file changed, 39 insertions(+), 14 deletions(-)
> >
> > diff --git a/lib/cryptodev/rte_crypto_asym.h
> > b/lib/cryptodev/rte_crypto_asym.h index 2af6a307f6..65b1a081b1 100644
> > --- a/lib/cryptodev/rte_crypto_asym.h
> > +++ b/lib/cryptodev/rte_crypto_asym.h
> > @@ -607,6 +607,8 @@ enum rte_crypto_sm2_op_capa {
> >  	/**< Random number generator supported in SM2 ops. */
> >  	RTE_CRYPTO_SM2_PH,
> >  	/**< Prehash message before crypto op. */
> > +	RTE_CRYPTO_SM2_PARTIAL,
> > +	/**< Calculate elliptic curve points only. */
> >  };
> >
> >  /**
> > @@ -634,20 +636,43 @@ struct rte_crypto_sm2_op_param {
> >  	 * will be overwritten by the PMD with the decrypted length.
> >  	 */
> >
> > -	rte_crypto_param cipher;
> > -	/**<
> > -	 * Pointer to input data
> > -	 * - to be decrypted for SM2 private decrypt.
> > -	 *
> > -	 * Pointer to output data
> > -	 * - for SM2 public encrypt.
> > -	 * In this case the underlying array should have been allocated
> > -	 * with enough memory to hold ciphertext output (at least X bytes
> > -	 * for prime field curve of N bytes and for message M bytes,
> > -	 * where X = (C1 || C2 || C3) and computed based on SM2 RFC as
> > -	 * C1 (1 + N + N), C2 = M, C3 = N. The cipher.length field will
> > -	 * be overwritten by the PMD with the encrypted length.
> > -	 */
> > +	union {
> > +		rte_crypto_param cipher;
> > +		/**<
> > +		 * Pointer to input data
> > +		 * - to be decrypted for SM2 private decrypt.
> > +		 *
> > +		 * Pointer to output data
> > +		 * - for SM2 public encrypt.
> > +		 * In this case the underlying array should have been allocated
> > +		 * with enough memory to hold ciphertext output (at least X
> > bytes
> > +		 * for prime field curve of N bytes and for message M bytes,
> > +		 * where X = (C1 || C2 || C3) and computed based on SM2 RFC
> > as
> > +		 * C1 (1 + N + N), C2 = M, C3 = N. The cipher.length field will
> > +		 * be overwritten by the PMD with the encrypted length.
> > +		 */
> > +		struct {
> > +			struct rte_crypto_ec_point C1;
> > +			/**<
> > +			 * This field is used only when PMD does not support
> the
> > full
> > +			 * process of the SM2 encryption/decryption, but the
> > elliptic
> > +			 * curve part only.
> > +			 *
> > +			 * In the case of encryption, it is an output - point C1 =
> > (x1,y1).
> > +			 * In the case of decryption, if is an input - point C1 =
> > (x1,y1)
> > +			 *
> > +			 */
> > +			struct rte_crypto_ec_point kP;
> > +			/**<
> > +			 * This field is used only when PMD does not support
> the
> > full
> > +			 * process of the SM2 encryption/decryption, but the
> > elliptic
> > +			 * curve part only.
> > +			 *
> > +			 * It is an output in the encryption case, it is a point
> > +			 * [k]P = (x2,y2)
> > +			 */
> 
> It is better to keep the variable names in lower case.
> c1 and kp should be fine.

The reason for keeping some of the letters in uppercase is that it corresponds to the general convention of naming for these types.
That's why we have dQ, qInv in RSA key for example, not dq, qinv.

> 
> > +		};
> > +	};
> >
> >  	rte_crypto_uint id;
> >  	/**< The SM2 id used by signer and verifier. */
> > --
> > 2.13.6


  reply	other threads:[~2024-10-17 18:54 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-29 18:59 [PATCH 1/3] " Arkadiusz Kusztal
2024-01-29 18:59 ` [PATCH 2/3] crypto/qat: add sm2 encryption/decryption function Arkadiusz Kusztal
2024-01-29 18:59 ` [PATCH 3/3] app/test: add test sm2 C1/Kp test cases Arkadiusz Kusztal
2024-02-01  8:07 ` [EXT] [PATCH 1/3] cryptodev: add ec points to sm2 op Akhil Goyal
2024-02-01 13:25   ` Kusztal, ArkadiuszX
2024-09-24 16:30     ` Akhil Goyal
2024-09-29 17:29 ` [PATCH v2] " Arkadiusz Kusztal
2024-10-01  7:57   ` [EXTERNAL] " Akhil Goyal
2024-10-03 14:39   ` Akhil Goyal
2024-10-07  8:29     ` Kusztal, ArkadiuszX
2024-10-08  6:28   ` [PATCH v3 1/4] cryptodev: add partial sm2 feature flag Arkadiusz Kusztal
2024-10-08  6:28     ` [PATCH v3 2/4] cryptodev: add ec points to sm2 op Arkadiusz Kusztal
2024-10-08 11:27       ` [EXTERNAL] " Akhil Goyal
2024-10-08 11:46         ` Kusztal, ArkadiuszX
2024-10-08 11:49           ` Akhil Goyal
2024-10-08  6:28     ` [PATCH v3 3/4] crypto/qat: add sm2 encryption/decryption function Arkadiusz Kusztal
2024-10-08  6:28     ` [PATCH v3 4/4] app/test: add test sm2 C1/Kp test cases Arkadiusz Kusztal
2024-10-08 15:40       ` Dooley, Brian
2024-10-08 11:46     ` [EXTERNAL] [PATCH v3 1/4] cryptodev: add partial sm2 feature flag Akhil Goyal
2024-10-08 11:48       ` Kusztal, ArkadiuszX
2024-10-08 18:14     ` [PATCH v4 0/4] add ec points to sm2 op Arkadiusz Kusztal
2024-10-08 18:14       ` [PATCH v4 1/4] cryptodev: reorder structures in asym crypto header Arkadiusz Kusztal
2024-10-08 18:14       ` [PATCH v4 2/4] cryptodev: add ec points to sm2 op Arkadiusz Kusztal
2024-10-08 20:46         ` Stephen Hemminger
2024-10-08 21:00           ` Kusztal, ArkadiuszX
2024-10-08 21:09             ` Stephen Hemminger
2024-10-08 21:29               ` Kusztal, ArkadiuszX
2024-10-09 13:01         ` [PATCH v5 0/4] " Arkadiusz Kusztal
2024-10-09 13:01           ` [PATCH v5 1/4] cryptodev: reorder structures in asym crypto header Arkadiusz Kusztal
2024-10-09 21:03             ` [EXTERNAL] " Akhil Goyal
2024-10-09 13:01           ` [PATCH v5 2/4] cryptodev: add ec points to sm2 op Arkadiusz Kusztal
2024-10-09 20:51             ` [EXTERNAL] " Akhil Goyal
2024-10-11 12:17             ` Akhil Goyal
2024-10-17 18:54               ` Kusztal, ArkadiuszX [this message]
2024-10-18 12:30                 ` Akhil Goyal
2024-10-09 13:01           ` [PATCH v5 3/4] crypto/qat: add sm2 encryption/decryption function Arkadiusz Kusztal
2024-10-09 20:49             ` [EXTERNAL] " Akhil Goyal
2024-10-10  7:49               ` Kusztal, ArkadiuszX
2024-10-09 13:01           ` [PATCH v5 4/4] app/test: add test sm2 C1/Kp test cases Arkadiusz Kusztal
2024-10-11 12:16             ` [EXTERNAL] " Akhil Goyal
2024-10-08 18:14       ` [PATCH v4 3/4] crypto/qat: add sm2 encryption/decryption function Arkadiusz Kusztal
2024-10-08 18:14       ` [PATCH v4 4/4] app/test: add test sm2 C1/Kp test cases Arkadiusz Kusztal

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=PH0PR11MB501371973E7F59CD0C7B7A469F472@PH0PR11MB5013.namprd11.prod.outlook.com \
    --to=arkadiuszx.kusztal@intel.com \
    --cc=brian.dooley@intel.com \
    --cc=dev@dpdk.org \
    --cc=gakhil@marvell.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).