diff options
author | Hannes Reinecke <hare@kernel.org> | 2024-07-22 14:02:25 +0200 |
---|---|---|
committer | Keith Busch <kbusch@kernel.org> | 2024-08-22 22:25:11 +0200 |
commit | bb2df18958b4287104c38541cf48c4a60c90e721 (patch) | |
tree | 6f2cfd3169632ae56de0e5adf5c13e8b40ebb673 /drivers/nvme | |
parent | nvme-sysfs: add 'tls_keyring' attribute (diff) | |
download | linux-bb2df18958b4287104c38541cf48c4a60c90e721.tar.xz linux-bb2df18958b4287104c38541cf48c4a60c90e721.zip |
nvmet-auth: allow to clear DH-HMAC-CHAP keys
As we can set DH-HMAC-CHAP keys, we should also be
able to unset them.
Signed-off-by: Hannes Reinecke <hare@kernel.org>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Keith Busch <kbusch@kernel.org>
Diffstat (limited to 'drivers/nvme')
-rw-r--r-- | drivers/nvme/target/auth.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/nvme/target/auth.c b/drivers/nvme/target/auth.c index 8bc3f431c77f..7897d02c681d 100644 --- a/drivers/nvme/target/auth.c +++ b/drivers/nvme/target/auth.c @@ -25,6 +25,18 @@ int nvmet_auth_set_key(struct nvmet_host *host, const char *secret, unsigned char key_hash; char *dhchap_secret; + if (!strlen(secret)) { + if (set_ctrl) { + kfree(host->dhchap_ctrl_secret); + host->dhchap_ctrl_secret = NULL; + host->dhchap_ctrl_key_hash = 0; + } else { + kfree(host->dhchap_secret); + host->dhchap_secret = NULL; + host->dhchap_key_hash = 0; + } + return 0; + } if (sscanf(secret, "DHHC-1:%hhd:%*s", &key_hash) != 1) return -EINVAL; if (key_hash > 3) { |