All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Monjalon <thomas@monjalon.net>
To: Kai Ji <kai.ji@intel.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>,
	Stephen Hemminger <stephen@networkplumber.org>,
	Bruce Richardson <bruce.richardson@intel.com>,
	David Marchand <david.marchand@redhat.com>,
	stable@dpdk.org, Pablo de Lara <pablo.de.lara.guarch@intel.com>,
	Fan Zhang <fanzhang.oss@gmail.com>,
	Akhil Goyal <gakhil@marvell.com>
Subject: Re: [EXTERNAL] [dpdk-dev v1] cryptodev: introduce constant-time memory comparison
Date: Thu, 25 Sep 2025 22:47:42 +0200	[thread overview]
Message-ID: <3819475.yaVYbkx8dN@thomas> (raw)
In-Reply-To: <CO6PR18MB4484264974305D4A6B065A76D81FA@CO6PR18MB4484.namprd18.prod.outlook.com>

25/09/2025 12:33, Akhil Goyal:
> > +/**
> > + * Constant-time memory comparison for cryptographic use.
> > + * Returns 0 if the memory regions are equal, nonzero otherwise.
> > + * Runs in constant time with respect to the length to prevent timing attacks.
> > + *
> > + * @param a
> > + *   Pointer to the first memory region.
> > + * @param b
> > + *   Pointer to the second memory region.
> > + * @param n
> > + *   Number of bytes to compare.
> > + * @return
> > + *   0 if memory regions are equal, nonzero otherwise.
> > + */
> > +#define rte_consttime_memcmp(a, b, n) __extension__ ({ \
> > +	const volatile uint8_t *__pa = (const volatile uint8_t *)(a); \
> > +	const volatile uint8_t *__pb = (const volatile uint8_t *)(b); \
> > +	uint8_t __result = 0; \
> > +	for (size_t __i = 0; __i < (n); __i++) \
> > +		__result |= __pa[__i] ^ __pb[__i]; \
> > +	__result; \
> > +})
> 
> I believe this is not the right place to add this define.
> It should be somewhere in common eal if it is already not there.

Yes indeed.
cryptodev is the API for managing crypto devices.
A new memcmp function would be better hosted in libc,
and in EAL for compatibility with all supported libc.

I mean please add it in EAL, and propose it to glibc as well.





  reply	other threads:[~2025-09-25 20:47 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-25 10:22 [dpdk-dev v1] cryptodev: introduce constant-time memory comparison Kai Ji
2025-09-25 10:33 ` [EXTERNAL] " Akhil Goyal
2025-09-25 20:47   ` Thomas Monjalon [this message]
2025-09-26  7:55     ` Bruce Richardson
2025-09-26  7:58       ` Bruce Richardson
2025-09-26 12:34       ` Morten Brørup
2025-09-26  8:13     ` Konstantin Ananyev
2025-09-26  8:16       ` Konstantin Ananyev
2025-09-26 15:49 ` [dpdk-dev v2 1/2] eal: Add rte_consttime_memsq() to prevent timing attacks memcmp Kai Ji
2025-09-26 15:49   ` [dpdk-dev v2 2/2] crypto/ipsec-mb: use constant-time memory comparison Kai Ji
2025-09-26 16:02   ` [dpdk-dev v3 1/2] eal: Add rte_consttime_memneq() to prevent timing attacks memcmp Kai Ji
2025-09-26 16:02     ` [dpdk-dev v3 2/2] crypto/ipsec-mb: use constant-time memory comparison Kai Ji
2025-09-26 18:12     ` [dpdk-dev v3 1/2] eal: Add rte_consttime_memneq() to prevent timing attacks memcmp Stephen Hemminger
2025-09-26 19:17     ` Morten Brørup
2025-09-26 20:15       ` Stephen Hemminger
2025-09-29 14:50     ` [dpdk-dev v4 1/2] eal: Add mem equal and non-equal " Kai Ji
2025-09-29 14:50       ` [dpdk-dev v4 2/2] crypto/ipsec-mb: use constant-time memory comparison Kai Ji
2025-09-29 23:54         ` Stephen Hemminger
2025-09-29 16:32       ` [dpdk-dev v4 1/2] eal: Add mem equal and non-equal to prevent timing attacks memcmp Stephen Hemminger
2025-09-29 17:48       ` Morten Brørup
2025-09-29 22:48         ` Stephen Hemminger
2025-09-30  6:16           ` Morten Brørup
2025-10-01 15:32       ` [dpdk-dev v5 1/2] eal: introduce rte_timingsafe_memcmp() based on OpenBSD API Kai Ji
2025-10-01 15:32         ` [dpdk-dev v5 2/2] crypto/ipsec-mb: use constant-time memory comparison Kai Ji
2025-10-01 17:26         ` [dpdk-dev v5 1/2] eal: introduce rte_timingsafe_memcmp() based on OpenBSD API Bruce Richardson
2025-10-01 18:57         ` Morten Brørup
2025-10-02  8:09           ` Bruce Richardson
2025-10-02  8:37             ` Morten Brørup
2025-10-02  8:40               ` Bruce Richardson
2025-10-02 15:32         ` [dpdk-dev v6 1/2] eal: introduce rte_memeq_timingsafe() based on FreeBSD API Kai Ji
2025-10-02 15:32           ` [dpdk-dev v6 2/2] crypto/ipsec-mb: use constant-time memory comparison Kai Ji
2025-10-15 16:37             ` Thomas Monjalon
2025-10-03  7:35           ` [dpdk-dev v6 1/2] eal: introduce rte_memeq_timingsafe() based on FreeBSD API Morten Brørup
2025-10-10 11:22             ` Ji, Kai
2025-09-26 18:07   ` [dpdk-dev v2 1/2] eal: Add rte_consttime_memsq() to prevent timing attacks memcmp Stephen Hemminger
2025-09-29  7:39     ` Bruce Richardson
2025-09-29 23:43   ` Stephen Hemminger

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=3819475.yaVYbkx8dN@thomas \
    --to=thomas@monjalon.net \
    --cc=bruce.richardson@intel.com \
    --cc=david.marchand@redhat.com \
    --cc=dev@dpdk.org \
    --cc=fanzhang.oss@gmail.com \
    --cc=gakhil@marvell.com \
    --cc=kai.ji@intel.com \
    --cc=pablo.de.lara.guarch@intel.com \
    --cc=stable@dpdk.org \
    --cc=stephen@networkplumber.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.