]> www.infradead.org Git - users/hch/block.git/commitdiff
nvmet-auth: allow to clear DH-HMAC-CHAP keys
authorHannes Reinecke <hare@kernel.org>
Mon, 22 Jul 2024 12:02:25 +0000 (14:02 +0200)
committerKeith Busch <kbusch@kernel.org>
Thu, 22 Aug 2024 20:25:11 +0000 (13:25 -0700)
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>
drivers/nvme/target/auth.c

index 8bc3f431c77f607cad2a8e76868ab5519ec6e1c4..7897d02c681daa9ecef1bd83656693a14b877d1a 100644 (file)
@@ -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) {