mirror of https://github.com/OpenVPN/openvpn-gui
				
				
				
			
						commit
						7f73bcca0b
					
				| 
						 | 
				
			
			@ -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
								
								
								
								
							
							
						
						
									
										107
									
								
								misc.c
								
								
								
								
							| 
						 | 
				
			
			@ -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
								
								
								
								
							
							
						
						
									
										1
									
								
								misc.h
								
								
								
								
							| 
						 | 
				
			
			@ -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);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										60
									
								
								openvpn.c
								
								
								
								
							
							
						
						
									
										60
									
								
								openvpn.c
								
								
								
								
							| 
						 | 
				
			
			@ -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'"))
 | 
			
		||||
    {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue