Adding static-challenge support

pull/20/head
Soar Qin 2016-02-27 13:51:13 +08:00
parent c3e2584674
commit fe5a1c9b71
22 changed files with 471 additions and 11 deletions

View File

@ -98,7 +98,8 @@ openvpn_gui_LDADD = \
-lws2_32 \
-lcomctl32 \
-lwinhttp \
-lwtsapi32
-lwtsapi32 \
-lcrypt32
openvpn-gui-res.o: $(openvpn_gui_RESOURCES) $(srcdir)/openvpn-gui-res.h
$(RCCOMPILE) -i $< -o $@

107
misc.c
View File

@ -24,6 +24,7 @@
#endif
#include <windows.h>
#include <wincrypt.h>
#include <tchar.h>
#include <string.h>
#include <stdlib.h>
@ -33,6 +34,35 @@
#include "manage.h"
#include "misc.h"
/*
* Helper function to do base64 conversion through CryptoAPI
*/
static void
Base64Encode(const char *input, int input_len, char **output)
{
DWORD output_len;
if (!CryptBinaryToStringA((const BYTE *) input, (DWORD) input_len,
CRYPT_STRING_BASE64, NULL, &output_len) || output_len == 0)
{
*output = NULL;
return;
}
*output = (char *)malloc(output_len);
if (!CryptBinaryToStringA((const BYTE *) input, (DWORD) input_len,
CRYPT_STRING_BASE64, *output, &output_len))
{
free(*output);
*output = NULL;
return;
}
/* Trim trailing "\r\n" manually.
Actually they can be stripped by adding CRYPT_STRING_NOCRLF to dwFlags,
but Windows XP/2003 does not support this flag. */
if(output_len > 1 && (*output)[output_len - 1] == '\x0A'
&& (*output)[output_len - 2] == '\x0D')
(*output)[output_len - 2] = 0;
}
/*
* Helper function to convert UCS-2 text from a dialog item to UTF-8.
* Caller must free *str if *len != 0.
@ -125,6 +155,83 @@ out:
}
/*
* Generate a management command from double user inputs and send it
*/
BOOL
ManagementCommandFromInputBase64(connection_t *c, LPCSTR fmt, HWND hDlg,int id, int id2)
{
BOOL retval = FALSE;
LPSTR input, input2, input_b64, input2_b64, cmd;
int input_len, input2_len, cmd_len, pos;
GetDlgItemTextUtf8(hDlg, id, &input, &input_len);
GetDlgItemTextUtf8(hDlg, id2, &input2, &input2_len);
/* Escape input if needed */
for (pos = 0; pos < input_len; ++pos)
{
if (input[pos] == '\\' || input[pos] == '"')
{
LPSTR buf = realloc(input, ++input_len + 1);
if (buf == NULL)
goto out;
input = buf;
memmove(input + pos + 1, input + pos, input_len - pos + 1);
input[pos] = '\\';
pos += 1;
}
}
for (pos = 0; pos < input2_len; ++pos)
{
if (input2[pos] == '\\' || input2[pos] == '"')
{
LPSTR buf = realloc(input2, ++input2_len + 1);
if (buf == NULL)
goto out;
input2 = buf;
memmove(input2 + pos + 1, input2 + pos, input2_len - pos + 1);
input2[pos] = '\\';
pos += 1;
}
}
Base64Encode(input, input_len, &input_b64);
Base64Encode(input2, input2_len, &input2_b64);
cmd_len = input_len * 2 + input2_len * 2 + strlen(fmt);
cmd = malloc(cmd_len);
if (cmd)
{
snprintf(cmd, cmd_len, fmt, input_b64, input2_b64);
retval = ManagementCommand(c, cmd, NULL, regular);
free(cmd);
}
free(input_b64);
free(input2_b64);
out:
/* Clear buffers with potentially secret content */
if (input_len)
{
memset(input, 'x', input_len);
SetDlgItemTextA(hDlg, id, input);
free(input);
}
if (input2_len)
{
memset(input2, 'x', input2_len);
SetDlgItemTextA(hDlg, id2, input2);
free(input2);
}
return retval;
}
/*
* Ensures the given directory exists, by checking for and
* creating missing parts of the path.

1
misc.h
View File

@ -23,6 +23,7 @@
#define MISC_H
BOOL ManagementCommandFromInput(connection_t *, LPCSTR, HWND, int);
BOOL ManagementCommandFromInputBase64(connection_t *, LPCSTR, HWND, int, int);
BOOL EnsureDirExists(LPTSTR);

View File

@ -56,6 +56,11 @@
#define ID_EDT_AUTH_USER 181
#define ID_EDT_AUTH_PASS 182
/* Auth Username/Password/Challenge Dialog */
#define ID_DLG_AUTH_CHALLENGE 183
#define ID_TXT_AUTH_CHALLENGE 184
#define ID_EDT_AUTH_CHALLENGE 185
/* Proxy Settings Dialog */
#define ID_DLG_PROXY 200
#define ID_RB_PROXY_OPENVPN 210

