NVME-GEN-DHCHAP-K(1)

πŸ“¦ version 3.2, in arch rolling

🌸 NVME-GEN-DHCHAP-KEY β€” bestie, it's giving deprecated πŸ’…

okay so this is the nvme-gen-dhchap-key page from the NVMe Manual, and it is literally the shortest little glow-up of a manpage β€” but every crumb matters, so buckle up πŸŽ€


✨ SYNOPSIS ✨

nvme [<global-options>] gen-dhchap-key [--hmac=<hmac-id> | -m <hmac-id>]
                        [--secret=<secret> | -s <secret>]
                        [--key-length=<len> | -l <len>]
                        [--nqn=<host-nqn> | -n <host-nqn>]

like yes, that's the whole vibe. four options, two ways to write each, no notes 🫢


πŸ¦‹ DESCRIPTION πŸ¦‹

So nvme-gen-dhchap-key generates a host DH-HMAC-CHAP secret β€” but ngl, it's deprecated, and it's basically a nepo-baby alias for nvme-keys-gen-kxchap-secret(1). It's still here because scripts written against nvme-cli versions older than 3.0 still need it to work, and we are nothing if not loyal πŸ’–

It just forwards to that other command β€” but there are three lil' differences from nvme-cli 2.x, and you need to know them:

  • --nqn/-n is still accepted, but it's completely ignored β€” you'll get a warning about it. it's giving "invited to the party but not on the guest list" πŸ™ˆ
  • --secret/-s goes straight into the DHHC-1 string as it stands, whereas 2.x put the key transformed from it. so whenever --hmac is non-zero, the output is gonna be different. lowkey important, highkey a plot twist 😭
  • --secret/-s with an odd number of hexadecimal characters is rejected now. 2.x used to pad that trailing one with a zero and emit a secret that was never actually given β€” which is so not it. we do not manifest keys out of thin air anymore, periodt πŸ”₯
New scripts should use nvme keys gen-kxchap-secret instead. This alias prints a deprecation warning on stderr and may be removed in a future release. so don't get too attached, bestie πŸ’€

Also, for the full option reference, go read nvme-keys-gen-kxchap-secret(1) β€” that's where the real main character energy lives πŸ‘‘


🌈 GLOBAL OPTIONS 🌈

These ones are defined at the top-level nvme command, so they work for this subcommand too. group-chat-wide settings, iykyk πŸ’…

  • --dry-run β€” prints the command that would be executed, but doesn't actually run it. manifesting without committing ✨
  • --no-ioctl-probing β€” disables probing for 64-bit IOCTL support.
  • --no-retries β€” disables retry logic on transient errors. one shot, no do-overs 😀
  • -o <fmt>, --output-format=<fmt> β€” sets the reporting format to normal, tabular, json, or binary. only one output format at a time, pick a lane bestie πŸŽ€
  • --output-format-version=<version> β€” picks the output format version. Version 1 uses the original field naming, while version 2 (default) gives you more consistent, script-friendly field names. any other version gets rejected β€” we don't do that here 🚫
  • --quiet β€” suppresses informational messages. errors are still reported, and --quiet cancels any --verbose for the library log level. shhh 🀫
  • --set-options=<key=value>[,<key=value>...] β€” sets libnvme library options for this invocation. supported keys are force-4k, mi-probe-enabled, test-base-dir and test-sysfs-dir. very customizable, very demure πŸ’œ
  • --timeout=<ms> β€” sets the timeout for the command in milliseconds. infinite or -1 waits with no time limit (0xffffffff). no clock-watching, iconic ⏳
  • -v, --verbose β€” increases the level of detail in the output. can be specified multiple times to go even more verbose. the way that stacks 🧚

These options can also be set as machine-wide defaults in nvme-cli.conf(5). and a command-line flag always overrides the file β€” flags stay winning, no cap πŸ‘‘


πŸ“ EXAMPLES πŸ“

No Examples

that's it. that's the section. she's empty but she's honest 😭


πŸ‘‘ NVME πŸ‘‘

Part of the nvme-user suite. welcome to the family tree, babe 🌸


⭐ SEE ALSO ⭐


heads up: this whole page is a deprecated alias, so if you're writing something new, pivot to nvme keys gen-kxchap-secret. old scripts get to stay, but new ones deserve better πŸ’–

and that's the tea, bestie πŸŽ€ this page is from the NVMe manual, dated 10/30/2026 β€” screenshot it, cite it, live by it. mwah πŸ’‹

πŸ“¦ where this page comes from