public inbox for linux-nvme@lists.infradead.org
 help / color / mirror / Atom feed
* [PATCH v3] nvmet-auth: update sc_c in target host hash calculation
@ 2025-11-06 23:17 alistair23
  2025-11-07  8:30 ` Hannes Reinecke
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: alistair23 @ 2025-11-06 23:17 UTC (permalink / raw)
  To: hare, kbusch, axboe, hch, sagi, kch, linux-nvme
  Cc: linux-kernel, alistair23, Alistair Francis

From: Alistair Francis <alistair.francis@wdc.com>

Commit 7e091add9c43 "nvme-auth: update sc_c in host response" added
the sc_c variable to the dhchap queue context structure which is
appropriately set during negotiate and then used in the host response.

This breaks secure concat connections with a Linux target as the target
code wasn't updated at the same time. This patch fixes this by adding a
new sc_c variable to the host hash calculations.

Fixes: 7e091add9c43 ("nvme-auth: update sc_c in host response")
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
---
 drivers/nvme/target/auth.c             | 4 ++--
 drivers/nvme/target/fabrics-cmd-auth.c | 1 +
 drivers/nvme/target/nvmet.h            | 1 +
 3 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/nvme/target/auth.c b/drivers/nvme/target/auth.c
index 02c23998e13c..58d80fc72fda 100644
--- a/drivers/nvme/target/auth.c
+++ b/drivers/nvme/target/auth.c
@@ -298,7 +298,7 @@ int nvmet_auth_host_hash(struct nvmet_req *req, u8 *response,
 	const char *hash_name;
 	u8 *challenge = req->sq->dhchap_c1;
 	struct nvme_dhchap_key *transformed_key;
-	u8 buf[4], sc_c = ctrl->concat ? 1 : 0;
+	u8 buf[4];
 	int ret;
 
 	hash_name = nvme_auth_hmac_name(ctrl->shash_id);
@@ -367,7 +367,7 @@ int nvmet_auth_host_hash(struct nvmet_req *req, u8 *response,
 	ret = crypto_shash_update(shash, buf, 2);
 	if (ret)
 		goto out;
-	*buf = sc_c;
+	*buf = req->sq->sc_c;
 	ret = crypto_shash_update(shash, buf, 1);
 	if (ret)
 		goto out;
diff --git a/drivers/nvme/target/fabrics-cmd-auth.c b/drivers/nvme/target/fabrics-cmd-auth.c
index 5d7d913927d8..0cd722ebfa75 100644
--- a/drivers/nvme/target/fabrics-cmd-auth.c
+++ b/drivers/nvme/target/fabrics-cmd-auth.c
@@ -43,6 +43,7 @@ static u8 nvmet_auth_negotiate(struct nvmet_req *req, void *d)
 		 data->auth_protocol[0].dhchap.halen,
 		 data->auth_protocol[0].dhchap.dhlen);
 	req->sq->dhchap_tid = le16_to_cpu(data->t_id);
+	req->sq->sc_c = data->sc_c;
 	if (data->sc_c != NVME_AUTH_SECP_NOSC) {
 		if (!IS_ENABLED(CONFIG_NVME_TARGET_TCP_TLS))
 			return NVME_AUTH_DHCHAP_FAILURE_CONCAT_MISMATCH;
diff --git a/drivers/nvme/target/nvmet.h b/drivers/nvme/target/nvmet.h
index 73da823a91fb..20be2fe43307 100644
--- a/drivers/nvme/target/nvmet.h
+++ b/drivers/nvme/target/nvmet.h
@@ -159,6 +159,7 @@ struct nvmet_sq {
 	bool			authenticated;
 	struct delayed_work	auth_expired_work;
 	u16			dhchap_tid;
+	u8			sc_c;
 	u8			dhchap_status;
 	u8			dhchap_step;
 	u8			*dhchap_c1;
-- 
2.51.1



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH v3] nvmet-auth: update sc_c in target host hash calculation
  2025-11-06 23:17 [PATCH v3] nvmet-auth: update sc_c in target host hash calculation alistair23
@ 2025-11-07  8:30 ` Hannes Reinecke
  2025-11-07 11:42 ` Christoph Hellwig
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Hannes Reinecke @ 2025-11-07  8:30 UTC (permalink / raw)
  To: alistair23, kbusch, axboe, hch, sagi, kch, linux-nvme
  Cc: linux-kernel, Alistair Francis

On 11/7/25 00:17, alistair23@gmail.com wrote:
> From: Alistair Francis <alistair.francis@wdc.com>
> 
> Commit 7e091add9c43 "nvme-auth: update sc_c in host response" added
> the sc_c variable to the dhchap queue context structure which is
> appropriately set during negotiate and then used in the host response.
> 
> This breaks secure concat connections with a Linux target as the target
> code wasn't updated at the same time. This patch fixes this by adding a
> new sc_c variable to the host hash calculations.
> 
> Fixes: 7e091add9c43 ("nvme-auth: update sc_c in host response")
> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
> ---
>   drivers/nvme/target/auth.c             | 4 ++--
>   drivers/nvme/target/fabrics-cmd-auth.c | 1 +
>   drivers/nvme/target/nvmet.h            | 1 +
>   3 files changed, 4 insertions(+), 2 deletions(-)
> 
Reviewed-by: Hannes Reinecke <hare@suse.de>

Cheers,

Hannes
-- 
Dr. Hannes Reinecke                  Kernel Storage Architect
hare@suse.de                                +49 911 74053 688
SUSE Software Solutions GmbH, Frankenstr. 146, 90461 Nürnberg
HRB 36809 (AG Nürnberg), GF: I. Totev, A. McDonald, W. Knoblich


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v3] nvmet-auth: update sc_c in target host hash calculation
  2025-11-06 23:17 [PATCH v3] nvmet-auth: update sc_c in target host hash calculation alistair23
  2025-11-07  8:30 ` Hannes Reinecke
@ 2025-11-07 11:42 ` Christoph Hellwig
  2025-11-07 15:01 ` Martin George
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Christoph Hellwig @ 2025-11-07 11:42 UTC (permalink / raw)
  To: alistair23
  Cc: hare, kbusch, axboe, hch, sagi, kch, linux-nvme, linux-kernel,
	Alistair Francis

Looks good:

Reviewed-by: Christoph Hellwig <hch@lst.de>



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v3] nvmet-auth: update sc_c in target host hash calculation
  2025-11-06 23:17 [PATCH v3] nvmet-auth: update sc_c in target host hash calculation alistair23
  2025-11-07  8:30 ` Hannes Reinecke
  2025-11-07 11:42 ` Christoph Hellwig
@ 2025-11-07 15:01 ` Martin George
  2025-11-16 23:15 ` Alistair Francis
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Martin George @ 2025-11-07 15:01 UTC (permalink / raw)
  To: alistair23, hare, kbusch, axboe, hch, sagi, kch, linux-nvme
  Cc: linux-kernel, Alistair Francis

On Fri, 2025-11-07 at 09:17 +1000, alistair23@gmail.com wrote:
> From: Alistair Francis <alistair.francis@wdc.com>
> 
> Commit 7e091add9c43 "nvme-auth: update sc_c in host response" added
> the sc_c variable to the dhchap queue context structure which is
> appropriately set during negotiate and then used in the host
> response.
> 
> This breaks secure concat connections with a Linux target as the
> target
> code wasn't updated at the same time. This patch fixes this by adding
> a
> new sc_c variable to the host hash calculations.
> 
> Fixes: 7e091add9c43 ("nvme-auth: update sc_c in host response")
> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
> ---
>  drivers/nvme/target/auth.c             | 4 ++--
>  drivers/nvme/target/fabrics-cmd-auth.c | 1 +
>  drivers/nvme/target/nvmet.h            | 1 +
>  3 files changed, 4 insertions(+), 2 deletions(-)

Reviewed-by: Martin George <marting@netapp.com>

-Martin


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v3] nvmet-auth: update sc_c in target host hash calculation
  2025-11-06 23:17 [PATCH v3] nvmet-auth: update sc_c in target host hash calculation alistair23
                   ` (2 preceding siblings ...)
  2025-11-07 15:01 ` Martin George
