]> git.ipfire.org Git - thirdparty/strongswan.git/commitdiff
cmd: Use message if available when prompting for passwords gh201-shared-msg
authorTobias Brunner <tobias@strongswan.org>
Fri, 19 Feb 2021 09:14:45 +0000 (10:14 +0100)
committerTobias Brunner <tobias@strongswan.org>
Fri, 19 Feb 2021 13:06:33 +0000 (14:06 +0100)
src/charon-cmd/cmd/cmd_creds.c

index 8ae918208f7e21251b4a55c30e2908c522d889c9..90cb9a5f5c5aff1a771faf0efe88c9d367f0f22b 100644 (file)
@@ -69,31 +69,36 @@ CALLBACK(callback_shared, shared_key_t*,
        id_match_t *match_other)
 {
        shared_key_t *shared;
-       char *label, *pwd = NULL;
+       const char *label = msg;
+       char buf[BUF_LEN], *pwd = NULL;
 
        if (type == this->prompted)
        {
                return NULL;
        }
-       switch (type)
+       if (!label || !*label)
        {
-               case SHARED_EAP:
-                       label = "EAP password: ";
-                       break;
-               case SHARED_IKE:
-                       label = "Preshared Key: ";
-                       break;
-               case SHARED_PRIVATE_KEY_PASS:
-                       label = "Password: ";
-                       break;
-               case SHARED_PIN:
-                       label = "PIN: ";
-                       break;
-               default:
-                       return NULL;
+               switch (type)
+               {
+                       case SHARED_EAP:
+                               label = "EAP password";
+                               break;
+                       case SHARED_IKE:
+                               label = "Preshared Key";
+                               break;
+                       case SHARED_PRIVATE_KEY_PASS:
+                               label = "Password";
+                               break;
+                       case SHARED_PIN:
+                               label = "PIN";
+                               break;
+                       default:
+                               return NULL;
+               }
        }
+       snprintf(buf, sizeof(buf), "%s: ", label);
 #ifdef HAVE_GETPASS
-       pwd = getpass(label);
+       pwd = getpass(buf);
 #endif
        if (!pwd || strlen(pwd) == 0)
        {