NVME-KEYS-CHECK-K(1)
π NVME-KEYS-CHECK-K(1) β like, the NVMe Manual, bestie β¨
okay so this is a page from the NVMe Manual and it's all about nvme-keys-check-kxchap-secret. yes the page title says NVME-KEYS-CHECK-K(1) and the actual command is nvme-keys-check-kxchap-secret β that's not a typo on my part, that's just how the page is named, don't come for me π
πΈ NAME πΈ
nvme-keys-check-kxchap-secret β checks a host KX-HMAC-CHAP secret, literally that's the whole job π
β¨ SYNOPSIS β¨
nvme [<global-options>] keys check-kxchap-secret [--keydata=<secret> | -d <secret>]
[--keyring=<name> | -k <name>]
[--keytype=<type> | -t <type>]
[--identity=<identity> | -i <identity>]
π¦ DESCRIPTION π¦
So what this does: it checks whether the string you hand it is a valid KX-HMAC-CHAP host secret, of the form DHHC-1:00:ia6zGodOr4SEG0Zzaw398rpY0wqipUWj4jWjUh4HWUz6aQ2n: π and then it prints the hash algorithm it records, the secret length, and the CRC. that's the trio, slay.
If --keydata is not given, the secret gets read from stdin β which also means you can check a secret that's chillin' in a file, like so: nvme keys check-kxchap-secret < keyfile. lowkey convenient ngl.
If --identity is given, the specified keyring also gets checked for a secret already stored under that identity (as inserted by nvme-keys-import(1)), and the result is reported: not loaded, loaded and matching, or loaded but different. And hear me when I say this: this command never modifies the keyring. not once. it's a look-don't-touch situation π
β οΈ looking up a secret requires thekxchapkeyring key type, and that is not yet provided by any released Linux kernel β so this part is very much a "coming soon" vibe. peepnvme-keys-import(1)for the details, iykyk π
π OPTIONS π
-d <secret>,--keydata=<secret>β the secret you want checked. if you don't give it, the secret gets read fromstdinπ-k <name>,--keyring=<name>β the name of the keyring to check for an already-loaded secret. default is.nvmeπ-t <type>,--keytype=<type>β the key type of the secret to look up. default iskxchapβ¨-i <identity>,--identity=<identity>β the identity to look up in the keyring to check if the secret is already loaded. if you skip this one, only the secret format gets validated, that's it π
π GLOBAL OPTIONS π
These ones live up at the top-level nvme command and yes, they're available to this subcommand too. group effort π«Ά
--dry-runβ prints the command that would be executed, but does not actually execute it. all vibes, zero consequences π--no-ioctl-probingβ disables probing for 64-bit IOCTL support π§--no-retriesβ disables the retry logic on transient errors. no second chances, periodt β-o <fmt>,--output-format=<fmt>β sets the reporting format tonormal,tabular,'json, orbinary. only one output format at a time, don't get greedy π (yes, that quote mark in'jsonis in the original, copy it exactly, no notes π)--output-format-version=<version>β picks the output format version. version1uses the original field naming, while version2(the default) gives you more consistent and script-friendly field names. any other versions get rejected, sorry babe π«--quietβ suppresses informational messages. errors are still reported, and heads up:--quietcancels any--verbosefor the library log level π€«--set-options=<key=value>[,<key=value>...]β sets libnvme library options for this invocation. supported keys areforce-4k,mi-probe-enabled,test-base-dirandtest-sysfs-dirπ οΈ--timeout=<ms>β sets the timeout for the command in milliseconds.infiniteor-1waits without a time limit (0xffffffff). she waits forever if you ask nicely β³-v,--verboseβ increases the level of detail in the output. may be specified multiple times to crank the verbosity even higher π₯
π‘ these options can also be set as machine-wide defaults in nvme-cli.conf(5). a command-line flag always overrides the file β flag wins, no cap π
π EXAMPLES π
No Examples π (yeah. that's genuinely what it says. we get nothing. iconic behavior honestly)
π NVME π
Part of the nvme-user suite π
and that's the whole page bestie!! π¦ source/version is NVMe, dated 10/30/2026 β go forth and check those KX-HMAC-CHAP secrets, you absolute main character πβ¨π
π¦ 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