@ 2025-11-16 23:15 ` Alistair Francis
  2025-11-16 23:53 ` Shinichiro Kawasaki
  2025-11-17 16:06 ` Keith Busch
  5 siblings, 0 replies; 7+ messages in thread
From: Alistair Francis @ 2025-11-16 23:15 UTC (permalink / raw)
  To: hare, kbusch, axboe, hch, sagi, kch, linux-nvme
  Cc: linux-kernel, Alistair Francis

On Fri, Nov 7, 2025 at 9:17 AM <alistair23@gmail.com> wrote:
>
> From: Alistair Francis <alistair.francis@wdc.com>
>
> Commit 7e091add9c43 "nvme-auth: update sc_c in host response" added
> the sc_c variable to the dhchap queue context structure which is
> appropriately set during negotiate and then used in the host response.
>
> This breaks secure concat connections with a Linux target as the target
> code wasn't updated at the same time. This patch fixes this by adding a
> new sc_c variable to the host hash calculations.
>
> Fixes: 7e091add9c43 ("nvme-auth: update sc_c in host response")
> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>

Gentle reminder that this is needed in 6.18

Alistair


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v3] nvmet-auth: update sc_c in target host hash calculation
  2025-11-06 23:17 [PATCH v3] nvmet-auth: update sc_c in target host hash calculation alistair23
                   ` (3 preceding siblings ...)
  2025-11-16 23:15 ` Alistair Francis
@ 2025-11-16 23:53 ` Shinichiro Kawasaki
  2025-11-17 16:06 ` Keith Busch
  5 siblings, 0 replies; 7+ messages in thread
From: Shinichiro Kawasaki @ 2025-11-16 23:53 UTC (permalink / raw)
  To: alistair23@gmail.com
  Cc: hare@suse.de, kbusch@kernel.org, axboe@kernel.dk, hch,
	sagi@grimberg.me, kch@nvidia.com, linux-nvme@lists.infradead.org,
	linux-kernel@vger.kernel.org, Alistair Francis

On Nov 07, 2025 / 09:17, alistair23@gmail.com wrote:
> From: Alistair Francis <alistair.francis@wdc.com>
> 
> Commit 7e091add9c43 "nvme-auth: update sc_c in host response" added
> the sc_c variable to the dhchap queue context structure which is
> appropriately set during negotiate and then used in the host response.
> 
> This breaks secure concat connections with a Linux target as the target
> code wasn't updated at the same time. This patch fixes this by adding a
> new sc_c variable to the host hash calculations.
> 
> Fixes: 7e091add9c43 ("nvme-auth: update sc_c in host response")
> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>

I confirmed that this patch avoids the blktests nvme/063 failure symptom
that I reported [*]. Thanks for the fix.

Tested-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>

[*] https://lore.kernel.org/linux-nvme/6xoxbezgcnv4bfaevi3pdpesfelia3epxiddk47azho7y5mnhr@ykmlqgnrbl3w/


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v3] nvmet-auth: update sc_c in target host hash calculation
  2025-11-06 23:17 [PATCH v3] nvmet-auth: update sc_c in target host hash calculation alistair23
                   ` (4 preceding siblings ...)
  2025-11-16 23:53 ` Shinichiro Kawasaki
@ 2025-11-17 16:06 ` Keith Busch
  5 siblings, 0 replies; 7+ messages in thread
From: Keith Busch @ 2025-11-17 16:06 UTC (permalink / raw)
  To: alistair23
  Cc: hare, axboe, hch, sagi, kch, linux-nvme, linux-kernel,
	Alistair Francis

On Fri, Nov 07, 2025 at 09:17:11AM +1000, alistair23@gmail.com wrote:
> From: Alistair Francis <alistair.francis@wdc.com>
> 
> Commit 7e091add9c43 "nvme-auth: update sc_c in host response" added
> the sc_c variable to the dhchap queue context structure which is
> appropriately set during negotiate and then used in the host response.
> 
> This breaks secure concat connections with a Linux target as the target
> code wasn't updated at the same time. This patch fixes this by adding a
> new sc_c variable to the host hash calculations.

Thanks, applied to nvme-6.18.


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2025-11-17 16:06 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-06 23:17 [PATCH v3] nvmet-auth: update sc_c in target host hash calculation alistair23
2025-11-07  8:30 ` Hannes Reinecke
2025-11-07 11:42 ` Christoph Hellwig
2025-11-07 15:01 ` Martin George
2025-11-16 23:15 ` Alistair Francis
2025-11-16 23:53 ` Shinichiro Kawasaki
2025-11-17 16:06 ` Keith Busch

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox