libnvme(9) API Manual libnvme(9)

# [NAME](#NAME)

struct nvmf\_auth\_kxchap\_reply - KX-HMAC-CHAP\_Reply message, host to controller

# [SYNOPSIS](#SYNOPSIS)

struct nvmf\_auth\_kxchap\_reply {  
**\_\_u8 auth\_type;**  
**\_\_u8 auth\_id;**  
**\_\_u16 rsvd2;**  
**\_\_le16 t\_id;**  
**\_\_u8 hl;**  
**\_\_u8 rsvd7;**  
**\_\_u8 cvalid;**  
**\_\_u8 rsvd9;**  
**\_\_le16 kxvlen;**  
**\_\_le32 seqnum;**  
**\_\_u8 rval\_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

[cvalid](#cvalid)

Challenge Valid: 01h if the Challenge Value in *rval\_cval\_kxv* is valid (bidirectional authentication requested), 00h otherwise.

[rsvd9](#rsvd9)

Reserved

[kxvlen](#kxvlen)

KX Value Length: length in bytes of the KX Value carried in *rval\_cval\_kxv*, cleared to 0h if no key exchange is performed.

[seqnum](#seqnum)

Sequence Number (S2)

[rval\_cval\_kxv](#rval_cval_kxv)

Response Value (R1, *hl* bytes), followed by the Challenge Value (C2, *hl* bytes, cleared to 0h if *cvalid* is 00h), followed by the KX Value (KXh, *kxvlen* bytes). The KX Value is absent if *kxvlen* is cleared to 0h.

struct nvmf\_auth\_kxchap\_reply October 2026

---

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