libnvme(9)
π libnvme(9) β struct nbft_security
okay bestie, buckle up β this is a page from the libnvme API manual (section 9), and it's all about one little struct. it's giving "niche but iconic" and honestly? we're obsessed. let's get into it β¨
π NAME π
struct nbft_security β the Security Profile Descriptor (Figure 23). yes, that's its whole government name. π
π SYNOPSIS π
here's the shape of it, bestie β every field, exactly as it lives:
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];
};
look at her. twelve fields. main character energy fr fr π
πΈ Members πΈ
every member gets its moment, no skipping, no cap:
structure_id
Structure ID. this one shall be set to 5h β that's Security, aka #NBFT_DESC_SECURITY. it's the little name tag at the door. π·οΈ
index
Security Profile Descriptor Index. this tells you which number this Security Profile Descriptor is in the Security Profile Descriptor List. like a seat number but for descriptors. π
flags
Security Profile Descriptor Flags β go peek at enum nbft_security_flags for the deets.
secret_type
Secret Type β the full tea is in enum nbft_security_secret_type.
reserved1
Reserved. nothing to see here, keep it moving bestie π
sec_chan_alg_obj
Secure Channel Algorithm Heap Object Reference. okay so: if the Security Policy List field is set to 1h, then this field points at the location and size of a heap object holding a list of secure channel algorithms. that 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. but if the Security Policy List field is cleared to 0h, then this field is reserved. conditional queen π
auth_proto_obj
Authentication Protocols Heap Object Reference. if the Authentication Policy List field is set to 1h, this field gives you 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, this field is reserved. slay π¦
cipher_suite_obj
Cipher Suite Offset Heap Object Reference. if the Cipher Suites Restricted by Policy bit is set to 1h, this field indicates the location and size of a heap object holding a list of cipher suite identifiers. that list (if there even is one) 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. iykyk π₯
kx_grp_obj
KX Groups Heap Object Reference. if the Authentication KX Groups Restricted by Policy List bit is set to 1h, 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
Secure Hash Functions Offset Heap Object Reference. if the Secure Hash Functions Policy List bit is set to 1h, 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
Secret Keypath Offset Heap Object Reference. if this field is set to a non-zero value, then it indicates the location and size of a heap object containing a URI. the type of that URI is specified in the Secret Type field. if this field is cleared to 0h, then this field is reserved. it's giving "read the room (and the Secret Type field)" π
reserved2
Reserved. that's __u8 reserved2[22]; β twenty-two bytes of pure vibes and absolutely no information. respect. π
π reminder bestie: this page is about a struct definition from the libnvme API manual, section 9. the reserved fields are reserved β don't go poking them and then act surprised.
okay that's the whole page!! and before you go β the footer energy: this is struct nbft_security from libnvme(9), dated October 2026. now go forth and describe your security profiles with confidence, you absolute icon π«Άπ¦β
π¦ where this page comes from
- arch rolling: nvme-cli 3.2-1 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms