libnvme(9) API Manual libnvme(9)

# [NAME](#NAME)

struct nbft\_security - Security Profile Descriptor (Figure 23)

# [SYNOPSIS](#SYNOPSIS)

struct nbft\_security {  
**\_\_u8 structure\_id;**  
**\_\_u8 index;**  
**\_\_le16 flags;**  
**\_\_u8 secret\_type;**  
**\_\_u8 reserved1;**  
**struct nbft\_heap\_obj sec\_chan\_alg\_obj;**  
**struct nbft\_heap\_obj auth\_proto\_obj;**  
**struct nbft\_heap\_obj cipher\_suite\_obj;**  
**struct nbft\_heap\_obj kx\_grp\_obj;**  
**struct nbft\_heap\_obj sec\_hash\_func\_obj;**  
**struct nbft\_heap\_obj sec\_keypath\_obj;**  
**\_\_u8 reserved2\[22];**  
};

# [Members](#Members)

[structure\_id](#structure_id)

Structure ID: This field shall be set to 5h (i.e., Security; #NBFT\_DESC\_SECURITY).

[index](#index)

Security Profile Descriptor Index: This field indicates the number of this Security Profile Descriptor in the Security Profile Descriptor List.

[flags](#flags)

Security Profile Descriptor Flags, see *enum nbft\_security\_flags*.

[secret\_type](#secret_type)

Secret Type, see *enum nbft\_security\_secret\_type*.

[reserved1](#reserved1)

Reserved.

[sec\_chan\_alg\_obj](#sec_chan_alg_obj)

Secure Channel Algorithm Heap Object Reference: If the Security Policy List field is set to 1h, then this field indicates the location and size of a heap object containing a list of secure channel algorithms. The list is an array of bytes and the values are defined in the Security Type (SECTYPE) field in the Transport Specific Address Subtype Definition in the NVMe TCP Transport Specification. If the Security Policy List field is cleared to 0h, then this field is reserved.

[auth\_proto\_obj](#auth_proto_obj)

Authentication Protocols Heap Object Reference: If the Authentication Policy List field is set to 1h, then this field indicates the location and size of a heap object containing a list of authentication protocol identifiers. If the Authentication Policy List field is cleared to 0h, then this field is reserved.

[cipher\_suite\_obj](#cipher_suite_obj)

Cipher Suite Offset Heap Object Reference: If the Cipher Suites Restricted by Policy bit is set to 1h, then this field indicates the location and size of a heap object containing a list of cipher suite identifiers. The list, if any, is an array of bytes and the values are defined in the IANA TLS Parameters Registry. If the Cipher Suites Restricted by Policy bit is cleared to 0h, then this field is reserved.

[kx\_grp\_obj](#kx_grp_obj)

KX Groups Heap Object Reference: If the Authentication KX Groups Restricted by Policy List bit is set to 1h, then this field indicates the location and size of a heap object containing a list of KX-HMAC-CHAP key exchange (KX) group identifiers. If the Authentication KX Groups Restricted by Policy List bit is cleared to 0h, then this field is reserved.

[sec\_hash\_func\_obj](#sec_hash_func_obj)

Secure Hash Functions Offset Heap Object Reference: If the Secure Hash Functions Policy List bit is set to 1h, then this field indicates the offset in bytes of a heap object containing a list of DH-HMAC-CHAP hash function identifiers. The list is an array of bytes and the values are defined in the NVM Express Base Specification. If the Secure Hash Functions Policy List bit is cleared to 0h, then this field is reserved.

[sec\_keypath\_obj](#sec_keypath_obj)

Secret Keypath Offset Heap Object Reference: if this field is set to a non-zero value, then this field indicates the location and size of a heap object containing a URI. The type of the URI is specified in the Secret Type field. If this field is cleared to 0h, then this field is reserved.

[reserved2](#reserved2)

Reserved.

struct nbft\_security September 2026

---

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