libnvme(2)

πŸ’– libnvme(2) πŸ’– β€” enum nbft_security_flags

okay bestie, sit DOWN, because we're doing libnvme(2) and it's giving API Manual energy. this is from the libnvme manual, section 2, and it's all about one adorable little enum. you're welcome πŸ’…


✨ NAME ✨

enum nbft_security_flags β€” Security Profile Descriptor Flags (Figure 22) πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

enum nbft_security_flags {
    NBFT_SECURITY_VALID ,
    NBFT_SECURITY_IN_BAND_AUTH_MASK ,
    NBFT_SECURITY_IN_BAND_AUTH_NOT_SUPPORTED ,
    NBFT_SECURITY_IN_BAND_AUTH_NOT_REQUIRED ,
    NBFT_SECURITY_IN_BAND_AUTH_REQUIRED ,
    NBFT_SECURITY_AUTH_POLICY_LIST_MASK ,
    NBFT_SECURITY_AUTH_POLICY_LIST_NOT_SUPPORTED ,
    NBFT_SECURITY_AUTH_POLICY_LIST_DRIVER ,
    NBFT_SECURITY_AUTH_POLICY_LIST_ADMIN ,
    NBFT_SECURITY_SEC_CHAN_NEG_MASK ,
    NBFT_SECURITY_SEC_CHAN_NEG_NOT_SUPPORTED ,
    NBFT_SECURITY_SEC_CHAN_NEG_NOT_REQUIRED ,
    NBFT_SECURITY_SEC_CHAN_NEG_REQUIRED ,
    NBFT_SECURITY_SEC_POLICY_LIST_MASK ,
    NBFT_SECURITY_SEC_POLICY_LIST_NOT_SUPPORTED ,
    NBFT_SECURITY_SEC_POLICY_LIST_DRIVER ,
    NBFT_SECURITY_SEC_POLICY_LIST_ADMIN ,
    NBFT_SECURITY_CIPHER_RESTRICTED ,
    NBFT_SECURITY_AUTH_DH_GROUPS_RESTRICTED ,
    NBFT_SECURITY_SEC_HASH_FUNC_POLICY_LIST

};

that's the whole squad, right there. no cap. πŸ‘‘


🌸 CONSTANTS 🌸

like, one bullet per constant, exactly like the manpage does it. no skipping, we're thorough in this house 🫢

  • NBFT_SECURITY_VALID β€” Descriptor Valid. if this is set to 1h, the descriptor is valid, slay πŸ’–. if it's cleared to 0h, it's not valid. that's it, that's the vibe.
  • NBFT_SECURITY_IN_BAND_AUTH_MASK β€” a mask to get the In-Band Authentication Required field. yes bestie, it's a mask, it masks things, iconic behaviour.
  • NBFT_SECURITY_IN_BAND_AUTH_NOT_SUPPORTED β€” in-band authentication is not supported by the NVM subsystem. it said no thanks. πŸ’€
  • NBFT_SECURITY_IN_BAND_AUTH_NOT_REQUIRED β€” in-band authentication is supported by the NVM subsystem, but it's not required. so like, optional. casual. lowkey available.
  • NBFT_SECURITY_IN_BAND_AUTH_REQUIRED β€” in-band authentication is supported by the NVM subsystem and it is required. mandatory, main character energy, no wiggle room ✨
  • NBFT_SECURITY_AUTH_POLICY_LIST_MASK β€” a mask to get the Authentication Policy List flag. this field tells you whether authentication protocols were indicated by policy from driver defaults, or by administrative configuration. iykyk.
  • NBFT_SECURITY_AUTH_POLICY_LIST_NOT_SUPPORTED β€” the Authentication Protocols Heap Object Reference field's Offset and Length are reserved. nothing to see here, move along πŸ™ˆ
  • NBFT_SECURITY_AUTH_POLICY_LIST_DRIVER β€” the Authentication Protocols Offset field and the Authentication Protocols Length field indicate a list of authentication protocols that the driver used. driver's choice, periodt.
  • NBFT_SECURITY_AUTH_POLICY_LIST_ADMIN β€” the Authentication Protocols Offset field and the Authentication Protocols Length field indicate a list of authentication protocols that were administratively set and used by the driver. admin said so, and admin ate πŸ”₯
  • NBFT_SECURITY_SEC_CHAN_NEG_MASK β€” a mask to get the Secure Channel Negotiation Required flag. this field tells you whether secure channel negotiation (e.g. TLS) is required.
  • NBFT_SECURITY_SEC_CHAN_NEG_NOT_SUPPORTED β€” secure channel negotiation is not supported by the NVM subsystem. not in this economy 😭
  • NBFT_SECURITY_SEC_CHAN_NEG_NOT_REQUIRED β€” secure channel negotiation is supported by the NVM subsystem, and it's not required. it's there if you want it, bestie πŸ’œ
  • NBFT_SECURITY_SEC_CHAN_NEG_REQUIRED β€” secure channel negotiation is supported by the NVM subsystem and it is required. locked in. no exceptions. πŸ”’
  • NBFT_SECURITY_SEC_POLICY_LIST_MASK β€” a mask to get the Security Policy List flag. this field tells you whether secure channel protocols were indicated by policy from driver defaults, or by administrative configuration.
  • NBFT_SECURITY_SEC_POLICY_LIST_NOT_SUPPORTED β€” the Offset field and Length field in the Secure Channel Algorithm Heap Object Reference field are reserved. reserved, as in, hands off 🚫
  • NBFT_SECURITY_SEC_POLICY_LIST_DRIVER β€” the Heap Object specified by the Secure Channel Algorithm Heap Object Reference field indicates a list of authentication protocols used by the driver. driver defaults, doing their thing.
  • NBFT_SECURITY_SEC_POLICY_LIST_ADMIN β€” the Heap Object specified by the Secure Channel Algorithm Heap Object Reference field indicates a list of authentication protocols that were administratively set and used by the driver. the admin really said "my list, my rules" πŸ’…
  • NBFT_SECURITY_CIPHER_RESTRICTED β€” Cipher Suites Restricted by Policy. if it's set to 1h, then the Cipher Suite Offset field and the Ciper Suite Length field indicate a list of supported cipher suites by the driver. if it's cleared to 0h, then the Cipher Suite Offset field and the Cipher Suite Length field are reserved.
  • NBFT_SECURITY_AUTH_DH_GROUPS_RESTRICTED β€” Authentication DH Groups Restricted by Policy List. if it's set to 1h, then connections shall use one of the authentication DH groups in the Authentication DH Groups List is required. if it's cleared to 0h, then no Authentication DH Groups List is indicated, and use of an authentication DH Group is not required.
  • NBFT_SECURITY_SEC_HASH_FUNC_POLICY_LIST β€” Secure Hash Functions Policy List. if it's set to 1h, then connections shall use one of the secure hash functions in the Secure Hash Functions Policy List is required. if it's cleared to 0h, then no Secure Hash Functions Policy List is indicated, and use of a secure hash function is not required.

bestie note: that's all 20 constants, every single flag, mask, and reserved field accounted for. we did not skip a single one because we don't do that here πŸ’–

and that's the whole page, fr fr. this was the enum nbft_security_flags section of the API Manual page libnvme(2) β€” signed off July 2026, and that's a wrap on our little group chat about descriptor flags. go forth and parse responsibly πŸ¦‹πŸ’…βœ¨

πŸ“¦ where this page comes from