@@ -499,6 +499,7 @@ static const char usage_message[] =
499499 " and a password on the second. If either the password or both\n"
500500 " the username and the password are omitted OpenVPN will prompt\n"
501501 " for them from console.\n"
502+ "--external-auth : If set, client-side credentials may be provided optionally.\n"
502503 "--pull : Accept certain config file options from the peer as if they\n"
503504 " were part of the local config file. Must be specified\n"
504505 " when connecting to a '--mode server' remote host.\n"
@@ -3004,12 +3005,12 @@ options_postprocess_verify_ce(const struct options *options,
30043005
30053006 if (sum == 0 )
30063007 {
3007- if (!options -> auth_user_pass_file )
3008+ if (!options -> auth_user_pass_file && ! options -> external_auth )
30083009 {
30093010 msg (M_USAGE , "No client-side authentication method is "
30103011 "specified. You must use either "
3011- "--cert/--key, --pkcs12, or "
3012- "--auth-user-pass" );
3012+ "--cert/--key, --pkcs12, "
3013+ "--auth-user-pass, or --external-auth " );
30133014 }
30143015 }
30153016 else if (sum != 2 )
@@ -7917,6 +7918,11 @@ add_option(struct options *options,
79177918 options -> auth_user_pass_file = "stdin" ;
79187919 }
79197920 }
7921+ else if (streq (p [0 ], "external - auth ") && !p [1 ])
7922+ {
7923+ VERIFY_PERMISSION (OPT_P_GENERAL );
7924+ options -> external_auth = true;
7925+ }
79207926 else if (streq (p [0 ], "auth - retry ") && p [1 ] && !p [2 ])
79217927 {
79227928 VERIFY_PERMISSION (OPT_P_GENERAL );
0 commit comments