load-tester: Support initiating XAuth authentication
authorMartin Willi <martin@revosec.ch>
Tue, 27 Jan 2015 09:40:39 +0000 (10:40 +0100)
committerMartin Willi <martin@revosec.ch>
Fri, 20 Feb 2015 13:04:23 +0000 (14:04 +0100)
As with other configuration backends, XAuth is activated with a two round
client authentication using pubkey and xauth. In load-tester, this is configured
with initiator_auth=pubkey|xauth.

Fixes #835.

src/libcharon/plugins/load_tester/load_tester_config.c

index 65575c6..8a50063 100644 (file)
@@ -394,6 +394,28 @@ static void generate_auth_cfg(private_load_tester_config_t *this, char *str,
                                }
                        }
                }
+               else if (strpfx(str, "xauth"))
+               {       /* XAuth, use a username */
+                       class = AUTH_CLASS_XAUTH;
+                       if (*(str + strlen("xauth")) == '-')
+                       {
+                               auth->add(auth, AUTH_RULE_XAUTH_BACKEND, str + strlen("xauth-"));
+                       }
+                       if (!id)
+                       {
+                               if (local && num)
+                               {
+                                       snprintf(buf, sizeof(buf), "cli-%.6d-%.2d", num, rnd);
+                                       id = identification_create_from_string(buf);
+                               }
+                               else
+                               {
+                                       id = identification_create_from_encoding(ID_ANY, chunk_empty);
+                               }
+                       }
+                       /* additionally set the ID as XAuth identity */
+                       auth->add(auth, AUTH_RULE_XAUTH_IDENTITY, id->clone(id));
+               }
                else
                {
                        if (!streq(str, "pubkey"))