View File

@ -52,6 +52,12 @@ extern options_t o;
const TCHAR *cfgProp = _T("conn");
typedef struct {
connection_t *c;
int challenge_echo;
char *challenge_str;
} auth_param_t;
/*
* Receive banner on connection to management interface
* Format: <BANNER>
@ -202,27 +208,41 @@ OnStateChange(connection_t *c, char *data)
/*
* DialogProc for OpenVPN username/password auth dialog windows
* DialogProc for OpenVPN username/password/challenge auth dialog windows
*/
INT_PTR CALLBACK
UserAuthDialogFunc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
connection_t *c;
auth_param_t *param;
switch (msg)
{
case WM_INITDIALOG:
/* Set connection for this dialog and show it */
c = (connection_t *) lParam;
SetProp(hwndDlg, cfgProp, (HANDLE) c);
if (c->state == resuming)
param = (auth_param_t *) lParam;
SetProp(hwndDlg, cfgProp, (HANDLE) param);
if (param->challenge_str)
{
int wchars_num = MultiByteToWideChar(CP_UTF8, 0, param->challenge_str, -1, NULL, 0);
LPWSTR wstr = (LPWSTR)malloc(sizeof(WCHAR) * wchars_num);
HWND wnd_challenge = GetDlgItem(hwndDlg, ID_EDT_AUTH_CHALLENGE);
MultiByteToWideChar(CP_UTF8, 0, param->challenge_str, -1, wstr, wchars_num);
SetDlgItemTextW(hwndDlg, ID_TXT_AUTH_CHALLENGE, wstr);
free(wstr);
/* Set/Remove style ES_PASSWORD by SetWindowLong(GWL_STYLE) does nothing,
send EM_SETPASSWORDCHAR just works. */
if(param->challenge_echo)
SendMessage(wnd_challenge, EM_SETPASSWORDCHAR, 0, 0);
}
if (param->c->state == resuming)
ForceForegroundWindow(hwndDlg);
else
SetForegroundWindow(hwndDlg);
break;
case WM_COMMAND:
c = (connection_t *) GetProp(hwndDlg, cfgProp);
param = (auth_param_t *) GetProp(hwndDlg, cfgProp);
switch (LOWORD(wParam))
{
case ID_EDT_AUTH_USER:
@ -234,14 +254,17 @@ UserAuthDialogFunc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
break;
case IDOK:
ManagementCommandFromInput(c, "username \"Auth\" \"%s\"", hwndDlg, ID_EDT_AUTH_USER);
ManagementCommandFromInput(c, "password \"Auth\" \"%s\"", hwndDlg, ID_EDT_AUTH_PASS);
ManagementCommandFromInput(param->c, "username \"Auth\" \"%s\"", hwndDlg, ID_EDT_AUTH_USER);
if (param->challenge_str)
ManagementCommandFromInputBase64(param->c, "password \"Auth\" \"SCRV1:%s:%s\"", hwndDlg, ID_EDT_AUTH_PASS, ID_EDT_AUTH_CHALLENGE);
else
ManagementCommandFromInput(param->c, "password \"Auth\" \"%s\"", hwndDlg, ID_EDT_AUTH_PASS);
EndDialog(hwndDlg, LOWORD(wParam));
return TRUE;
case IDCANCEL:
EndDialog(hwndDlg, LOWORD(wParam));
StopOpenVPN(c);
StopOpenVPN(param->c);
return TRUE;
}
break;
@ -251,6 +274,9 @@ UserAuthDialogFunc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
return TRUE;
case WM_NCDESTROY:
param = (auth_param_t *) GetProp(hwndDlg, cfgProp);
if (param->challenge_str) free(param->challenge_str);
free(param);
RemoveProp(hwndDlg, cfgProp);
break;
}
@ -317,7 +343,21 @@ OnPassword(connection_t *c, char *msg)
if (strstr(msg, "'Auth'"))
{
LocalizedDialogBoxParam(ID_DLG_AUTH, UserAuthDialogFunc, (LPARAM) c);
char* chstr = strstr(msg, "SC:");
auth_param_t *param = (auth_param_t *) malloc(sizeof(auth_param_t));
param->c = c;
if (chstr)
{
param->challenge_echo = *(chstr + 3) != '0';
param->challenge_str = strdup(chstr + 5);
LocalizedDialogBoxParam(ID_DLG_AUTH_CHALLENGE, UserAuthDialogFunc, (LPARAM) param);
}
else
{
param->challenge_echo = 0;
param->challenge_str = NULL;
LocalizedDialogBoxParam(ID_DLG_AUTH, UserAuthDialogFunc, (LPARAM) param);
}
}
else if (strstr(msg, "'Private Key'"))
{

View File

@ -49,6 +49,24 @@ BEGIN
PUSHBUTTON "Abbrechen", IDCANCEL, 90, 42, 52, 14
END
/* Auth Username/Password/Challenge Dialog */
ID_DLG_AUTH_CHALLENGE DIALOG 6, 18, 160, 96
STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | DS_CENTER | DS_SETFOREGROUND
CAPTION "OpenVPN - User Authentication"
FONT 8, "Microsoft Sans Serif"
LANGUAGE LANG_GERMAN, SUBLANG_DEFAULT
BEGIN
LTEXT "Benutzer:", 0, 6, 9, 50, 10
LTEXT "Passwort:", 0, 6, 26, 50, 10
LTEXT "Response:", 0, 6, 60, 50, 10
EDITTEXT ID_EDT_AUTH_USER, 60, 6, 94, 12, ES_AUTOHSCROLL
EDITTEXT ID_EDT_AUTH_PASS, 60, 23, 94, 12, ES_PASSWORD | ES_AUTOHSCROLL
LTEXT "", ID_TXT_AUTH_CHALLENGE, 6, 43, 148, 10
EDITTEXT ID_EDT_AUTH_CHALLENGE, 60, 57, 94, 12, ES_PASSWORD | ES_AUTOHSCROLL
PUSHBUTTON "Ok", IDOK, 20, 76, 50, 14, BS_PUSHBUTTON | WS_TABSTOP | WS_DISABLED
PUSHBUTTON "Abbrechen", IDCANCEL, 90, 76, 52, 14
END
/* Status Dialog */
ID_DLG_STATUS DIALOG 6, 18, 380, 210
STYLE WS_SIZEBOX | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_CAPTION | DS_CENTER

View File

@ -50,6 +50,24 @@ BEGIN
PUSHBUTTON "Annuller", IDCANCEL, 90, 42, 52, 14
END
/* Auth Username/Password/Challenge Dialog */
ID_DLG_AUTH_CHALLENGE DIALOG 6, 18, 160, 96
STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | DS_CENTER | DS_SETFOREGROUND
CAPTION "OpenVPN - User Authentication"
FONT 8, "Microsoft Sans Serif"
LANGUAGE LANG_DANISH, SUBLANG_DEFAULT
BEGIN
LTEXT "Brugernavn:", 0, 6, 9, 50, 10
LTEXT "Password:", 0, 6, 26, 50, 10
LTEXT "Response:", 0, 6, 60, 50, 10
EDITTEXT ID_EDT_AUTH_USER, 60, 6, 94, 12, ES_AUTOHSCROLL
EDITTEXT ID_EDT_AUTH_PASS, 60, 23, 94, 12, ES_PASSWORD | ES_AUTOHSCROLL
LTEXT "", ID_TXT_AUTH_CHALLENGE, 6, 43, 148, 10
EDITTEXT ID_EDT_AUTH_CHALLENGE, 60, 57, 94, 12, ES_PASSWORD | ES_AUTOHSCROLL
PUSHBUTTON "OK", IDOK, 20, 76, 50, 14, BS_PUSHBUTTON | WS_TABSTOP | WS_DISABLED
PUSHBUTTON "Annuller", IDCANCEL, 90, 76, 52, 14
END
/* Status Dialog */
ID_DLG_STATUS DIALOG 6, 18, 380, 210
STYLE WS_SIZEBOX | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_CAPTION | DS_CENTER

View File

@ -49,6 +49,24 @@ BEGIN
PUSHBUTTON "Cancel", IDCANCEL, 90, 42, 52, 14
END
/* Auth Username/Password/Challenge Dialog */
ID_DLG_AUTH_CHALLENGE DIALOG 6, 18, 160, 96
STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | DS_CENTER | DS_SETFOREGROUND
CAPTION "OpenVPN - User Authentication"
FONT 8, "Microsoft Sans Serif"
LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
BEGIN
LTEXT "Username:", 0, 6, 9, 50, 10
LTEXT "Password:", 0, 6, 26, 50, 10
LTEXT "Response:", 0, 6, 60, 50, 10
EDITTEXT ID_EDT_AUTH_USER, 60, 6, 94, 12, ES_AUTOHSCROLL
EDITTEXT ID_EDT_AUTH_PASS, 60, 23, 94, 12, ES_PASSWORD | ES_AUTOHSCROLL
LTEXT "", ID_TXT_AUTH_CHALLENGE, 6, 43, 148, 10
EDITTEXT ID_EDT_AUTH_CHALLENGE, 60, 57, 94, 12, ES_PASSWORD | ES_AUTOHSCROLL
PUSHBUTTON "OK", IDOK, 20, 76, 50, 14, BS_PUSHBUTTON | WS_TABSTOP | WS_DISABLED
PUSHBUTTON "Cancel", IDCANCEL, 90, 76, 52, 14
END
/* Status Dialog */
ID_DLG_STATUS DIALOG 6, 18, 380, 210
STYLE WS_SIZEBOX | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_CAPTION | DS_CENTER

View File

@ -48,6 +48,24 @@ BEGIN
PUSHBUTTON "Cancelar", IDCANCEL, 90, 42, 52, 14
END
/* Auth Username/Password/Challenge Dialog */
ID_DLG_AUTH_CHALLENGE DIALOG 6, 18, 160, 96
STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | DS_CENTER | DS_SETFOREGROUND
CAPTION "OpenVPN - User Authentication"
FONT 8, "Microsoft Sans Serif"
LANGUAGE LANG_SPANISH, SUBLANG_DEFAULT
BEGIN
LTEXT "Usuario:", 0, 6, 9, 50, 10
LTEXT "Password:", 0, 6, 26, 50, 10
LTEXT "Response:", 0, 6, 60, 50, 10
EDITTEXT ID_EDT_AUTH_USER, 60, 6, 94, 12, ES_AUTOHSCROLL
EDITTEXT ID_EDT_AUTH_PASS, 60, 23, 94, 12, ES_PASSWORD | ES_AUTOHSCROLL
LTEXT "", ID_TXT_AUTH_CHALLENGE, 6, 43, 148, 10
EDITTEXT ID_EDT_AUTH_CHALLENGE, 60, 57, 94, 12, ES_PASSWORD | ES_AUTOHSCROLL
PUSHBUTTON "OK", IDOK, 20, 76, 50, 14, BS_PUSHBUTTON | WS_TABSTOP | WS_DISABLED
PUSHBUTTON "Cancelar", IDCANCEL, 90, 76, 52, 14
END
/* Status Dialog */
ID_DLG_STATUS DIALOG 6, 18, 380, 210
STYLE WS_SIZEBOX | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_CAPTION | DS_CENTER

View File

@ -50,6 +50,24 @@ BEGIN
PUSHBUTTON "Peruuta", IDCANCEL, 90, 42, 52, 14
END
/* Auth Username/Password/Challenge Dialog */
ID_DLG_AUTH_CHALLENGE DIALOG 6, 18, 160, 96
STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | DS_CENTER | DS_SETFOREGROUND
CAPTION "OpenVPN - User Authentication"
FONT 8, "Microsoft Sans Serif"
LANGUAGE LANG_FINNISH, SUBLANG_DEFAULT
BEGIN
LTEXT "Käyttäjänimi:", 0, 6, 9, 50, 10
LTEXT "Salasana:", 0, 6, 26, 50, 10
LTEXT "Response:", 0, 6, 60, 50, 10
EDITTEXT ID_EDT_AUTH_USER, 60, 6, 94, 12, ES_AUTOHSCROLL
EDITTEXT ID_EDT_AUTH_PASS, 60, 23, 94, 12, ES_PASSWORD | ES_AUTOHSCROLL
LTEXT "", ID_TXT_AUTH_CHALLENGE, 6, 43, 148, 10
EDITTEXT ID_EDT_AUTH_CHALLENGE, 60, 57, 94, 12, ES_PASSWORD | ES_AUTOHSCROLL
PUSHBUTTON "OK", IDOK, 20, 76, 50, 14, BS_PUSHBUTTON | WS_TABSTOP | WS_DISABLED
PUSHBUTTON "Peruuta", IDCANCEL, 90, 76, 52, 14
END
/* Status Dialog */
ID_DLG_STATUS DIALOG 6, 18, 380, 210
STYLE WS_SIZEBOX | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_CAPTION | DS_CENTER

View File

@ -48,6 +48,24 @@ BEGIN
PUSHBUTTON "Annuler", IDCANCEL, 90, 42, 52, 14
END
/* Auth Username/Password/Challenge Dialog */
ID_DLG_AUTH_CHALLENGE DIALOG 6, 18, 160, 96
STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | DS_CENTER | DS_SETFOREGROUND
CAPTION "OpenVPN - User Authentication"
FONT 8, "Microsoft Sans Serif"
LANGUAGE LANG_FRENCH, SUBLANG_DEFAULT
BEGIN
LTEXT "Utilisateur:", 0, 6, 9, 50, 10
LTEXT "Mot de passe:", 0, 6, 26, 50, 10
LTEXT "Response:", 0, 6, 60, 50, 10
EDITTEXT ID_EDT_AUTH_USER, 60, 6, 94, 12, ES_AUTOHSCROLL
EDITTEXT ID_EDT_AUTH_PASS, 60, 23, 94, 12, ES_PASSWORD | ES_AUTOHSCROLL
LTEXT "", ID_TXT_AUTH_CHALLENGE, 6, 43, 148, 10
EDITTEXT ID_EDT_AUTH_CHALLENGE, 60, 57, 94, 12, ES_PASSWORD | ES_AUTOHSCROLL
PUSHBUTTON "OK", IDOK, 20, 76, 50, 14, BS_PUSHBUTTON | WS_TABSTOP | WS_DISABLED
PUSHBUTTON "Annuler", IDCANCEL, 90, 76, 52, 14
END
/* Status Dialog */
ID_DLG_STATUS DIALOG 6, 18, 380, 210
STYLE WS_SIZEBOX | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_CAPTION | DS_CENTER

View File

@ -48,6 +48,24 @@ BEGIN
PUSHBUTTON "Annulla", IDCANCEL, 90, 42, 52, 14
END
/* Auth Username/Password/Challenge Dialog */
ID_DLG_AUTH_CHALLENGE DIALOG 6, 18, 160, 96
STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | DS_CENTER | DS_SETFOREGROUND
CAPTION "OpenVPN - User Authentication"
FONT 8, "Microsoft Sans Serif"
LANGUAGE LANG_ITALIAN, SUBLANG_DEFAULT
BEGIN
LTEXT "Nome utente:", 0, 6, 9, 50, 10
LTEXT "Password:", 0, 6, 26, 50, 10
LTEXT "Response:", 0, 6, 60, 50, 10
EDITTEXT ID_EDT_AUTH_USER, 60, 6, 94, 12, ES_AUTOHSCROLL
EDITTEXT ID_EDT_AUTH_PASS, 60, 23, 94, 12, ES_PASSWORD | ES_AUTOHSCROLL
LTEXT "", ID_TXT_AUTH_CHALLENGE, 6, 43, 148, 10
EDITTEXT ID_EDT_AUTH_CHALLENGE, 60, 57, 94, 12, ES_PASSWORD | ES_AUTOHSCROLL
PUSHBUTTON "OK", IDOK, 20, 76, 50, 14, BS_PUSHBUTTON | WS_TABSTOP | WS_DISABLED
PUSHBUTTON "Annulla", IDCANCEL, 90, 76, 52, 14
END
/* Status Dialog */
ID_DLG_STATUS DIALOG 6, 18, 380, 210
STYLE WS_SIZEBOX | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_CAPTION | DS_CENTER

View File

@ -51,6 +51,24 @@ BEGIN
PUSHBUTTON "キャンセル", IDCANCEL, 90, 42, 52, 14
END
/* Auth Username/Password/Challenge Dialog */
ID_DLG_AUTH_CHALLENGE DIALOG 6, 18, 160, 96
STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | DS_CENTER | DS_SETFOREGROUND
CAPTION "OpenVPN - User Authentication"
FONT 8, "Microsoft Sans Serif"
LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
BEGIN
LTEXT "ユーザー名:", 0, 6, 9, 50, 10
LTEXT "パスワード:", 0, 6, 26, 50, 10
LTEXT "Response:", 0, 6, 60, 50, 10
EDITTEXT ID_EDT_AUTH_USER, 60, 6, 94, 12, ES_AUTOHSCROLL
EDITTEXT ID_EDT_AUTH_PASS, 60, 23, 94, 12, ES_PASSWORD | ES_AUTOHSCROLL
LTEXT "", ID_TXT_AUTH_CHALLENGE, 6, 43, 148, 10
EDITTEXT ID_EDT_AUTH_CHALLENGE, 60, 57, 94, 12, ES_PASSWORD | ES_AUTOHSCROLL
PUSHBUTTON "OK", IDOK, 20, 76, 50, 14, BS_PUSHBUTTON | WS_TABSTOP | WS_DISABLED
PUSHBUTTON "キャンセル", IDCANCEL, 90, 76, 52, 14
END
/* Status Dialog */
ID_DLG_STATUS DIALOG 6, 18, 380, 210
STYLE WS_SIZEBOX | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_CAPTION | DS_CENTER

View File

@ -48,6 +48,24 @@ BEGIN
PUSHBUTTON "Annuleren", IDCANCEL, 90, 42, 52, 14
END
/* Auth Username/Password/Challenge Dialog */
ID_DLG_AUTH_CHALLENGE DIALOG 6, 18, 160, 96
STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | DS_CENTER | DS_SETFOREGROUND
CAPTION "OpenVPN - User Authentication"
FONT 8, "Microsoft Sans Serif"
LANGUAGE LANG_DUTCH, SUBLANG_DEFAULT
BEGIN
LTEXT "Gebruikersnaam:", 0, 6, 9, 50, 10
LTEXT "Wachtwoord:", 0, 6, 26, 50, 10
LTEXT "Response:", 0, 6, 60, 50, 10
EDITTEXT ID_EDT_AUTH_USER, 60, 6, 94, 12, ES_AUTOHSCROLL
EDITTEXT ID_EDT_AUTH_PASS, 60, 23, 94, 12, ES_PASSWORD | ES_AUTOHSCROLL
LTEXT "", ID_TXT_AUTH_CHALLENGE, 6, 43, 148, 10
EDITTEXT ID_EDT_AUTH_CHALLENGE, 60, 57, 94, 12, ES_PASSWORD | ES_AUTOHSCROLL
PUSHBUTTON "OK", IDOK, 20, 76, 50, 14, BS_PUSHBUTTON | WS_TABSTOP | WS_DISABLED
PUSHBUTTON "Annuleren", IDCANCEL, 90, 76, 52, 14
END
/* Status Dialog */
ID_DLG_STATUS DIALOG 6, 18, 380, 210
STYLE WS_SIZEBOX | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_CAPTION | DS_CENTER

View File

@ -49,6 +49,24 @@ BEGIN
PUSHBUTTON "Avbryt", IDCANCEL, 90, 42, 52, 14
END
/* Auth Username/Password/Challenge Dialog */
ID_DLG_AUTH_CHALLENGE DIALOG 6, 18, 160, 96
STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | DS_CENTER | DS_SETFOREGROUND
CAPTION "OpenVPN - User Authentication"
FONT 8, "Microsoft Sans Serif"
LANGUAGE LANG_NORWEGIAN, SUBLANG_DEFAULT
BEGIN
LTEXT "Brukernavn:", 0, 6, 9, 50, 10
LTEXT "Passord:", 0, 6, 26, 50, 10
LTEXT "Response:", 0, 6, 60, 50, 10
EDITTEXT ID_EDT_AUTH_USER, 60, 6, 94, 12, ES_AUTOHSCROLL
EDITTEXT ID_EDT_AUTH_PASS, 60, 23, 94, 12, ES_PASSWORD | ES_AUTOHSCROLL
LTEXT "", ID_TXT_AUTH_CHALLENGE, 6, 43, 148, 10
EDITTEXT ID_EDT_AUTH_CHALLENGE, 60, 57, 94, 12, ES_PASSWORD | ES_AUTOHSCROLL
PUSHBUTTON "OK", IDOK, 20, 76, 50, 14, BS_PUSHBUTTON | WS_TABSTOP | WS_DISABLED
PUSHBUTTON "Avbryt", IDCANCEL, 90, 76, 52, 14
END
/* Status Dialog */
ID_DLG_STATUS DIALOG 6, 18, 380, 210
STYLE WS_SIZEBOX | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_CAPTION | DS_CENTER

View File

@ -50,6 +50,24 @@ BEGIN
PUSHBUTTON "Anuluj", IDCANCEL, 90, 42, 52, 14
END
/* Auth Username/Password/Challenge Dialog */
ID_DLG_AUTH_CHALLENGE DIALOG 6, 18, 160, 96
STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | DS_CENTER | DS_SETFOREGROUND
CAPTION "OpenVPN - User Authentication"
FONT 8, "Microsoft Sans Serif"
LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
BEGIN
LTEXT "Użytkownik:", 0, 6, 9, 50, 10
LTEXT "Hasło:", 0, 6, 26, 50, 10
LTEXT "Response:", 0, 6, 60, 50, 10
EDITTEXT ID_EDT_AUTH_USER, 60, 6, 94, 12, ES_AUTOHSCROLL
EDITTEXT ID_EDT_AUTH_PASS, 60, 23, 94, 12, ES_PASSWORD | ES_AUTOHSCROLL
LTEXT "", ID_TXT_AUTH_CHALLENGE, 6, 43, 148, 10
EDITTEXT ID_EDT_AUTH_CHALLENGE, 60, 57, 94, 12, ES_PASSWORD | ES_AUTOHSCROLL
PUSHBUTTON "OK", IDOK, 20, 76, 50, 14, BS_PUSHBUTTON | WS_TABSTOP | WS_DISABLED
PUSHBUTTON "Anuluj", IDCANCEL, 90, 76, 52, 14
END
/* Status Dialog */
ID_DLG_STATUS DIALOG 6, 18, 380, 210
STYLE WS_SIZEBOX | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_CAPTION | DS_CENTER

View File

@ -48,6 +48,24 @@ BEGIN
PUSHBUTTON "Cancelar", IDCANCEL, 90, 42, 52, 14
END
/* Auth Username/Password/Challenge Dialog */
ID_DLG_AUTH_CHALLENGE DIALOG 6, 18, 160, 96
STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | DS_CENTER | DS_SETFOREGROUND
CAPTION "OpenVPN - User Authentication"
FONT 8, "Microsoft Sans Serif"
LANGUAGE LANG_PORTUGUESE, SUBLANG_DEFAULT
BEGIN
LTEXT "Usuário:", 0, 6, 9, 50, 10
LTEXT "Senha:", 0, 6, 26, 50, 10
LTEXT "Response:", 0, 6, 60, 50, 10
EDITTEXT ID_EDT_AUTH_USER, 60, 6, 94, 12, ES_AUTOHSCROLL
EDITTEXT ID_EDT_AUTH_PASS, 60, 23, 94, 12, ES_PASSWORD | ES_AUTOHSCROLL
LTEXT "", ID_TXT_AUTH_CHALLENGE, 6, 43, 148, 10
EDITTEXT ID_EDT_AUTH_CHALLENGE, 60, 57, 94, 12, ES_PASSWORD | ES_AUTOHSCROLL
PUSHBUTTON "OK", IDOK, 20, 76, 50, 14, BS_PUSHBUTTON | WS_TABSTOP | WS_DISABLED
PUSHBUTTON "Cancelar", IDCANCEL, 90, 76, 52, 14
END
/* Status Dialog */
ID_DLG_STATUS DIALOG 6, 18, 380, 210
STYLE WS_SIZEBOX | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_CAPTION | DS_CENTER

View File

@ -50,6 +50,24 @@ BEGIN
PUSHBUTTON "Отмена", IDCANCEL, 100, 42, 52, 14
END
/* Auth Username/Password/Challenge Dialog */
ID_DLG_AUTH_CHALLENGE DIALOG 6, 18, 160, 96
STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | DS_CENTER | DS_SETFOREGROUND
CAPTION "OpenVPN - User Authentication"
FONT 8, "Microsoft Sans Serif"
LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
BEGIN
LTEXT "Имя пользователя:", 0, 6, 9, 50, 10
LTEXT "Пароль:", 0, 6, 26, 50, 10
LTEXT "Response:", 0, 6, 60, 50, 10
EDITTEXT ID_EDT_AUTH_USER, 60, 6, 94, 12, ES_AUTOHSCROLL
EDITTEXT ID_EDT_AUTH_PASS, 60, 23, 94, 12, ES_PASSWORD | ES_AUTOHSCROLL
LTEXT "", ID_TXT_AUTH_CHALLENGE, 6, 43, 148, 10
EDITTEXT ID_EDT_AUTH_CHALLENGE, 60, 57, 94, 12, ES_PASSWORD | ES_AUTOHSCROLL
PUSHBUTTON "OK", IDOK, 20, 76, 50, 14, BS_PUSHBUTTON | WS_TABSTOP | WS_DISABLED
PUSHBUTTON "Отмена", IDCANCEL, 90, 76, 52, 14
END
/* Status Dialog */
ID_DLG_STATUS DIALOG 6, 18, 380, 210
STYLE WS_SIZEBOX | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_CAPTION | DS_CENTER

View File

@ -48,6 +48,24 @@ BEGIN
PUSHBUTTON "Avbryt", IDCANCEL, 90, 42, 52, 14
END
/* Auth Username/Password/Challenge Dialog */
ID_DLG_AUTH_CHALLENGE DIALOG 6, 18, 160, 96
STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | DS_CENTER | DS_SETFOREGROUND
CAPTION "OpenVPN - User Authentication"
FONT 8, "Microsoft Sans Serif"
LANGUAGE LANG_SWEDISH, SUBLANG_DEFAULT
BEGIN
LTEXT "Användarnamn:", 0, 6, 9, 50, 10
LTEXT "Lösenord:", 0, 6, 26, 50, 10
LTEXT "Response:", 0, 6, 60, 50, 10
EDITTEXT ID_EDT_AUTH_USER, 60, 6, 94, 12, ES_AUTOHSCROLL
EDITTEXT ID_EDT_AUTH_PASS, 60, 23, 94, 12, ES_PASSWORD | ES_AUTOHSCROLL
LTEXT "", ID_TXT_AUTH_CHALLENGE, 6, 43, 148, 10
EDITTEXT ID_EDT_AUTH_CHALLENGE, 60, 57, 94, 12, ES_PASSWORD | ES_AUTOHSCROLL
PUSHBUTTON "OK", IDOK, 20, 76, 50, 14, BS_PUSHBUTTON | WS_TABSTOP | WS_DISABLED
PUSHBUTTON "Avbryt", IDCANCEL, 90, 76, 52, 14
END
/* Status Dialog */
ID_DLG_STATUS DIALOG 6, 18, 380, 210
STYLE WS_SIZEBOX | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_CAPTION | DS_CENTER

View File

@ -50,6 +50,24 @@ BEGIN
PUSHBUTTON "Çıkış", IDCANCEL, 90, 42, 52, 14
END
/* Auth Username/Password/Challenge Dialog */
ID_DLG_AUTH_CHALLENGE DIALOG 6, 18, 160, 96
STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | DS_CENTER | DS_SETFOREGROUND
CAPTION "OpenVPN - User Authentication"
FONT 8, "Microsoft Sans Serif"
LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
BEGIN
LTEXT "Kullanıcı Adı:", 0, 6, 9, 50, 10
LTEXT "Şifre:", 0, 6, 26, 50, 10
LTEXT "Response:", 0, 6, 60, 50, 10
EDITTEXT ID_EDT_AUTH_USER, 60, 6, 94, 12, ES_AUTOHSCROLL
EDITTEXT ID_EDT_AUTH_PASS, 60, 23, 94, 12, ES_PASSWORD | ES_AUTOHSCROLL
LTEXT "", ID_TXT_AUTH_CHALLENGE, 6, 43, 148, 10
EDITTEXT ID_EDT_AUTH_CHALLENGE, 60, 57, 94, 12, ES_PASSWORD | ES_AUTOHSCROLL
PUSHBUTTON "Tamam", IDOK, 20, 76, 50, 14, BS_PUSHBUTTON | WS_TABSTOP | WS_DISABLED
PUSHBUTTON "Çıkış", IDCANCEL, 90, 76, 52, 14
END
/* Status Dialog */
ID_DLG_STATUS DIALOG 6, 18, 380, 210
STYLE WS_SIZEBOX | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_CAPTION | DS_CENTER

View File

@ -48,6 +48,24 @@ BEGIN
PUSHBUTTON "Скасувати", IDCANCEL, 100, 42, 52, 14
END
/* Auth Username/Password/Challenge Dialog */
ID_DLG_AUTH_CHALLENGE DIALOG 6, 18, 160, 96
STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | DS_CENTER | DS_SETFOREGROUND
CAPTION "OpenVPN - User Authentication"
FONT 8, "Microsoft Sans Serif"
LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT
BEGIN
LTEXT "Ім'я користувача:", 0, 6, 9, 50, 10
LTEXT "Пароль:", 0, 6, 26, 50, 10
LTEXT "Response:", 0, 6, 60, 50, 10
EDITTEXT ID_EDT_AUTH_USER, 60, 6, 94, 12, ES_AUTOHSCROLL
EDITTEXT ID_EDT_AUTH_PASS, 60, 23, 94, 12, ES_PASSWORD | ES_AUTOHSCROLL
LTEXT "", ID_TXT_AUTH_CHALLENGE, 6, 43, 148, 10
EDITTEXT ID_EDT_AUTH_CHALLENGE, 60, 57, 94, 12, ES_PASSWORD | ES_AUTOHSCROLL
PUSHBUTTON "OK", IDOK, 20, 76, 50, 14, BS_PUSHBUTTON | WS_TABSTOP | WS_DISABLED
PUSHBUTTON "Скасувати", IDCANCEL, 90, 76, 52, 14
END
/* Status Dialog */
ID_DLG_STATUS DIALOG 6, 18, 380, 210
STYLE WS_SIZEBOX | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_CAPTION | DS_CENTER

View File

@ -50,6 +50,24 @@ BEGIN
PUSHBUTTON "取消", IDCANCEL, 90, 42, 52, 14
END
/* Auth Username/Password/Challenge Dialog */
ID_DLG_AUTH_CHALLENGE DIALOG 6, 18, 160, 96
STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | DS_CENTER | DS_SETFOREGROUND
CAPTION "OpenVPN - User Authentication"
FONT 8, "Microsoft Sans Serif"
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL
BEGIN
LTEXT "使用者名稱:", 0, 6, 9, 50, 10
LTEXT "密碼:", 0, 6, 26, 50, 10
LTEXT "Response:", 0, 6, 60, 50, 10
EDITTEXT ID_EDT_AUTH_USER, 60, 6, 94, 12, ES_AUTOHSCROLL
EDITTEXT ID_EDT_AUTH_PASS, 60, 23, 94, 12, ES_PASSWORD | ES_AUTOHSCROLL
LTEXT "", ID_TXT_AUTH_CHALLENGE, 6, 43, 148, 10
EDITTEXT ID_EDT_AUTH_CHALLENGE, 60, 57, 94, 12, ES_PASSWORD | ES_AUTOHSCROLL
PUSHBUTTON "確認", IDOK, 20, 76, 50, 14, BS_PUSHBUTTON | WS_TABSTOP | WS_DISABLED
PUSHBUTTON "取消", IDCANCEL, 90, 76, 52, 14
END
/* Status Dialog */
ID_DLG_STATUS DIALOG 6, 18, 380, 210
STYLE WS_SIZEBOX | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_CAPTION | DS_CENTER