nvme_auth_a...ed_challenge(9)
πΈ NAME πΈ
nvme_auth_augmented_challenge β compute the augmented DH-HMAC-CHAP challenge. Okay so this page is from the Kernel API Manual, page id nvme_auth_a...ed_challenge(9), and we're about to make the augmented challenge make sense, bestie π
β¨ SYNOPSIS β¨
int nvme_auth_augmented_challenge (u8 hmac_id , const u8 *skey , size_t
skey_len , const u8 *challenge , u8 *aug , size_t hlen );
π ARGUMENTS π
hmac_idβ hash algorithm identifier, periodt. This is the ID that says which hash algorithm we're working with.skeyβ session key. Main character energy, honestly.skey_lenβ length ofskey.challengeβ challenge value. The challenge in question πaugβ output buffer for the augmented challenge. This is where the glow-up goes.hlenβ hash output length (length ofchallengeandaug).
π¦ DESCRIPTION π¦
NVMe base specification 8.3.5.5.4: the augmented challenge is computed applying the HMAC function using the hash function H selected by the HashID parameter ... with the hash of the ephemeral DH key ... as HMAC key to the challenge C (i.e., Ca = HMAC(H(g^xy mod p), C)). Literally the math is the moment π₯
As the session key skey is already H(g^xy mod p) per section 8.3.5.5.9, use it directly as the HMAC key without additional hashing. Slay β no extra hashing arc needed π
π RETURN π
0 on success, negative errno on failure. That's the whole vibe check: zero means we ate, negative errno means something went wrong π
π SEE ALSO π
- Kernel file:
./drivers/nvme/common/auth.c nvme_auth_gen_session_key(9)nvme_auth_generate_psk(9)nvme_auth_generate_digest(9)nvme_auth_derive_tls_psk(9)
Go read these next, bestie β they're all in the same friend group π«Ά
okay bye bestie π«Ά this page lives at ./drivers/nvme/common, dated October 2026, and it's nvme_auth_a...ed_challenge(9) in the Kernel API Manual β mwah π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms