libnvme(9) API Manual libnvme(9)

# [NAME](#NAME)

struct nvmf\_auth\_kxchap\_challenge - KX-HMAC-CHAP\_Challenge message, controller to host

# [SYNOPSIS](#SYNOPSIS)

struct nvmf\_auth\_kxchap\_challenge {  
**\_\_u8 auth\_type;**  
**\_\_u8 auth\_id;**  
**\_\_u16 rsvd2;**  
**\_\_le16 t\_id;**  
**\_\_u8 hl;**  
**\_\_u8 rsvd7;**  
**\_\_u8 hashid;**  
**\_\_u8 kxgid;**  
**\_\_le16 kxvlen;**  
**\_\_le32 seqnum;**  
**\_\_u8 cval\_kxv\[];**  
};

# [Members](#Members)

[auth\_type](#auth_type)

Authentication Type, see *enum nvmf\_auth\_protocol\_id*

[auth\_id](#auth_id)

Authentication Identifier, see *enum nvmf\_auth\_kxchap\_id*

[rsvd2](#rsvd2)

Reserved

[t\_id](#t_id)

Transaction Identifier

[hl](#hl)

Hash Length: length in bytes of the selected hash function

[rsvd7](#rsvd7)

Reserved

[hashid](#hashid)

Hash Identifier, see *enum libnvmf\_hmac\_alg*

[kxgid](#kxgid)

Key Exchange Group Identifier, see *enum nvmf\_auth\_kxgid*. Cleared to 0h if no key exchange is performed.

[kxvlen](#kxvlen)

KX Value Length: length in bytes of the KX Value carried in *cval\_kxv*, cleared to 0h if *kxgid* is cleared to 0h.

[seqnum](#seqnum)

Sequence Number (S1)

[cval\_kxv](#cval_kxv)

Challenge Value (C1, *hl* bytes) followed by the KX Value (KXc, *kxvlen* bytes). The KX Value is absent if *kxvlen* is cleared to 0h.

struct nvmf\_auth\_kxchap\_challenge October 2026

---

Document: nvmf_auth_kxchap_challenge-libnvme3(2) from nvme-cli 3.2-r0 (Chainguard OS)
Source: https://github.com/linux-nvme/nvme-cli
