* [PATCH v2] nvme-auth: Don't propose NVME_AUTH_DHGROUP_NULL with SC_C
@ 2026-03-09 4:27 alistair23
2026-03-09 11:32 ` Hannes Reinecke
2026-03-09 15:01 ` Keith Busch
0 siblings, 2 replies; 3+ messages in thread
From: alistair23 @ 2026-03-09 4:27 UTC (permalink / raw)
To: hare, kbusch, axboe, hch, sagi, linux-nvme, linux-kernel
Cc: alistair23, Alistair Francis, Kamaljit Singh
From: Alistair Francis <alistair.francis@wdc.com>
Section 8.3.4.5.2 of the NVMe 2.1 base spec states that
"""
The 00h identifier shall not be proposed in an AUTH_Negotiate message
that requests secure channel concatenation (i.e., with the SC_C field
set to a non-zero value).
"""
We need to ensure that we don't set the NVME_AUTH_DHGROUP_NULL idlist if
SC_C is set.
Signed-off-by: Kamaljit Singh <kamaljit.singh@opensource.wdc.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
---
v2:
- Use a macro for Diffie-Hellman Group Identifier List Offset
- Use a pointer for data->auth_protocol[0].dhchap.idlist
drivers/nvme/host/auth.c | 23 +++++++++++++----------
include/linux/nvme.h | 2 ++
2 files changed, 15 insertions(+), 10 deletions(-)
diff --git a/drivers/nvme/host/auth.c b/drivers/nvme/host/auth.c
index 405e7c03b1cf..4e8e4ddd6c8d 100644
--- a/drivers/nvme/host/auth.c
+++ b/drivers/nvme/host/auth.c
@@ -125,6 +125,8 @@ static int nvme_auth_set_dhchap_negotiate_data(struct nvme_ctrl *ctrl,
{
struct nvmf_auth_dhchap_negotiate_data *data = chap->buf;
size_t size = sizeof(*data) + sizeof(union nvmf_auth_protocol);
+ u8 dh_list_offset = DH_GID_LIST_OFFSET;
+ u8 *idlist = data->auth_protocol[0].dhchap.idlist;
if (size > CHAP_BUF_SIZE) {
chap->status = NVME_AUTH_DHCHAP_FAILURE_INCORRECT_PAYLOAD;
@@ -144,16 +146,17 @@ static int nvme_auth_set_dhchap_negotiate_data(struct nvme_ctrl *ctrl,
data->napd = 1;
data->auth_protocol[0].dhchap.authid = NVME_AUTH_DHCHAP_AUTH_ID;
data->auth_protocol[0].dhchap.halen = 3;
- data->auth_protocol[0].dhchap.dhlen = 6;
- data->auth_protocol[0].dhchap.idlist[0] = NVME_AUTH_HASH_SHA256;
- data->auth_protocol[0].dhchap.idlist[1] = NVME_AUTH_HASH_SHA384;
- data->auth_protocol[0].dhchap.idlist[2] = NVME_AUTH_HASH_SHA512;
- data->auth_protocol[0].dhchap.idlist[30] = NVME_AUTH_DHGROUP_NULL;
- data->auth_protocol[0].dhchap.idlist[31] = NVME_AUTH_DHGROUP_2048;
- data->auth_protocol[0].dhchap.idlist[32] = NVME_AUTH_DHGROUP_3072;
- data->auth_protocol[0].dhchap.idlist[33] = NVME_AUTH_DHGROUP_4096;
- data->auth_protocol[0].dhchap.idlist[34] = NVME_AUTH_DHGROUP_6144;
- data->auth_protocol[0].dhchap.idlist[35] = NVME_AUTH_DHGROUP_8192;
+ idlist[0] = NVME_AUTH_HASH_SHA256;
+ idlist[1] = NVME_AUTH_HASH_SHA384;
+ idlist[2] = NVME_AUTH_HASH_SHA512;
+ if (chap->sc_c == NVME_AUTH_SECP_NOSC)
+ idlist[dh_list_offset++] = NVME_AUTH_DHGROUP_NULL;
+ idlist[dh_list_offset++] = NVME_AUTH_DHGROUP_2048;
+ idlist[dh_list_offset++] = NVME_AUTH_DHGROUP_3072;
+ idlist[dh_list_offset++] = NVME_AUTH_DHGROUP_4096;
+ idlist[dh_list_offset++] = NVME_AUTH_DHGROUP_6144;
+ idlist[dh_list_offset++] = NVME_AUTH_DHGROUP_8192;
+ data->auth_protocol[0].dhchap.dhlen = dh_list_offset - DH_GID_LIST_OFFSET;
chap->sc_c = data->sc_c;
diff --git a/include/linux/nvme.h b/include/linux/nvme.h
index 655d194f8e72..bd540ef33b63 100644
--- a/include/linux/nvme.h
+++ b/include/linux/nvme.h
@@ -2332,4 +2332,6 @@ enum nvme_pr_change_ptpl {
#define NVME_PR_IGNORE_KEY (1 << 3)
+#define DH_GID_LIST_OFFSET 30
+
#endif /* _LINUX_NVME_H */
--
2.53.0
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH v2] nvme-auth: Don't propose NVME_AUTH_DHGROUP_NULL with SC_C
2026-03-09 4:27 [PATCH v2] nvme-auth: Don't propose NVME_AUTH_DHGROUP_NULL with SC_C alistair23
@ 2026-03-09 11:32 ` Hannes Reinecke
2026-03-09 15:01 ` Keith Busch
1 sibling, 0 replies; 3+ messages in thread
From: Hannes Reinecke @ 2026-03-09 11:32 UTC (permalink / raw)
To: alistair23, kbusch, axboe, hch, sagi, linux-nvme, linux-kernel
Cc: Alistair Francis, Kamaljit Singh
On 3/9/26 05:27, alistair23@gmail.com wrote:
> From: Alistair Francis <alistair.francis@wdc.com>
>
> Section 8.3.4.5.2 of the NVMe 2.1 base spec states that
>
> """
> The 00h identifier shall not be proposed in an AUTH_Negotiate message
> that requests secure channel concatenation (i.e., with the SC_C field
> set to a non-zero value).
> """
>
> We need to ensure that we don't set the NVME_AUTH_DHGROUP_NULL idlist if
> SC_C is set.
>
> Signed-off-by: Kamaljit Singh <kamaljit.singh@opensource.wdc.com>
> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
> ---
> v2:
> - Use a macro for Diffie-Hellman Group Identifier List Offset
> - Use a pointer for data->auth_protocol[0].dhchap.idlist
>
> drivers/nvme/host/auth.c | 23 +++++++++++++----------
> include/linux/nvme.h | 2 ++
> 2 files changed, 15 insertions(+), 10 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] 3+ messages in thread
* Re: [PATCH v2] nvme-auth: Don't propose NVME_AUTH_DHGROUP_NULL with SC_C
2026-03-09 4:27 [PATCH v2] nvme-auth: Don't propose NVME_AUTH_DHGROUP_NULL with SC_C alistair23
2026-03-09 11:32 ` Hannes Reinecke
@ 2026-03-09 15:01 ` Keith Busch
1 sibling, 0 replies; 3+ messages in thread
From: Keith Busch @ 2026-03-09 15:01 UTC (permalink / raw)
To: alistair23
Cc: hare, axboe, hch, sagi, linux-nvme, linux-kernel,
Alistair Francis, Kamaljit Singh
On Mon, Mar 09, 2026 at 02:27:33PM +1000, alistair23@gmail.com wrote:
> From: Alistair Francis <alistair.francis@wdc.com>
>
> Section 8.3.4.5.2 of the NVMe 2.1 base spec states that
>
> """
> The 00h identifier shall not be proposed in an AUTH_Negotiate message
> that requests secure channel concatenation (i.e., with the SC_C field
> set to a non-zero value).
> """
>
> We need to ensure that we don't set the NVME_AUTH_DHGROUP_NULL idlist if
> SC_C is set.
Thanks, applied.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-03-09 15:02 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-09 4:27 [PATCH v2] nvme-auth: Don't propose NVME_AUTH_DHGROUP_NULL with SC_C alistair23
2026-03-09 11:32 ` Hannes Reinecke
2026-03-09 15:01 ` Keith Busch
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox