* [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