Compare commits
56 Commits
Author | SHA1 | Date | |
---|---|---|---|
8704ab938f | |||
7169e66eb0 | |||
a5f4cafc55 | |||
52c0c82979 | |||
a4b9c36242 | |||
27ea8802e0 | |||
bb8e766db7 | |||
36b2f3c8a8 | |||
c41bc3908e | |||
79cc1af86f | |||
640c1abdbd | |||
9b14bd023f | |||
3a9b503e48 | |||
1ccfb58af1 | |||
6ed3b6732f | |||
c99be50152 | |||
b2d22864a3 | |||
2039936823 | |||
49e3cee12d | |||
10054b0240 | |||
963657d6d8 | |||
2b232ba443 | |||
2c138fc0a9 | |||
1acea44cf4 | |||
081b6a6b6f | |||
d92578150a | |||
c6c72bf9f2 | |||
ed0462e1a4 | |||
aff9f4f9f0 | |||
0ab18017cd | |||
4f736d8406 | |||
204839e656 | |||
8bffe1bec4 | |||
b2b1c9578c | |||
34304b4aad | |||
3e40aa8ec9 | |||
a7f41cb794 | |||
c37598828e | |||
b0815fcd64 | |||
b73922ef2f | |||
8384cda0d0 | |||
6e9f8f2bbd | |||
26626af6e9 | |||
af19238431 | |||
5370861182 | |||
687d4583a9 | |||
0d7c582a7b | |||
b371883195 | |||
0846969cc3 | |||
8f5b8d1d40 | |||
5c33e716d6 | |||
48987a0f17 | |||
d28ca1a566 | |||
d3105f8c97 | |||
5641920537 | |||
ebe37d34a4 |
Binary file not shown.
@@ -2,14 +2,14 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: EAPMethods\n"
|
||||
"POT-Creation-Date: 2016-09-06 14:06+0200\n"
|
||||
"POT-Creation-Date: 2016-09-20 11:05+0200\n"
|
||||
"PO-Revision-Date: 2016-06-02 12:27+0200\n"
|
||||
"Last-Translator: Simon Rozman <simon.rozman@amebis.si>\n"
|
||||
"Language-Team: Amebis, d. o. o., Kamnik <info@amebis.si>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 1.8.8\n"
|
||||
"X-Generator: Poedit 1.8.9\n"
|
||||
"X-Poedit-Basepath: ../..\n"
|
||||
"X-Poedit-SourceCharset: UTF-8\n"
|
||||
"X-Poedit-KeywordsList: _\n"
|
||||
@@ -218,8 +218,8 @@ msgstr ""
|
||||
msgid "%s Credentials"
|
||||
msgstr ""
|
||||
|
||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:123 lib/EAPBase_UI/include/EAP_UI.h:352
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:362 lib/EAPBase_UI/res/wxEAP_UI.h:119
|
||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:123 lib/EAPBase_UI/include/EAP_UI.h:351
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:361 lib/EAPBase_UI/res/wxEAP_UI.h:119
|
||||
msgid "EAP Credentials"
|
||||
msgstr ""
|
||||
|
||||
@@ -286,7 +286,7 @@ msgid "Acceptable Certificate Authorities:"
|
||||
msgstr ""
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:40
|
||||
msgid "List of certificate authorities server's certificate must be issued by"
|
||||
msgid "Server's certificate must be issued by one of certificate authorities listed here"
|
||||
msgstr ""
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:47
|
||||
@@ -444,13 +444,13 @@ msgid "Custom outer identity to use"
|
||||
msgstr ""
|
||||
|
||||
#: lib/TTLS_UI/src/Module.cpp:275 lib/TTLS_UI/src/Module.cpp:285
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:689
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:688
|
||||
#, c-format
|
||||
msgid "Error writing credentials to Credential Manager: %hs (error %u)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/TTLS_UI/src/Module.cpp:277 lib/TTLS_UI/src/Module.cpp:287
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:692
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:691
|
||||
msgid "Writing credentials failed."
|
||||
msgstr ""
|
||||
|
||||
@@ -474,42 +474,42 @@ msgstr ""
|
||||
msgid "Outer Authentication"
|
||||
msgstr ""
|
||||
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:289
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:288
|
||||
#, c-format
|
||||
msgid "Are you sure you want to permanently remove %ls provider from configuration?"
|
||||
msgstr ""
|
||||
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:289
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:288
|
||||
msgid "Warning"
|
||||
msgstr ""
|
||||
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:549
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:548
|
||||
msgid "Provider Settings"
|
||||
msgstr ""
|
||||
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:705
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:704
|
||||
#, c-format
|
||||
msgid "Deleting credentials failed (error %u)."
|
||||
msgstr ""
|
||||
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:739
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:738
|
||||
#, c-format
|
||||
msgid "<error %u>"
|
||||
msgstr ""
|
||||
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:743
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:742
|
||||
msgid "<error>"
|
||||
msgstr ""
|
||||
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:754 lib/EAPBase_UI/include/EAP_UI.h:764
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:753 lib/EAPBase_UI/include/EAP_UI.h:762
|
||||
msgid "<empty>"
|
||||
msgstr ""
|
||||
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:754 lib/EAPBase_UI/include/EAP_UI.h:764
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:753 lib/EAPBase_UI/include/EAP_UI.h:762
|
||||
msgid "<blank ID>"
|
||||
msgstr ""
|
||||
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:964
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:962
|
||||
msgid "<Your Organization>"
|
||||
msgstr ""
|
||||
|
||||
@@ -517,27 +517,22 @@ msgstr ""
|
||||
msgid "EAP Connection Configuration"
|
||||
msgstr ""
|
||||
|
||||
#: EAPMethods/MSIBuild/En.Win32.Release.Feature-2.idtx:3
|
||||
#: EAPMethods/MSIBuild/En.x64.Release.Feature-2.idtx:3
|
||||
msgid "1252"
|
||||
msgstr ""
|
||||
|
||||
#: EAPMethods/MSIBuild/En.Win32.Release.Feature-2.idtx:4
|
||||
#: EAPMethods/MSIBuild/En.x64.Release.Feature-2.idtx:4
|
||||
#: EAPMethods/MSIBuild/en_US.Win32.Release.Feature-2.idtx:4
|
||||
#: EAPMethods/MSIBuild/en_US.x64.Release.Feature-2.idtx:4
|
||||
msgid "EAP Methods"
|
||||
msgstr ""
|
||||
|
||||
#: EAPMethods/MSIBuild/En.Win32.Release.Feature-2.idtx:4
|
||||
#: EAPMethods/MSIBuild/En.x64.Release.Feature-2.idtx:4
|
||||
#: EAPMethods/MSIBuild/en_US.Win32.Release.Feature-2.idtx:4
|
||||
#: EAPMethods/MSIBuild/en_US.x64.Release.Feature-2.idtx:4
|
||||
msgid "Modules to support individual EAP methods"
|
||||
msgstr ""
|
||||
|
||||
#: EAPMethods/MSIBuild/En.Win32.Release.Feature-2.idtx:5
|
||||
#: EAPMethods/MSIBuild/En.x64.Release.Feature-2.idtx:5
|
||||
#: EAPMethods/MSIBuild/en_US.Win32.Release.Feature-2.idtx:5
|
||||
#: EAPMethods/MSIBuild/en_US.x64.Release.Feature-2.idtx:5
|
||||
msgid "TTLS"
|
||||
msgstr ""
|
||||
|
||||
#: EAPMethods/MSIBuild/En.Win32.Release.Feature-2.idtx:5
|
||||
#: EAPMethods/MSIBuild/En.x64.Release.Feature-2.idtx:5
|
||||
#: EAPMethods/MSIBuild/en_US.Win32.Release.Feature-2.idtx:5
|
||||
#: EAPMethods/MSIBuild/en_US.x64.Release.Feature-2.idtx:5
|
||||
msgid "Tunneled Transport Layer Security"
|
||||
msgstr ""
|
||||
|
@@ -5,7 +5,7 @@ msgstr ""
|
||||
"Project-Id-Version: EAPMethods\n"
|
||||
"POT-Creation-Date: 2016-09-06 14:06+0200\n"
|
||||
"PO-Revision-Date: 2016-06-02 12:27+0200\n"
|
||||
"Last-Translator: Simon Rozman <simon@rozman.si>, 2016\n"
|
||||
"Last-Translator: eduroam_devel <stefan.winter@restena.lu>, 2016\n"
|
||||
"Language-Team: German (https://www.transifex.com/eduroam_devel/teams/11799/de/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -24,132 +24,146 @@ msgstr ""
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:37
|
||||
msgid "+"
|
||||
msgstr ""
|
||||
msgstr "+"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:38
|
||||
msgid "Adds new provider"
|
||||
msgstr ""
|
||||
msgstr "Fügt einen neuen Identitätsprovider hinzu"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:42
|
||||
msgid "-"
|
||||
msgstr ""
|
||||
msgstr "-"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:43
|
||||
msgid "Removes selected provider"
|
||||
msgstr ""
|
||||
msgstr "Entfernt den ausgewählten Identitätsprovider"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:47
|
||||
msgid "Advanced..."
|
||||
msgstr ""
|
||||
msgstr "Fortgeschritten..."
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:48
|
||||
msgid "Opens dialog with provider settings"
|
||||
msgstr ""
|
||||
msgstr "Öffnet den Dialog mit den Einstellungen für den Identitätsprovider"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:230 lib/EAPBase_UI/res/wxEAP_UI.cpp:355
|
||||
msgid "Client Credentials"
|
||||
msgstr ""
|
||||
msgstr "Nutzerdaten"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:241
|
||||
msgid "Manage credentials used to connect."
|
||||
msgstr ""
|
||||
msgstr "Verwaltet die Nutzerdaten die zum Einloggen nötig sind."
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:254
|
||||
msgid "Use &own credentials:"
|
||||
msgstr ""
|
||||
msgstr "&Eigene Zugangsdaten eingeben:"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:255
|
||||
msgid "Select this option if you have your unique credentials to connect"
|
||||
msgstr ""
|
||||
"Wählen Sie diese Option wenn Sie Ihre persönlichen Nutzerdaten selbst "
|
||||
"eingeben möchten"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:260
|
||||
msgid "Your credentials loaded from Windows Credential Manager"
|
||||
msgstr ""
|
||||
msgstr "Laden der Nutzerdaten aus der Anmeldeinformationsverwaltung"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:270
|
||||
msgid "&Clear Credentials"
|
||||
msgstr ""
|
||||
msgstr "Nutzerdaten &löschen"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:271
|
||||
msgid ""
|
||||
"Click to clear your credentials from Credential Manager.\n"
|
||||
"Note: You will be prompted to enter credentials when connecting."
|
||||
msgstr ""
|
||||
"Klicken Sie hier, um Ihre Nutzerdaten aus der Anmeldeinformationsverwaltung "
|
||||
"zu löschen. Hinweis: Sie werden dann bei der nächsten Verbindung zur Eingabe"
|
||||
" Ihrer Nutzerdaten aufgefordert."
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:275 lib/EAPBase_UI/res/wxEAP_UI.cpp:308
|
||||
msgid "&Set Credentials..."
|
||||
msgstr ""
|
||||
msgstr "Nutzerdaten &festlegen..."
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:276 lib/EAPBase_UI/res/wxEAP_UI.cpp:309
|
||||
msgid "Click here to set or modify your credentials"
|
||||
msgstr ""
|
||||
msgstr "Klicken Sie hier um Ihre Nutzerdaten einzugeben oder zu ändern"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:292
|
||||
msgid "Use &pre-shared credentials:"
|
||||
msgstr ""
|
||||
msgstr "Nutzderdaten aus der &Konfigurationsdatei verwenden:"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:293
|
||||
msgid "Select this options if all clients connect using the same credentials"
|
||||
msgstr ""
|
||||
"Verwenden Sie diese Option wenn Ihre Nutzerdaten bereits in der "
|
||||
"Konfigurationsdatei geliefert wurden"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:298
|
||||
msgid "Common (pre-shared) credentials"
|
||||
msgstr ""
|
||||
msgstr "Vorkonfigurierte Nutzerdaten"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:366
|
||||
msgid "Please provide your user ID and password."
|
||||
msgstr ""
|
||||
msgstr "Bitte geben Sie Ihren Benutzernamen und das Passwort ein."
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:376
|
||||
msgid "User ID:"
|
||||
msgstr ""
|
||||
msgstr "Benutzername:"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:381
|
||||
msgid "Enter your user name here (user@domain.org, DOMAIN\\User, etc.)"
|
||||
msgstr ""
|
||||
"Geben Sie hier Ihren Benutzernamen ein (z.B nutzer@domain.org, "
|
||||
"DOMAIN\\nutzer, ...)"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:385
|
||||
msgid "Password:"
|
||||
msgstr ""
|
||||
msgstr "Passwort:"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:390
|
||||
msgid "Enter your password here"
|
||||
msgstr ""
|
||||
msgstr "Geben Sie hier Ihr Passwort ein"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:397 lib/TLS_UI/res/wxTLS_UI.cpp:183
|
||||
msgid "&Remember"
|
||||
msgstr ""
|
||||
msgstr "&Speichern"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:398
|
||||
msgid "Check if you would like to save username and password"
|
||||
msgstr ""
|
||||
msgstr "Wählen Sie hier, ob Sie Benutzername und Passwort speichern möchten"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:420
|
||||
msgid "Your Organization"
|
||||
msgstr ""
|
||||
msgstr "Ihre Organisation"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:431
|
||||
msgid ""
|
||||
"Describe your organization to customize user prompts. When organization is "
|
||||
"introduced, end-users find program messages easier to understand and act."
|
||||
msgstr ""
|
||||
"Beschreiben Sie Ihre Organisation um die Nutzerdialoge persönlicher zu "
|
||||
"gestalten. Die organisationsspezifische Anpassung macht es Ihren Nutzern "
|
||||
"leichter, das Programm zu benutzen."
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:438
|
||||
msgid "Your organization &name:"
|
||||
msgstr ""
|
||||
msgstr "&Name der Organisation:"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:443
|
||||
msgid ""
|
||||
"Your organization name as it will appear on helpdesk contact notifications"
|
||||
msgstr ""
|
||||
"Der Name Ihrer Organisation, so wie er dem Nutzer bei den Hilfe- und "
|
||||
"Kontaktmöglichkeiten angezeigt wird"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:447
|
||||
msgid "(Keep it short, please)"
|
||||
msgstr ""
|
||||
msgstr "(fassen Sie sich bitte kurz)"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:457
|
||||
msgid "Helpdesk contact &information:"
|
||||
msgstr ""
|
||||
msgstr "&Hilfe und Kontaktmöglichkeiten:"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:467
|
||||
msgid "¶"
|
||||
@@ -157,7 +171,7 @@ msgstr "¶"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:474
|
||||
msgid "Your helpdesk website address"
|
||||
msgstr ""
|
||||
msgstr "Webseite für Hilfe und Kontakt"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:478
|
||||
msgid "*"
|
||||
@@ -165,7 +179,7 @@ msgstr "*"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:485
|
||||
msgid "Your helpdesk e-mail address"
|
||||
msgstr ""
|
||||
msgstr "E-Mail Adresse für Hilfe und Kontakt"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:489
|
||||
msgid ")"
|
||||
@@ -173,21 +187,23 @@ msgstr ")"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:496
|
||||
msgid "Your helpdesk phone number"
|
||||
msgstr ""
|
||||
msgstr "Telefonnummer für Hilfe und Kontakt"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:524
|
||||
msgid "Provider Unique Identifier"
|
||||
msgstr ""
|
||||
msgstr "Eindeutige Kennzeichnung des Identitätsproviders"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:535
|
||||
msgid ""
|
||||
"Assign your organization a unique ID to allow sharing the same credential "
|
||||
"set across different network profiles."
|
||||
msgstr ""
|
||||
"Geben Sie Ihrem Identitätsprovider eine eindeutige Bezeichnung damit er von "
|
||||
"anderen Konfigurationsdateien unterschieden werden kann."
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:542
|
||||
msgid "&Namespace:"
|
||||
msgstr ""
|
||||
msgstr "Namens&raum:"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:546
|
||||
msgid "urn:RFC4282:realm"
|
||||
@@ -199,62 +215,71 @@ msgstr "urn:uuid"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:558
|
||||
msgid "Provider unique &identifier:"
|
||||
msgstr ""
|
||||
msgstr "&Identifikation im Namensraum:"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:563
|
||||
msgid "Your organization ID to assign same credentials from other profiles"
|
||||
msgstr ""
|
||||
"Eindeutige Kennzeichnung Ihrer Organisation um Nutzerdaten "
|
||||
"profilübergreifend nutzen zu können"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:588
|
||||
msgid "Configuration Lock"
|
||||
msgstr ""
|
||||
msgstr "Konfiguration sperren"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:599
|
||||
msgid ""
|
||||
"Your configuration can be locked to prevent accidental modification by end-"
|
||||
"users. Users will only be allowed to enter credentials."
|
||||
msgstr ""
|
||||
"Ihre Konfiguration kann gesperrt werden um irrtümliche Veränderungen durch "
|
||||
"den Nutzer zu verhindern. Der Nutzer kann dann nur seinen Benutzernamen und "
|
||||
"Passwort ändern."
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:606
|
||||
msgid ""
|
||||
"&Lock this configuration and prevent any further modification via user "
|
||||
"interface."
|
||||
msgstr ""
|
||||
"Konfiguration s&perren und weitere Änderungen durch die "
|
||||
"Benutzerschnittstelle verhindern."
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:609
|
||||
msgid "(Warning: Once locked, you can not revert using this dialog!)"
|
||||
msgstr ""
|
||||
"(Warnung: sobald die Konfiguration gesperrt ist, können Sie sie hier nicht "
|
||||
"mehr verändern!)"
|
||||
|
||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:98
|
||||
#, c-format
|
||||
msgid "%s Credentials"
|
||||
msgstr ""
|
||||
msgstr "%s Nutzerdaten"
|
||||
|
||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:123 lib/EAPBase_UI/include/EAP_UI.h:352
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:362 lib/EAPBase_UI/res/wxEAP_UI.h:119
|
||||
msgid "EAP Credentials"
|
||||
msgstr ""
|
||||
msgstr "EAP Nutzerdaten"
|
||||
|
||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:166
|
||||
#, c-format
|
||||
msgid "For additional help and instructions, please contact %s at:"
|
||||
msgstr ""
|
||||
msgstr "Für Hilfe und weitere Anleitungen kontaktieren Sie bitte %s via:"
|
||||
|
||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:167
|
||||
msgid "your provider"
|
||||
msgstr ""
|
||||
msgstr "ihren Identitätsprovider"
|
||||
|
||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:186
|
||||
msgid "Open the default web browser"
|
||||
msgstr ""
|
||||
msgstr "Öffnen Sie im Webbrowser"
|
||||
|
||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:197
|
||||
msgid "Open your e-mail program"
|
||||
msgstr ""
|
||||
msgstr "Öffnen Sie Ihr E-Mail Programm"
|
||||
|
||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:208
|
||||
msgid "Dial the phone number"
|
||||
msgstr ""
|
||||
msgstr "Wählen Sie die Telefonnummer"
|
||||
|
||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:228
|
||||
#, c-format
|
||||
@@ -262,284 +287,317 @@ msgid ""
|
||||
"%s has pre-set parts of this configuration. Those parts are locked to "
|
||||
"prevent accidental modification."
|
||||
msgstr ""
|
||||
"%s hat einige der Konfigurationsdaten voreingestellt. Diese Daten sind "
|
||||
"gesperrt um unbeabsichtigte Änderungen zu vermeiden."
|
||||
|
||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:229
|
||||
msgid "Your provider"
|
||||
msgstr ""
|
||||
msgstr "Ihr Identitätsprovider"
|
||||
|
||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:250
|
||||
msgid "Previous attempt to connect reported invalid credentials."
|
||||
msgstr ""
|
||||
msgstr "Der vorige Anmeldeversuch schlug fehl wegen falscher Nutzerdaten."
|
||||
|
||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:251
|
||||
msgid "Previous attempt to connect reported your credentials expired."
|
||||
msgstr ""
|
||||
"Der vorige Anmeldeversuch schlug fehl weil die Nutzerdaten abgelaufen sind."
|
||||
|
||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:252
|
||||
msgid ""
|
||||
"Previous attempt to connect reported your credentials are being changed."
|
||||
msgstr ""
|
||||
"Der vorige Anmeldeversuch meldete dass Ihre Nutzerdaten geändert werden "
|
||||
"müssen."
|
||||
|
||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:253
|
||||
msgid "Previous attempt to connect failed."
|
||||
msgstr ""
|
||||
msgstr "Der vorige Anmeldeversuch schlug fehl."
|
||||
|
||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:254
|
||||
msgid "Please, make sure your credentials are correct, or try again later."
|
||||
msgstr ""
|
||||
"Bitte stellen Sie sicher dass ihre Nutzerdaten korrekt sind, oder versuchen "
|
||||
"Sie es später noch einmal."
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:17
|
||||
msgid "Server Trust"
|
||||
msgstr ""
|
||||
msgstr "Vertrauenseinstellungen: Server"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:28
|
||||
msgid ""
|
||||
"Describe the servers you trust to prevent credential interception in case of"
|
||||
" man-in-the-middle attacks."
|
||||
msgstr ""
|
||||
"Definieren Sie welche Server vertrauenswürdig sind um das Abgreifen von "
|
||||
"Nutzerdaten durch Man-in-the-Middle Angriffe zu verhindern."
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:35
|
||||
msgid "Acceptable Certificate Authorities:"
|
||||
msgstr ""
|
||||
msgstr "Vertrauenseinstellungen: Zertifizierungsstellen (CAs)"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:40
|
||||
msgid "List of certificate authorities server's certificate must be issued by"
|
||||
msgstr ""
|
||||
"Liste der Zertifizierungsstellen (CAs), von denen das Serverzertifikat "
|
||||
"stammen muss"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:47
|
||||
msgid "Add CA from Store..."
|
||||
msgstr ""
|
||||
msgstr "CA aus dem Gerätespeicher hinzufügen..."
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:48
|
||||
msgid ""
|
||||
"Adds a new certificate authority from the certificate store to the list"
|
||||
msgstr ""
|
||||
"Fügt eine Zertifizierungsstelle aus dem Gerätespeicher für "
|
||||
"Zertifizierungsstellen zur Liste hinzu"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:52
|
||||
msgid "Add CA from File..."
|
||||
msgstr ""
|
||||
msgstr "CA aus einer Datei hinzufügen..."
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:53
|
||||
msgid "Adds a new certificate authority from the file to the list"
|
||||
msgstr ""
|
||||
msgstr "Fügt eine Zertifizierungsstelle aus einer Datei zur Liste hinzu"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:57
|
||||
msgid "&Remove CA"
|
||||
msgstr ""
|
||||
msgstr "&CA entfernen"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:59
|
||||
msgid "Removes selected certificate authorities from the list"
|
||||
msgstr ""
|
||||
msgstr "Entfernt die ausgewählte Zertifizierungsstelle aus der Liste"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:72
|
||||
msgid "Acceptable server &names:"
|
||||
msgstr ""
|
||||
msgstr "&Akzeptable Servernamen:"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:77
|
||||
msgid ""
|
||||
"A semicolon delimited list of acceptable server FQDN names; blank to skip "
|
||||
"name check; Unicode characters allowed"
|
||||
msgstr ""
|
||||
"Eine durch Semikola getrennte Liste der akzeptablen Servernamen; wenn leer, "
|
||||
"wird die Namensüberprüfung übersrungen; Unicode Buchstaben sind erlaubt"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:81
|
||||
msgid "(Example: foo.bar.com;server2.bar.com)"
|
||||
msgstr ""
|
||||
msgstr "(Beispiel: foo.bar.com;server2.bar.com)"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:120
|
||||
msgid "TLS Client Certificate"
|
||||
msgstr ""
|
||||
msgstr "Nutzerzertifikat"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:131
|
||||
msgid "Please select your client certificate to use for authentication."
|
||||
msgstr ""
|
||||
"Bitte wählen Sie Ihr Nutzerzertifikat wenn eines für die Anmeldung benötigt "
|
||||
"wird."
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:138
|
||||
msgid "Co&nnect without providing a client certificate"
|
||||
msgstr ""
|
||||
msgstr "Anmelden &ohne Nutzerzertifikat"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:139
|
||||
msgid ""
|
||||
"Select if your server does not require you to provide a client certificate"
|
||||
msgstr ""
|
||||
"Wählen Sie diese Option aus, wenn ihr Identitätsprovider keine "
|
||||
"Nutzerzertifikate fürs Anmelden fordert"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:146
|
||||
msgid "Use the following &certificate:"
|
||||
msgstr ""
|
||||
msgstr "Das folgende Nutzer&zertifkat nutzen:"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:147
|
||||
msgid "Select if you need to provide a client certificate when connecting"
|
||||
msgstr ""
|
||||
"Wählen Sie diese Option aus, wenn Sie zur Anmeldung ein Nutzerzertifikat "
|
||||
"benötigen"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:154
|
||||
msgid "Client certificate to use for authentication"
|
||||
msgstr ""
|
||||
msgstr "Nutzerzertifikat für Anmeldung"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:167
|
||||
msgid "Custom &identity:"
|
||||
msgstr ""
|
||||
msgstr "Ab&weichender Nutzername:"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:172
|
||||
msgid ""
|
||||
"Your identity (username@domain) to override one from certificate; or blank "
|
||||
"to use one provided in certificate"
|
||||
msgstr ""
|
||||
"Ihr Nutzername (nutzer@domain) wenn abweichend vom Namen im "
|
||||
"Nutzerzertifikat; oder leer lassen um den Namen im Nutzerzertifikat zu "
|
||||
"verwenden"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:176
|
||||
msgid "(Example: user@contoso.com)"
|
||||
msgstr ""
|
||||
msgstr "(Beispiel: nutzer@domain.com)"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:184
|
||||
msgid "Check if you would like to save certificate selection"
|
||||
msgstr ""
|
||||
msgstr "Möchten Sie diese Zertifikatseinstellungen speichern?"
|
||||
|
||||
#: lib/TLS_UI/src/TLS_UI.cpp:118
|
||||
#, c-format
|
||||
msgid "Invalid character in host name found: %c"
|
||||
msgstr ""
|
||||
msgstr "Ungültiger Buchstabe im Servernamen gefunden: %c"
|
||||
|
||||
#: lib/TLS_UI/src/TLS_UI.cpp:118
|
||||
msgid "Validation conflict"
|
||||
msgstr ""
|
||||
msgstr "Fehler bei der Validierung"
|
||||
|
||||
#: lib/TLS_UI/src/TLS_UI.cpp:511
|
||||
msgid "Add Certificate"
|
||||
msgstr ""
|
||||
msgstr "Zertifikat hinzufügen"
|
||||
|
||||
#: lib/TLS_UI/src/TLS_UI.cpp:512
|
||||
msgid "Certificate Files (*.cer;*.crt;*.der;*.p7b;*.pem)"
|
||||
msgstr ""
|
||||
msgstr "Zertifikatsdateien (*.cer;*.crt;*.der;*.p7b;*.pem)"
|
||||
|
||||
#: lib/TLS_UI/src/TLS_UI.cpp:513
|
||||
msgid "X.509 Certificate Files (*.cer;*.crt;*.der;*.pem)"
|
||||
msgstr ""
|
||||
msgstr "X.509 Zertifikatsdateien (*.cer;*.crt;*.der;*.pem)"
|
||||
|
||||
#: lib/TLS_UI/src/TLS_UI.cpp:514
|
||||
msgid "PKCS #7 Certificate Files (*.p7b)"
|
||||
msgstr ""
|
||||
msgstr "PKCS #7 Zertifikatsdateien (*.p7b)"
|
||||
|
||||
#: lib/TLS_UI/src/TLS_UI.cpp:515
|
||||
msgid "All Files (*.*)"
|
||||
msgstr ""
|
||||
msgstr "Alle Dateien (*.*)"
|
||||
|
||||
#: lib/TLS_UI/src/TLS_UI.cpp:531
|
||||
#, c-format
|
||||
msgid "Invalid or unsupported certificate file %s"
|
||||
msgstr ""
|
||||
msgstr "Ungültige oder nicht unterstützte Zertifikatsdatei %s"
|
||||
|
||||
#: lib/TLS_UI/src/TLS_UI.cpp:531
|
||||
msgid "Error"
|
||||
msgstr ""
|
||||
msgstr "Fehler"
|
||||
|
||||
#: lib/TTLS_UI/res/wxTTLS_UI.cpp:17
|
||||
msgid "Outer Identity"
|
||||
msgstr ""
|
||||
msgstr "Äußere (anonyme) Identität"
|
||||
|
||||
#: lib/TTLS_UI/res/wxTTLS_UI.cpp:28
|
||||
msgid "Select the user ID supplicant introduces itself as to authenticator:"
|
||||
msgstr ""
|
||||
"Wählen Sie einen anonymen Nutzernamen für die unverschlüsselte Übertragung:"
|
||||
|
||||
#: lib/TTLS_UI/res/wxTTLS_UI.cpp:35
|
||||
msgid "&True identity"
|
||||
msgstr ""
|
||||
msgstr "Echten Nutzernamen &verwenden"
|
||||
|
||||
#: lib/TTLS_UI/res/wxTTLS_UI.cpp:36
|
||||
msgid "Use my true user name"
|
||||
msgstr ""
|
||||
msgstr "Im unverschlüsselten Teil der Anmeldung den echten Nutzernamen senden"
|
||||
|
||||
#: lib/TTLS_UI/res/wxTTLS_UI.cpp:40
|
||||
msgid "Use &empty outer identity (RFC 4822)"
|
||||
msgstr ""
|
||||
msgstr "Leeren N&utzernamen verwenden (gemäß RFC 4822)"
|
||||
|
||||
#: lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||
msgid "Ommit my user name and use @mydomain.org only"
|
||||
msgstr ""
|
||||
"Im unverschlüsselten Teil den Nutzernamen weglassen und nur den @domain Teil"
|
||||
" senden"
|
||||
|
||||
#: lib/TTLS_UI/res/wxTTLS_UI.cpp:48
|
||||
msgid "&Custom outer identity:"
|
||||
msgstr ""
|
||||
msgstr "Ei&genen Nutzernamen verwenden:"
|
||||
|
||||
#: lib/TTLS_UI/res/wxTTLS_UI.cpp:49
|
||||
msgid "Specify custom outer identity"
|
||||
msgstr ""
|
||||
"Im unverschlüsselten Teil einen selbst festgelegten Nutzernamen verwenden"
|
||||
|
||||
#: lib/TTLS_UI/res/wxTTLS_UI.cpp:54
|
||||
msgid "Custom outer identity to use"
|
||||
msgstr ""
|
||||
msgstr "Zu verwendender Nutzername"
|
||||
|
||||
#: lib/TTLS_UI/src/Module.cpp:275 lib/TTLS_UI/src/Module.cpp:285
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:689
|
||||
#, c-format
|
||||
msgid "Error writing credentials to Credential Manager: %hs (error %u)"
|
||||
msgstr ""
|
||||
"Fehler beim Speichern der Nutzerdaten in der Anmeldeinformationsverwaltung: "
|
||||
"%hs (Fehler %u)"
|
||||
|
||||
#: lib/TTLS_UI/src/Module.cpp:277 lib/TTLS_UI/src/Module.cpp:287
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:692
|
||||
msgid "Writing credentials failed."
|
||||
msgstr ""
|
||||
msgstr "Speichern der Nutzerdaten fehlgeschlagen."
|
||||
|
||||
#: lib/TTLS_UI/src/TTLS_UI.cpp:108 lib/TTLS_UI/src/TTLS_UI.cpp:235
|
||||
msgid "Inner Authentication"
|
||||
msgstr ""
|
||||
msgstr "Verschlüsselte Anmeldungsphase"
|
||||
|
||||
#: lib/TTLS_UI/src/TTLS_UI.cpp:114
|
||||
msgid "Select inner authentication method from the list"
|
||||
msgstr ""
|
||||
"Wählen Sie die Anmeldemethode im verschlüsselten Teil der Verbindung aus"
|
||||
|
||||
#: lib/TTLS_UI/src/TTLS_UI.cpp:116
|
||||
msgid "PAP"
|
||||
msgstr ""
|
||||
msgstr "PAP"
|
||||
|
||||
#: lib/TTLS_UI/src/TTLS_UI.cpp:118
|
||||
msgid "MSCHAPv2"
|
||||
msgstr ""
|
||||
msgstr "MSCHAPv2"
|
||||
|
||||
#: lib/TTLS_UI/src/TTLS_UI.cpp:123 lib/TTLS_UI/src/TTLS_UI.cpp:262
|
||||
msgid "Outer Authentication"
|
||||
msgstr ""
|
||||
msgstr "Unverschlüsselte Anmeldungsphase"
|
||||
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:289
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Are you sure you want to permanently remove %ls provider from configuration?"
|
||||
msgstr ""
|
||||
"Sind Sie sicher, dass Sie den Identitätsprovider %ls aus der Konfiguration "
|
||||
"löschen möchten?"
|
||||
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:289
|
||||
msgid "Warning"
|
||||
msgstr ""
|
||||
msgstr "Warnung"
|
||||
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:549
|
||||
msgid "Provider Settings"
|
||||
msgstr ""
|
||||
msgstr "Identitätsprovider Einstellungen"
|
||||
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:705
|
||||
#, c-format
|
||||
msgid "Deleting credentials failed (error %u)."
|
||||
msgstr ""
|
||||
msgstr "Löschen der Nutzerdaten fehlgeschlagen (Fehler %u)."
|
||||
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:739
|
||||
#, c-format
|
||||
msgid "<error %u>"
|
||||
msgstr ""
|
||||
msgstr "<Fehler %u>"
|
||||
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:743
|
||||
msgid "<error>"
|
||||
msgstr ""
|
||||
msgstr "<Fehler>"
|
||||
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:754 lib/EAPBase_UI/include/EAP_UI.h:764
|
||||
msgid "<empty>"
|
||||
msgstr ""
|
||||
msgstr "<leer>"
|
||||
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:754 lib/EAPBase_UI/include/EAP_UI.h:764
|
||||
msgid "<blank ID>"
|
||||
msgstr ""
|
||||
msgstr "<leere ID>"
|
||||
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:964
|
||||
msgid "<Your Organization>"
|
||||
msgstr ""
|
||||
msgstr "<Ihre Organisation>"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.h:69
|
||||
msgid "EAP Connection Configuration"
|
||||
msgstr ""
|
||||
msgstr "EAP Verbindungseinstellungen"
|
||||
|
||||
#: EAPMethods/MSIBuild/En.Win32.Release.Feature-2.idtx:3
|
||||
#: EAPMethods/MSIBuild/En.x64.Release.Feature-2.idtx:3
|
||||
@@ -549,19 +607,19 @@ msgstr "1252"
|
||||
#: EAPMethods/MSIBuild/En.Win32.Release.Feature-2.idtx:4
|
||||
#: EAPMethods/MSIBuild/En.x64.Release.Feature-2.idtx:4
|
||||
msgid "EAP Methods"
|
||||
msgstr ""
|
||||
msgstr "EAP Methoden"
|
||||
|
||||
#: EAPMethods/MSIBuild/En.Win32.Release.Feature-2.idtx:4
|
||||
#: EAPMethods/MSIBuild/En.x64.Release.Feature-2.idtx:4
|
||||
msgid "Modules to support individual EAP methods"
|
||||
msgstr ""
|
||||
msgstr "Module zur Unterstützung einzelner EAP Methoden"
|
||||
|
||||
#: EAPMethods/MSIBuild/En.Win32.Release.Feature-2.idtx:5
|
||||
#: EAPMethods/MSIBuild/En.x64.Release.Feature-2.idtx:5
|
||||
msgid "TTLS"
|
||||
msgstr ""
|
||||
msgstr "TTLS"
|
||||
|
||||
#: EAPMethods/MSIBuild/En.Win32.Release.Feature-2.idtx:5
|
||||
#: EAPMethods/MSIBuild/En.x64.Release.Feature-2.idtx:5
|
||||
msgid "Tunneled Transport Layer Security"
|
||||
msgstr ""
|
||||
msgstr "Tunneled Transport Layer Security"
|
||||
|
@@ -28,7 +28,7 @@ msgstr "+"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:38
|
||||
msgid "Adds new provider"
|
||||
msgstr "Προσθέτει νέο προμηθευτή"
|
||||
msgstr "Προσθέτει νέο πάροχο"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:42
|
||||
msgid "-"
|
||||
@@ -36,7 +36,7 @@ msgstr "-"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:43
|
||||
msgid "Removes selected provider"
|
||||
msgstr "Αφαιρεί επιλεγμένο προμηθευτή"
|
||||
msgstr "Αφαιρεί επιλεγμένο πάροχο"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:47
|
||||
msgid "Advanced..."
|
||||
@@ -44,7 +44,7 @@ msgstr "Προχωρημένο..."
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:48
|
||||
msgid "Opens dialog with provider settings"
|
||||
msgstr "Ανοίγει ένα παράθυρο διαλόγου με τις ρυθμίσεις του προμηθευτή"
|
||||
msgstr "Ανοίγει ένα παράθυρο διαλόγου με τις ρυθμίσεις του παρόχου"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:230 lib/EAPBase_UI/res/wxEAP_UI.cpp:355
|
||||
msgid "Client Credentials"
|
||||
@@ -91,7 +91,7 @@ msgstr ""
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:292
|
||||
msgid "Use &pre-shared credentials:"
|
||||
msgstr "Χρησιμοποιήστε προ-μοιρασμένα διαπιστευτήρια:"
|
||||
msgstr "Χρησιμοποιήστε προ-&μοιρασμένα διαπιστευτήρια:"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:293
|
||||
msgid "Select this options if all clients connect using the same credentials"
|
||||
@@ -101,7 +101,7 @@ msgstr ""
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:298
|
||||
msgid "Common (pre-shared) credentials"
|
||||
msgstr "Κοινά (προ-κοινόχρηστα) διαπιστευτήρια"
|
||||
msgstr "Κοινά (προ-μοιρασμένα) διαπιστευτήρια"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:366
|
||||
msgid "Please provide your user ID and password."
|
||||
@@ -142,9 +142,9 @@ msgid ""
|
||||
"Describe your organization to customize user prompts. When organization is "
|
||||
"introduced, end-users find program messages easier to understand and act."
|
||||
msgstr ""
|
||||
"Περιγράψτε τον οργανισμό σας για να προσαρμόσετε τη ζήτηση του. Όταν ο "
|
||||
"Οργανισμός έχει παρουσιαστεί, οι τελικοί χρήστες κατανοούν πιο εύκολα τα "
|
||||
"μηνύματα των προγραμμάτων και την χρησιμοποίηση τους."
|
||||
"Περιγράψτε τον Φορέα σας για να προσαρμόσετε τη ζήτηση του. Όταν "
|
||||
"παρουσιάζεται ο φορέας, οι τελικοί χρήστες κατανοούν πιο εύκολα τα μηνύματα "
|
||||
"των προγραμμάτων και τις ενέργειές τους."
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:438
|
||||
msgid "Your organization &name:"
|
||||
@@ -232,7 +232,7 @@ msgid ""
|
||||
"Your configuration can be locked to prevent accidental modification by end-"
|
||||
"users. Users will only be allowed to enter credentials."
|
||||
msgstr ""
|
||||
"Η διαμόρφωσή σας μπορεί να κλειδώνετε ώστε να αποφύγετε τις κατά λάθος "
|
||||
"Η διαμόρφωσή σας μπορεί να κλειδώνεται ώστε να αποφύγετε τις κατά λάθος "
|
||||
"αλλαγές από τους τελικούς χρήστες. Στους χρήστες θα επιτρέπεται μόνο να "
|
||||
"εισαγουν τα διαπιστευτήρια."
|
||||
|
||||
@@ -264,7 +264,8 @@ msgstr "Διαπιστευτήρια EAP"
|
||||
#, c-format
|
||||
msgid "For additional help and instructions, please contact %s at:"
|
||||
msgstr ""
|
||||
"Για πρόσθετη βοήθεια και οδηγίες, παρακαλούμε επικοινωνήστε μαζί μας %s στο:"
|
||||
"Για περισσότερη βοήθεια και οδηγίες, παρακαλούμε επικοινωνήστε μαζί μας %s "
|
||||
"στο:"
|
||||
|
||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:167
|
||||
msgid "your provider"
|
||||
@@ -310,8 +311,8 @@ msgstr ""
|
||||
msgid ""
|
||||
"Previous attempt to connect reported your credentials are being changed."
|
||||
msgstr ""
|
||||
"Η προηγούμενη προσπάθεια να συνδεθείτε ανέφερε ότι τα διαπιστευτήρια σας ότι"
|
||||
" έχουν αλλάξει."
|
||||
"Η προηγούμενη προσπάθεια να συνδεθείτε ανέφερε ότι τα διαπιστευτήρια σας "
|
||||
"έχουν αλλάξει."
|
||||
|
||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:253
|
||||
msgid "Previous attempt to connect failed."
|
||||
@@ -381,9 +382,9 @@ msgid ""
|
||||
"A semicolon delimited list of acceptable server FQDN names; blank to skip "
|
||||
"name check; Unicode characters allowed"
|
||||
msgstr ""
|
||||
"Ένα ερωτηματικό οριοθετεί τη λίστα τα ονόματα των αποδεκτών εξυπηρετητών "
|
||||
"FQDN; Αφήστε κενό για να παρακάμψετε την επιλογή ονόματος; Eπιτρέπονται οι "
|
||||
"χαρακτήρες Unicode"
|
||||
"Ένα semicolon οριοθετεί τη λίστα με τα αποδεκτά ονόματα χώρου FQDN "
|
||||
"εξυπηρετητών· αφήστε κενό για να παρακάμψετε την επιλογή ονόματος· "
|
||||
"επιτρέπονται οι χαρακτήρες unicode"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:81
|
||||
msgid "(Example: foo.bar.com;server2.bar.com)"
|
||||
@@ -433,9 +434,8 @@ msgid ""
|
||||
"Your identity (username@domain) to override one from certificate; or blank "
|
||||
"to use one provided in certificate"
|
||||
msgstr ""
|
||||
"Η ταυτότητά σας (username@domain) για να παρακάμψετε ένα από το "
|
||||
"πιστοποιητικό; ή κενό για να χρησιμοποιήσετε ένα που παρέχεται στο "
|
||||
"πιστοποιητικό"
|
||||
"Η ταυτότητά σας (username@domain) για να παρακάμψετε ένα πιστοποιητικό· ή "
|
||||
"κενό για να χρησιμοποιήσετε όποια ταυτότητα παρέχεται από πιστοποιητικό"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:176
|
||||
msgid "(Example: user@contoso.com)"
|
||||
@@ -507,7 +507,8 @@ msgstr "Χρησιμοποιήστε &κενή εξωτερική ταυτότη
|
||||
|
||||
#: lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||
msgid "Ommit my user name and use @mydomain.org only"
|
||||
msgstr "Παράλειψε το όνομα χρήστη μου και χρησιμοποἰησε μόνο το @mydomain.org"
|
||||
msgstr ""
|
||||
"Παραλείψτε το όνομα χρήστη μου και χρησιμοποιήστε μόνο το @mydomain.org"
|
||||
|
||||
#: lib/TTLS_UI/res/wxTTLS_UI.cpp:48
|
||||
msgid "&Custom outer identity:"
|
||||
@@ -532,15 +533,15 @@ msgstr ""
|
||||
#: lib/TTLS_UI/src/Module.cpp:277 lib/TTLS_UI/src/Module.cpp:287
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:692
|
||||
msgid "Writing credentials failed."
|
||||
msgstr "Το γράψιμο των διαπιστευτηρίων απέτυχε."
|
||||
msgstr "Η εγγραφή των διαπιστευτηρίων απέτυχε."
|
||||
|
||||
#: lib/TTLS_UI/src/TTLS_UI.cpp:108 lib/TTLS_UI/src/TTLS_UI.cpp:235
|
||||
msgid "Inner Authentication"
|
||||
msgstr "Εσωτερική Πιστοποίηση"
|
||||
msgstr "Ταυτοποίηση εσωτερικής ταυτότητας"
|
||||
|
||||
#: lib/TTLS_UI/src/TTLS_UI.cpp:114
|
||||
msgid "Select inner authentication method from the list"
|
||||
msgstr "Επιλέξτε την μέθοδο της εσωτερικής πιστοποίησης από τη λίστα"
|
||||
msgstr "Επιλέξτε την μέθοδο ταυτοποίησης εσωτερικής ταυτότητας από τη λίστα"
|
||||
|
||||
#: lib/TTLS_UI/src/TTLS_UI.cpp:116
|
||||
msgid "PAP"
|
||||
@@ -552,14 +553,14 @@ msgstr "MSCHAPv2"
|
||||
|
||||
#: lib/TTLS_UI/src/TTLS_UI.cpp:123 lib/TTLS_UI/src/TTLS_UI.cpp:262
|
||||
msgid "Outer Authentication"
|
||||
msgstr "Εξωτερική Πιστοποίηση"
|
||||
msgstr "Ταυτοποίηση εξωτερικής ταυτότητας"
|
||||
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:289
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Are you sure you want to permanently remove %ls provider from configuration?"
|
||||
msgstr ""
|
||||
"Είστε βέβαιοι ότι θέλετε να καταργήσετε οριστικά τον πάροχο% ls από τη "
|
||||
"Είστε βέβαιοι ότι θέλετε να καταργήσετε οριστικά τον πάροχο %ls από τη "
|
||||
"διαμόρφωση;"
|
||||
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:289
|
||||
|
@@ -5,7 +5,7 @@ msgstr ""
|
||||
"Project-Id-Version: EAPMethods\n"
|
||||
"POT-Creation-Date: 2016-09-06 14:06+0200\n"
|
||||
"PO-Revision-Date: 2016-06-02 12:27+0200\n"
|
||||
"Last-Translator: Simon Rozman <simon@rozman.si>, 2016\n"
|
||||
"Last-Translator: Rimas Kudelis <rq@akl.lt>, 2016\n"
|
||||
"Language-Team: Lithuanian (https://www.transifex.com/eduroam_devel/teams/11799/lt/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -24,132 +24,146 @@ msgstr ""
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:37
|
||||
msgid "+"
|
||||
msgstr ""
|
||||
msgstr "+"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:38
|
||||
msgid "Adds new provider"
|
||||
msgstr ""
|
||||
msgstr "Pridėti naują teikėją"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:42
|
||||
msgid "-"
|
||||
msgstr ""
|
||||
msgstr "−"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:43
|
||||
msgid "Removes selected provider"
|
||||
msgstr ""
|
||||
msgstr "Pašalinti pažymėtą teikėją"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:47
|
||||
msgid "Advanced..."
|
||||
msgstr ""
|
||||
msgstr "Išsamiau…"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:48
|
||||
msgid "Opens dialog with provider settings"
|
||||
msgstr ""
|
||||
msgstr "Atverti teikėjo parametrų langą"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:230 lib/EAPBase_UI/res/wxEAP_UI.cpp:355
|
||||
msgid "Client Credentials"
|
||||
msgstr ""
|
||||
msgstr "Kliento kredencialai"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:241
|
||||
msgid "Manage credentials used to connect."
|
||||
msgstr ""
|
||||
msgstr "Tvarkyti kredencialus, naudojamus jungiantis."
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:254
|
||||
msgid "Use &own credentials:"
|
||||
msgstr ""
|
||||
msgstr "Naudoti &savo kredencialus:"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:255
|
||||
msgid "Select this option if you have your unique credentials to connect"
|
||||
msgstr ""
|
||||
"Pažymėkite šią parinktį, jei turite savo asmeninius prisijungimo "
|
||||
"kredencialus"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:260
|
||||
msgid "Your credentials loaded from Windows Credential Manager"
|
||||
msgstr ""
|
||||
msgstr "Jūsų kredencialai įkelti iš „Windows“ kredencialų tvarkytuvo"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:270
|
||||
msgid "&Clear Credentials"
|
||||
msgstr ""
|
||||
msgstr "&Valyti kredencialus"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:271
|
||||
msgid ""
|
||||
"Click to clear your credentials from Credential Manager.\n"
|
||||
"Note: You will be prompted to enter credentials when connecting."
|
||||
msgstr ""
|
||||
"Spustelėkite, jei norite pašalinti savo kredencialus iš Kredencialų tvarkytuvo.\n"
|
||||
"Pastaba: jūsų kredencialų bus paprašyta prisijungimo metu."
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:275 lib/EAPBase_UI/res/wxEAP_UI.cpp:308
|
||||
msgid "&Set Credentials..."
|
||||
msgstr ""
|
||||
msgstr "&Nustatyti kredencialus…"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:276 lib/EAPBase_UI/res/wxEAP_UI.cpp:309
|
||||
msgid "Click here to set or modify your credentials"
|
||||
msgstr ""
|
||||
msgstr "Spustelėkite čia savo kredencialams nustatyti ar pakeisti"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:292
|
||||
msgid "Use &pre-shared credentials:"
|
||||
msgstr ""
|
||||
msgstr "Naudoti išankstinio bendrinimo kredencialus:"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:293
|
||||
msgid "Select this options if all clients connect using the same credentials"
|
||||
msgstr ""
|
||||
"Pažymėkite šią parinktį, jei visi klientai jungiasi naudodamiesi tais "
|
||||
"pačiais kredencialais"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:298
|
||||
msgid "Common (pre-shared) credentials"
|
||||
msgstr ""
|
||||
msgstr "Išankstinio bendrinimo kredencialai"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:366
|
||||
msgid "Please provide your user ID and password."
|
||||
msgstr ""
|
||||
msgstr "Įveskite savo vartotojo ID ir slaptažodį."
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:376
|
||||
msgid "User ID:"
|
||||
msgstr ""
|
||||
msgstr "Vartotojo ID:"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:381
|
||||
msgid "Enter your user name here (user@domain.org, DOMAIN\\User, etc.)"
|
||||
msgstr ""
|
||||
"Čia įveskite savo vartotojo vardą (vartotojas@domenas.lt, "
|
||||
"DOMENAS\\Vartotojas ar kt.)"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:385
|
||||
msgid "Password:"
|
||||
msgstr ""
|
||||
msgstr "Slaptažodis:"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:390
|
||||
msgid "Enter your password here"
|
||||
msgstr ""
|
||||
msgstr "Čia įveskite savo slaptažodį"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:397 lib/TLS_UI/res/wxTLS_UI.cpp:183
|
||||
msgid "&Remember"
|
||||
msgstr ""
|
||||
msgstr "Įsi&minti"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:398
|
||||
msgid "Check if you would like to save username and password"
|
||||
msgstr ""
|
||||
"Pažymėkite, jei norite, kad jūsų vartotojo vardas ir slaptažodis būtų "
|
||||
"įsiminti"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:420
|
||||
msgid "Your Organization"
|
||||
msgstr ""
|
||||
msgstr "Jūsų organizacija"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:431
|
||||
msgid ""
|
||||
"Describe your organization to customize user prompts. When organization is "
|
||||
"introduced, end-users find program messages easier to understand and act."
|
||||
msgstr ""
|
||||
"Pristatykite savo organizaciją. Pagal tai bus tinkinamos užklausos "
|
||||
"vartotojams. Pristačius organizaciją, vartotojams bus paprasčiau suprasti "
|
||||
"programos pranešimus ir jais vadovautis."
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:438
|
||||
msgid "Your organization &name:"
|
||||
msgstr ""
|
||||
msgstr "Organizacijos &pavadinimas:"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:443
|
||||
msgid ""
|
||||
"Your organization name as it will appear on helpdesk contact notifications"
|
||||
msgstr ""
|
||||
"Organizacijos pavadinimas bus rodomas, siūlant kreiptis į pagalbos tarnybą"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:447
|
||||
msgid "(Keep it short, please)"
|
||||
msgstr ""
|
||||
msgstr "(Pasistenkite, kad jis būtų neilgas)"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:457
|
||||
msgid "Helpdesk contact &information:"
|
||||
msgstr ""
|
||||
msgstr "Pagalbos tarnybos kontaktinė &informacija:"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:467
|
||||
msgid "¶"
|
||||
@@ -157,7 +171,7 @@ msgstr "¶"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:474
|
||||
msgid "Your helpdesk website address"
|
||||
msgstr ""
|
||||
msgstr "Pagalbos tarnybos svetainės adresas"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:478
|
||||
msgid "*"
|
||||
@@ -165,7 +179,7 @@ msgstr "*"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:485
|
||||
msgid "Your helpdesk e-mail address"
|
||||
msgstr ""
|
||||
msgstr "Pagalbos tarnybos el. pašto adresas"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:489
|
||||
msgid ")"
|
||||
@@ -173,21 +187,23 @@ msgstr ")"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:496
|
||||
msgid "Your helpdesk phone number"
|
||||
msgstr ""
|
||||
msgstr "Pagalbos tarnybos telefono numeris"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:524
|
||||
msgid "Provider Unique Identifier"
|
||||
msgstr ""
|
||||
msgstr "Teikėjo unikalus identifikatorius"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:535
|
||||
msgid ""
|
||||
"Assign your organization a unique ID to allow sharing the same credential "
|
||||
"set across different network profiles."
|
||||
msgstr ""
|
||||
"Suteikite savo organizacijai unikalų identifikatorių, kad tais pačiais "
|
||||
"kredencialais galima būtų naudotis su skirtingais tinklo profiliais."
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:542
|
||||
msgid "&Namespace:"
|
||||
msgstr ""
|
||||
msgstr "&Vardų sritis:"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:546
|
||||
msgid "urn:RFC4282:realm"
|
||||
@@ -199,62 +215,68 @@ msgstr "urn:uuid"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:558
|
||||
msgid "Provider unique &identifier:"
|
||||
msgstr ""
|
||||
msgstr "Teikėjo unikalus &identifikatorius:"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:563
|
||||
msgid "Your organization ID to assign same credentials from other profiles"
|
||||
msgstr ""
|
||||
"Organizacijos identifikatorius kredencialams iš kitų profilių priskirti"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:588
|
||||
msgid "Configuration Lock"
|
||||
msgstr ""
|
||||
msgstr "Užrakinti konfigūraciją"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:599
|
||||
msgid ""
|
||||
"Your configuration can be locked to prevent accidental modification by end-"
|
||||
"users. Users will only be allowed to enter credentials."
|
||||
msgstr ""
|
||||
"Konfigūraciją galima užrakinti, siekiant išvengti atsitiktinių pakeitimų iš "
|
||||
"vartotojų pusės. Tokiu atveju vartotojams leidžiama įvesti tik kredencialus."
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:606
|
||||
msgid ""
|
||||
"&Lock this configuration and prevent any further modification via user "
|
||||
"interface."
|
||||
msgstr ""
|
||||
"Už&rakinti šią konfigūraciją ir neleisti tolesnių keitimų naudojantis "
|
||||
"vartotojo sąsaja."
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:609
|
||||
msgid "(Warning: Once locked, you can not revert using this dialog!)"
|
||||
msgstr ""
|
||||
"(Įspėjimas: užrakinę konfigūraciją, jos atrakinti šiame lange nebegalėsite!)"
|
||||
|
||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:98
|
||||
#, c-format
|
||||
msgid "%s Credentials"
|
||||
msgstr ""
|
||||
msgstr "%s kredencialai"
|
||||
|
||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:123 lib/EAPBase_UI/include/EAP_UI.h:352
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:362 lib/EAPBase_UI/res/wxEAP_UI.h:119
|
||||
msgid "EAP Credentials"
|
||||
msgstr ""
|
||||
msgstr "EAP kredencialai"
|
||||
|
||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:166
|
||||
#, c-format
|
||||
msgid "For additional help and instructions, please contact %s at:"
|
||||
msgstr ""
|
||||
msgstr "Norėdami papildomos informacijos ar pagalbos, kreipkitės į %s:"
|
||||
|
||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:167
|
||||
msgid "your provider"
|
||||
msgstr ""
|
||||
msgstr "savo teikėją"
|
||||
|
||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:186
|
||||
msgid "Open the default web browser"
|
||||
msgstr ""
|
||||
msgstr "Atverti numatytąją naršyklę"
|
||||
|
||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:197
|
||||
msgid "Open your e-mail program"
|
||||
msgstr ""
|
||||
msgstr "Atverti el. pašto programą"
|
||||
|
||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:208
|
||||
msgid "Dial the phone number"
|
||||
msgstr ""
|
||||
msgstr "Rinkti telefono numerį"
|
||||
|
||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:228
|
||||
#, c-format
|
||||
@@ -262,284 +284,305 @@ msgid ""
|
||||
"%s has pre-set parts of this configuration. Those parts are locked to "
|
||||
"prevent accidental modification."
|
||||
msgstr ""
|
||||
"%s įrašė ir užrakino dalį konfigūracijos. Užrakintų parametrų keisti "
|
||||
"negalėsite."
|
||||
|
||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:229
|
||||
msgid "Your provider"
|
||||
msgstr ""
|
||||
msgstr "Jūsų teikėjas"
|
||||
|
||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:250
|
||||
msgid "Previous attempt to connect reported invalid credentials."
|
||||
msgstr ""
|
||||
"Ankstesniojo bandymo prisijungti metu grąžintas atsakymas, jog kredencialai "
|
||||
"netinkami."
|
||||
|
||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:251
|
||||
msgid "Previous attempt to connect reported your credentials expired."
|
||||
msgstr ""
|
||||
"Ankstesniojo bandymo prisijungti metu grąžintas atsakymas, jog jūsų "
|
||||
"kredencialai nebegalioja."
|
||||
|
||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:252
|
||||
msgid ""
|
||||
"Previous attempt to connect reported your credentials are being changed."
|
||||
msgstr ""
|
||||
"Ankstesniojo bandymo prisijungti metu grąžintas atsakymas, jog jūsų "
|
||||
"kredencialai yra keičiami."
|
||||
|
||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:253
|
||||
msgid "Previous attempt to connect failed."
|
||||
msgstr ""
|
||||
msgstr "Ankstesnysis bandymas prisijungti nepavyko."
|
||||
|
||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:254
|
||||
msgid "Please, make sure your credentials are correct, or try again later."
|
||||
msgstr ""
|
||||
"Įsitikinkite, jog jūsų kredencialai teisingi, arba bandykite iš naujo "
|
||||
"vėliau."
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:17
|
||||
msgid "Server Trust"
|
||||
msgstr ""
|
||||
msgstr "Patikimi serveriai"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:28
|
||||
msgid ""
|
||||
"Describe the servers you trust to prevent credential interception in case of"
|
||||
" man-in-the-middle attacks."
|
||||
msgstr ""
|
||||
"Aprašykite patikimus serverius, kad būtų išvengta neteisėto kredencialų "
|
||||
"perėmimo."
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:35
|
||||
msgid "Acceptable Certificate Authorities:"
|
||||
msgstr ""
|
||||
msgstr "Patikimos sertifikavimo tarnybos:"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:40
|
||||
msgid "List of certificate authorities server's certificate must be issued by"
|
||||
msgstr ""
|
||||
" Sertifikavimo tarnybų, galinčių išduoti serverio sertifikatą, sąrašas"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:47
|
||||
msgid "Add CA from Store..."
|
||||
msgstr ""
|
||||
msgstr "Įtraukti ST iš saugyklos…"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:48
|
||||
msgid ""
|
||||
"Adds a new certificate authority from the certificate store to the list"
|
||||
msgstr ""
|
||||
"Įtraukti į sąrašą naują sertifikavimo tarnybą iš sertifikatų saugyklos"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:52
|
||||
msgid "Add CA from File..."
|
||||
msgstr ""
|
||||
msgstr "Įtraukti ST iš failo"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:53
|
||||
msgid "Adds a new certificate authority from the file to the list"
|
||||
msgstr ""
|
||||
msgstr "Įtraukti į sąrašą naują sertifikavimo tarnybą iš failo"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:57
|
||||
msgid "&Remove CA"
|
||||
msgstr ""
|
||||
msgstr "&Šalinti ST"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:59
|
||||
msgid "Removes selected certificate authorities from the list"
|
||||
msgstr ""
|
||||
msgstr "Pašalinti pažymėtą sertifikavimo tarnybą iš sąrašo"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:72
|
||||
msgid "Acceptable server &names:"
|
||||
msgstr ""
|
||||
msgstr "Patikimi serverio &vardai:"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:77
|
||||
msgid ""
|
||||
"A semicolon delimited list of acceptable server FQDN names; blank to skip "
|
||||
"name check; Unicode characters allowed"
|
||||
msgstr ""
|
||||
"Kabliataškiais atskirtų patikimų serverių FQDN vardų sąrašas. Palikite "
|
||||
"tuščią, jei norite praleisti šį patikrinimą. Unikodo rašmenys leidžiami"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:81
|
||||
msgid "(Example: foo.bar.com;server2.bar.com)"
|
||||
msgstr ""
|
||||
msgstr "(Pvz.: vienas.įstaiga.lt;du.įstaiga.lt)"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:120
|
||||
msgid "TLS Client Certificate"
|
||||
msgstr ""
|
||||
msgstr "TLS kliento sertifikatas"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:131
|
||||
msgid "Please select your client certificate to use for authentication."
|
||||
msgstr ""
|
||||
msgstr "Pasirinkite kliento sertifikatą, naudotiną šio autentifikavimo metu."
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:138
|
||||
msgid "Co&nnect without providing a client certificate"
|
||||
msgstr ""
|
||||
msgstr "Jungtis &nepateikiant kliento sertifikavo"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:139
|
||||
msgid ""
|
||||
"Select if your server does not require you to provide a client certificate"
|
||||
msgstr ""
|
||||
msgstr "Pažymėkite, jei serveris nereikalauja pateikti kliento sertifikatą"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:146
|
||||
msgid "Use the following &certificate:"
|
||||
msgstr ""
|
||||
msgstr "Naudoti šį &sertifikatą:"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:147
|
||||
msgid "Select if you need to provide a client certificate when connecting"
|
||||
msgstr ""
|
||||
msgstr "Pažymėkite, jei jungiantis privaloma pateikti kliento sertifikatą"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:154
|
||||
msgid "Client certificate to use for authentication"
|
||||
msgstr ""
|
||||
msgstr "Kliento sertifikatas autentifikavimui"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:167
|
||||
msgid "Custom &identity:"
|
||||
msgstr ""
|
||||
msgstr "&Tinkinta tapatybė:"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:172
|
||||
msgid ""
|
||||
"Your identity (username@domain) to override one from certificate; or blank "
|
||||
"to use one provided in certificate"
|
||||
msgstr ""
|
||||
"Jūsų tapatybė (vartotojas@domenas), naudotina vietoje nurodytos sertifikate."
|
||||
" Palikite lauką tuščią sertifikate nurodytai tapatybei naudoti"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:176
|
||||
msgid "(Example: user@contoso.com)"
|
||||
msgstr ""
|
||||
msgstr "(Pvz.: vartotojas@įstaiga.lt)"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:184
|
||||
msgid "Check if you would like to save certificate selection"
|
||||
msgstr ""
|
||||
msgstr "Pažymėkite, jei norite įsiminti pasirinktą sertifikatą"
|
||||
|
||||
#: lib/TLS_UI/src/TLS_UI.cpp:118
|
||||
#, c-format
|
||||
msgid "Invalid character in host name found: %c"
|
||||
msgstr ""
|
||||
msgstr "Kompiuterio varde aptiktas netinkamas simbolis: %c"
|
||||
|
||||
#: lib/TLS_UI/src/TLS_UI.cpp:118
|
||||
msgid "Validation conflict"
|
||||
msgstr ""
|
||||
msgstr "Patikra nesėkminga"
|
||||
|
||||
#: lib/TLS_UI/src/TLS_UI.cpp:511
|
||||
msgid "Add Certificate"
|
||||
msgstr ""
|
||||
msgstr "Pridėti sertifikatą"
|
||||
|
||||
#: lib/TLS_UI/src/TLS_UI.cpp:512
|
||||
msgid "Certificate Files (*.cer;*.crt;*.der;*.p7b;*.pem)"
|
||||
msgstr ""
|
||||
msgstr "Sertifikatų failai (*.cer;*.crt;*.der;*.p7b;*.pem)"
|
||||
|
||||
#: lib/TLS_UI/src/TLS_UI.cpp:513
|
||||
msgid "X.509 Certificate Files (*.cer;*.crt;*.der;*.pem)"
|
||||
msgstr ""
|
||||
msgstr "X.509 sertifikatų failai (*.cer;*.crt;*.der;*.pem)"
|
||||
|
||||
#: lib/TLS_UI/src/TLS_UI.cpp:514
|
||||
msgid "PKCS #7 Certificate Files (*.p7b)"
|
||||
msgstr ""
|
||||
msgstr "PKCS #7 sertifikatų failai (*.p7b)"
|
||||
|
||||
#: lib/TLS_UI/src/TLS_UI.cpp:515
|
||||
msgid "All Files (*.*)"
|
||||
msgstr ""
|
||||
msgstr "Visi failai (*.*)"
|
||||
|
||||
#: lib/TLS_UI/src/TLS_UI.cpp:531
|
||||
#, c-format
|
||||
msgid "Invalid or unsupported certificate file %s"
|
||||
msgstr ""
|
||||
msgstr "Sugadintas arba nepalaikomo tipo sertifikato failas – %s"
|
||||
|
||||
#: lib/TLS_UI/src/TLS_UI.cpp:531
|
||||
msgid "Error"
|
||||
msgstr ""
|
||||
msgstr "Klaida"
|
||||
|
||||
#: lib/TTLS_UI/res/wxTTLS_UI.cpp:17
|
||||
msgid "Outer Identity"
|
||||
msgstr ""
|
||||
msgstr "Išorinė tapatybė"
|
||||
|
||||
#: lib/TTLS_UI/res/wxTTLS_UI.cpp:28
|
||||
msgid "Select the user ID supplicant introduces itself as to authenticator:"
|
||||
msgstr ""
|
||||
"Pasirinkite vartotojo identifikatorių, kuriuo prieigos prašomoji biblioteka "
|
||||
"prisistatys atpažintuvui:"
|
||||
|
||||
#: lib/TTLS_UI/res/wxTTLS_UI.cpp:35
|
||||
msgid "&True identity"
|
||||
msgstr ""
|
||||
msgstr "&Tikroji tapatybė"
|
||||
|
||||
#: lib/TTLS_UI/res/wxTTLS_UI.cpp:36
|
||||
msgid "Use my true user name"
|
||||
msgstr ""
|
||||
msgstr "Naudoti mano tikrąjį vartotojo vardą"
|
||||
|
||||
#: lib/TTLS_UI/res/wxTTLS_UI.cpp:40
|
||||
msgid "Use &empty outer identity (RFC 4822)"
|
||||
msgstr ""
|
||||
msgstr "Naudoti &tuščią išorinę tapatybę (RFC 4822)"
|
||||
|
||||
#: lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||
msgid "Ommit my user name and use @mydomain.org only"
|
||||
msgstr ""
|
||||
msgstr "Praleisti mano naudotojo vardą ir naudoti tik @domenas.lt"
|
||||
|
||||
#: lib/TTLS_UI/res/wxTTLS_UI.cpp:48
|
||||
msgid "&Custom outer identity:"
|
||||
msgstr ""
|
||||
msgstr "&Tinkinta išorinė tapatybė:"
|
||||
|
||||
#: lib/TTLS_UI/res/wxTTLS_UI.cpp:49
|
||||
msgid "Specify custom outer identity"
|
||||
msgstr ""
|
||||
msgstr "Nurodykite tinkintą išorinę tapatybę"
|
||||
|
||||
#: lib/TTLS_UI/res/wxTTLS_UI.cpp:54
|
||||
msgid "Custom outer identity to use"
|
||||
msgstr ""
|
||||
msgstr "Naudotina tinkinta išorinė tapatybė"
|
||||
|
||||
#: lib/TTLS_UI/src/Module.cpp:275 lib/TTLS_UI/src/Module.cpp:285
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:689
|
||||
#, c-format
|
||||
msgid "Error writing credentials to Credential Manager: %hs (error %u)"
|
||||
msgstr ""
|
||||
msgstr "Klaida įrašant kredencialus į Kredencialų tvarkytuvą: %hs (klaida %u)"
|
||||
|
||||
#: lib/TTLS_UI/src/Module.cpp:277 lib/TTLS_UI/src/Module.cpp:287
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:692
|
||||
msgid "Writing credentials failed."
|
||||
msgstr ""
|
||||
msgstr "Kredencialų įrašyti nepavyko."
|
||||
|
||||
#: lib/TTLS_UI/src/TTLS_UI.cpp:108 lib/TTLS_UI/src/TTLS_UI.cpp:235
|
||||
msgid "Inner Authentication"
|
||||
msgstr ""
|
||||
msgstr "Vidinis autentifikavimas"
|
||||
|
||||
#: lib/TTLS_UI/src/TTLS_UI.cpp:114
|
||||
msgid "Select inner authentication method from the list"
|
||||
msgstr ""
|
||||
msgstr "Pasirinkite vidinio autentifikavimo metodą iš sąrašo"
|
||||
|
||||
#: lib/TTLS_UI/src/TTLS_UI.cpp:116
|
||||
msgid "PAP"
|
||||
msgstr ""
|
||||
msgstr "PAP"
|
||||
|
||||
#: lib/TTLS_UI/src/TTLS_UI.cpp:118
|
||||
msgid "MSCHAPv2"
|
||||
msgstr ""
|
||||
msgstr "MSCHAPv2"
|
||||
|
||||
#: lib/TTLS_UI/src/TTLS_UI.cpp:123 lib/TTLS_UI/src/TTLS_UI.cpp:262
|
||||
msgid "Outer Authentication"
|
||||
msgstr ""
|
||||
msgstr "Išorinis autentifikavimas"
|
||||
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:289
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Are you sure you want to permanently remove %ls provider from configuration?"
|
||||
msgstr ""
|
||||
"Ar tikrai norite visam laikui pašalinti teikėją „%ls“ iš konfigūracijos?"
|
||||
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:289
|
||||
msgid "Warning"
|
||||
msgstr ""
|
||||
msgstr "Įspėjimas"
|
||||
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:549
|
||||
msgid "Provider Settings"
|
||||
msgstr ""
|
||||
msgstr "Teikėjo parametrai"
|
||||
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:705
|
||||
#, c-format
|
||||
msgid "Deleting credentials failed (error %u)."
|
||||
msgstr ""
|
||||
msgstr "Kredencialų pašalinti nepavyko (klaida %u)."
|
||||
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:739
|
||||
#, c-format
|
||||
msgid "<error %u>"
|
||||
msgstr ""
|
||||
msgstr "<klaida %u>"
|
||||
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:743
|
||||
msgid "<error>"
|
||||
msgstr ""
|
||||
msgstr "<klaida>"
|
||||
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:754 lib/EAPBase_UI/include/EAP_UI.h:764
|
||||
msgid "<empty>"
|
||||
msgstr ""
|
||||
msgstr "<tuščias>"
|
||||
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:754 lib/EAPBase_UI/include/EAP_UI.h:764
|
||||
msgid "<blank ID>"
|
||||
msgstr ""
|
||||
msgstr "<tuščias ID>"
|
||||
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:964
|
||||
msgid "<Your Organization>"
|
||||
msgstr ""
|
||||
msgstr "<Jūsų organizacija>"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.h:69
|
||||
msgid "EAP Connection Configuration"
|
||||
msgstr ""
|
||||
msgstr "EAP ryšio konfigūracija"
|
||||
|
||||
#: EAPMethods/MSIBuild/En.Win32.Release.Feature-2.idtx:3
|
||||
#: EAPMethods/MSIBuild/En.x64.Release.Feature-2.idtx:3
|
||||
@@ -549,19 +592,19 @@ msgstr "1257"
|
||||
#: EAPMethods/MSIBuild/En.Win32.Release.Feature-2.idtx:4
|
||||
#: EAPMethods/MSIBuild/En.x64.Release.Feature-2.idtx:4
|
||||
msgid "EAP Methods"
|
||||
msgstr ""
|
||||
msgstr "EAP metodai"
|
||||
|
||||
#: EAPMethods/MSIBuild/En.Win32.Release.Feature-2.idtx:4
|
||||
#: EAPMethods/MSIBuild/En.x64.Release.Feature-2.idtx:4
|
||||
msgid "Modules to support individual EAP methods"
|
||||
msgstr ""
|
||||
msgstr "Moduliai atskirų EAP metodų palaikymui"
|
||||
|
||||
#: EAPMethods/MSIBuild/En.Win32.Release.Feature-2.idtx:5
|
||||
#: EAPMethods/MSIBuild/En.x64.Release.Feature-2.idtx:5
|
||||
msgid "TTLS"
|
||||
msgstr ""
|
||||
msgstr "TTLS"
|
||||
|
||||
#: EAPMethods/MSIBuild/En.Win32.Release.Feature-2.idtx:5
|
||||
#: EAPMethods/MSIBuild/En.x64.Release.Feature-2.idtx:5
|
||||
msgid "Tunneled Transport Layer Security"
|
||||
msgstr ""
|
||||
msgstr "Tunneled Transport Layer Security"
|
||||
|
@@ -5,7 +5,7 @@ msgstr ""
|
||||
"Project-Id-Version: EAPMethods\n"
|
||||
"POT-Creation-Date: 2016-09-06 14:06+0200\n"
|
||||
"PO-Revision-Date: 2016-06-02 12:27+0200\n"
|
||||
"Last-Translator: Simon Rozman <simon@rozman.si>, 2016\n"
|
||||
"Last-Translator: Tom Ivar Myren <tom.myren@uninett.no>, 2016\n"
|
||||
"Language-Team: Norwegian Bokmål (https://www.transifex.com/eduroam_devel/teams/11799/nb/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -24,73 +24,79 @@ msgstr ""
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:37
|
||||
msgid "+"
|
||||
msgstr ""
|
||||
msgstr "+"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:38
|
||||
msgid "Adds new provider"
|
||||
msgstr ""
|
||||
msgstr "Legger til ny tilbyder"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:42
|
||||
msgid "-"
|
||||
msgstr ""
|
||||
msgstr "-"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:43
|
||||
msgid "Removes selected provider"
|
||||
msgstr ""
|
||||
msgstr "Fjerner valgte tilbyder"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:47
|
||||
msgid "Advanced..."
|
||||
msgstr ""
|
||||
msgstr "Avansert..."
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:48
|
||||
msgid "Opens dialog with provider settings"
|
||||
msgstr ""
|
||||
msgstr "Åpner dialog med tilbyder innstillinger"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:230 lib/EAPBase_UI/res/wxEAP_UI.cpp:355
|
||||
msgid "Client Credentials"
|
||||
msgstr ""
|
||||
msgstr "Påloggingsinformasjon"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:241
|
||||
msgid "Manage credentials used to connect."
|
||||
msgstr ""
|
||||
msgstr "Administrer påloggingsinformasjon som brukes til å koble til."
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:254
|
||||
msgid "Use &own credentials:"
|
||||
msgstr ""
|
||||
msgstr "Bruk &egen påloggingsinformasjon:"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:255
|
||||
msgid "Select this option if you have your unique credentials to connect"
|
||||
msgstr ""
|
||||
"Velg dette alternativet hvis du har din unike påloggingsinformasjon for å "
|
||||
"koble til"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:260
|
||||
msgid "Your credentials loaded from Windows Credential Manager"
|
||||
msgstr ""
|
||||
msgstr "Din påloggingsinformasjon lastet fra Windows Credential Manager"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:270
|
||||
msgid "&Clear Credentials"
|
||||
msgstr ""
|
||||
msgstr "&Fjern påloggingsinformasjon"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:271
|
||||
msgid ""
|
||||
"Click to clear your credentials from Credential Manager.\n"
|
||||
"Note: You will be prompted to enter credentials when connecting."
|
||||
msgstr ""
|
||||
"Klikk for å fjerne påloggingsinformasjon fra Credential Manager.\n"
|
||||
"Merk: Du vil bli bedt om å oppgi påloggingsinformasjon når du kobler til."
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:275 lib/EAPBase_UI/res/wxEAP_UI.cpp:308
|
||||
msgid "&Set Credentials..."
|
||||
msgstr ""
|
||||
msgstr "&Sett påloggingsinformasjon"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:276 lib/EAPBase_UI/res/wxEAP_UI.cpp:309
|
||||
msgid "Click here to set or modify your credentials"
|
||||
msgstr ""
|
||||
msgstr "Klikk her for å sette eller endre påloggingsinformasjon"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:292
|
||||
msgid "Use &pre-shared credentials:"
|
||||
msgstr ""
|
||||
msgstr "Bruk &pre-shared påloggingsinformasjon:"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:293
|
||||
msgid "Select this options if all clients connect using the same credentials"
|
||||
msgstr ""
|
||||
"Velg dette alternativet hvis alle klienter kobler til med samme "
|
||||
"påloggingsinformasjon"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:298
|
||||
msgid "Common (pre-shared) credentials"
|
||||
|
@@ -56,7 +56,7 @@ msgstr "Zarządzaj poświadczeniami logowania."
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:254
|
||||
msgid "Use &own credentials:"
|
||||
msgstr ""
|
||||
msgstr "Użyj &własnych poświadczeń:"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:255
|
||||
msgid "Select this option if you have your unique credentials to connect"
|
||||
@@ -68,17 +68,19 @@ msgstr "Twoje poświadczenia załadowane z Managera poświadczeń systemu Window
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:270
|
||||
msgid "&Clear Credentials"
|
||||
msgstr ""
|
||||
msgstr "&Usuń poświadczenia"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:271
|
||||
msgid ""
|
||||
"Click to clear your credentials from Credential Manager.\n"
|
||||
"Note: You will be prompted to enter credentials when connecting."
|
||||
msgstr ""
|
||||
"Kliknij aby usunąć poświadczenia z Menadżera poświadczeń.\n"
|
||||
"Uwaga: Przy ponownym połączeniu zostaniesz poproszony o wprowadzenie poświadczeń."
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:275 lib/EAPBase_UI/res/wxEAP_UI.cpp:308
|
||||
msgid "&Set Credentials..."
|
||||
msgstr ""
|
||||
msgstr "&Ustaw poświadczenia"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:276 lib/EAPBase_UI/res/wxEAP_UI.cpp:309
|
||||
msgid "Click here to set or modify your credentials"
|
||||
@@ -86,7 +88,7 @@ msgstr "Kliknij tutaj, aby zmodyfikować poświadczenia logowania"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:292
|
||||
msgid "Use &pre-shared credentials:"
|
||||
msgstr ""
|
||||
msgstr "Użyj pre-konfigurowanych poświadczeń"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:293
|
||||
msgid "Select this options if all clients connect using the same credentials"
|
||||
@@ -95,7 +97,7 @@ msgstr ""
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:298
|
||||
msgid "Common (pre-shared) credentials"
|
||||
msgstr ""
|
||||
msgstr "Wspólne (pre-konfigurowane) poświadczenia"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:366
|
||||
msgid "Please provide your user ID and password."
|
||||
@@ -121,7 +123,7 @@ msgstr "Wprowadź hasło"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:397 lib/TLS_UI/res/wxTLS_UI.cpp:183
|
||||
msgid "&Remember"
|
||||
msgstr ""
|
||||
msgstr "&Zapamiętaj"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:398
|
||||
msgid "Check if you would like to save username and password"
|
||||
@@ -136,10 +138,12 @@ msgid ""
|
||||
"Describe your organization to customize user prompts. When organization is "
|
||||
"introduced, end-users find program messages easier to understand and act."
|
||||
msgstr ""
|
||||
"Opisz Twoją instytucję, aby spersonalizować komunikaty. Jeżeli instytucja "
|
||||
"jest ustawiona użytkownicy łatwiej rozumieją komunikaty i reagują na nie. "
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:438
|
||||
msgid "Your organization &name:"
|
||||
msgstr ""
|
||||
msgstr "&Nazwa Twojej instytucji:"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:443
|
||||
msgid ""
|
||||
@@ -154,7 +158,7 @@ msgstr "(postaraj się, by było krótko)"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:457
|
||||
msgid "Helpdesk contact &information:"
|
||||
msgstr ""
|
||||
msgstr "&Kontakt do helpdesku"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:467
|
||||
msgid "¶"
|
||||
@@ -194,7 +198,7 @@ msgstr ""
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:542
|
||||
msgid "&Namespace:"
|
||||
msgstr ""
|
||||
msgstr "&Namespace:"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:546
|
||||
msgid "urn:RFC4282:realm"
|
||||
@@ -206,11 +210,13 @@ msgstr "urn:uuid"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:558
|
||||
msgid "Provider unique &identifier:"
|
||||
msgstr ""
|
||||
msgstr "Unikatowy &identyfikator Dostawcy Tożsamości:"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:563
|
||||
msgid "Your organization ID to assign same credentials from other profiles"
|
||||
msgstr ""
|
||||
"Unikatowy identyfikator Twojej instytucji umożliwiający używanie tych samych"
|
||||
" poświadczeń z innych profili"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:588
|
||||
msgid "Configuration Lock"
|
||||
@@ -221,16 +227,22 @@ msgid ""
|
||||
"Your configuration can be locked to prevent accidental modification by end-"
|
||||
"users. Users will only be allowed to enter credentials."
|
||||
msgstr ""
|
||||
"Twoją konfigurację można zablokować, aby zapobiec przypadkowej modyfikacji "
|
||||
"przez użytkowników końcowych. Użytkownicy będą mogli wprowadzać "
|
||||
"poświadczenia, ale nic poza tym. "
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:606
|
||||
msgid ""
|
||||
"&Lock this configuration and prevent any further modification via user "
|
||||
"interface."
|
||||
msgstr ""
|
||||
"&Zablokuj konfigurację przed modyfikacją poprzez interfejs użytkownika."
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:609
|
||||
msgid "(Warning: Once locked, you can not revert using this dialog!)"
|
||||
msgstr ""
|
||||
"(Uwaga: Po zablokowaniu nie będziesz mógł tego wycofać przy pomocy tego "
|
||||
"interfejsu!)"
|
||||
|
||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:98
|
||||
#, c-format
|
||||
@@ -269,6 +281,8 @@ msgid ""
|
||||
"%s has pre-set parts of this configuration. Those parts are locked to "
|
||||
"prevent accidental modification."
|
||||
msgstr ""
|
||||
"Ta konfiguracja dla %s jest częściowo pre-definiowana. Te części są "
|
||||
"zablokowane, aby zapobiec przypadkowej modyfikacji."
|
||||
|
||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:229
|
||||
msgid "Your provider"
|
||||
@@ -320,6 +334,8 @@ msgstr "Zaufane Urzędy Certyfikacji"
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:40
|
||||
msgid "List of certificate authorities server's certificate must be issued by"
|
||||
msgstr ""
|
||||
"Lista urzędów certyfikacyjnych uprawnionych do wystawienia certyfikatu "
|
||||
"serwera"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:47
|
||||
msgid "Add CA from Store..."
|
||||
@@ -348,13 +364,15 @@ msgstr "Usuwa z listy wybrane urzędy certyfikacji"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:72
|
||||
msgid "Acceptable server &names:"
|
||||
msgstr ""
|
||||
msgstr "Dopuszczalne &nazwy serwerów:"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:77
|
||||
msgid ""
|
||||
"A semicolon delimited list of acceptable server FQDN names; blank to skip "
|
||||
"name check; Unicode characters allowed"
|
||||
msgstr ""
|
||||
"Lista nazw domenowych serwerów rozdzielana średnikami; pusta lista oznacza "
|
||||
"brak sprawdzenia nazw; dozwolone są znaki Unicode"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:81
|
||||
msgid "(Example: foo.bar.com;server2.bar.com)"
|
||||
@@ -371,7 +389,7 @@ msgstr ""
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:138
|
||||
msgid "Co&nnect without providing a client certificate"
|
||||
msgstr ""
|
||||
msgstr "&Połącz bez podawania certyfikatu klienta"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:139
|
||||
msgid ""
|
||||
@@ -380,7 +398,7 @@ msgstr "Zaznacz, jeżeli Twój serwer nie wymaga podania certyfikatu klienta"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:146
|
||||
msgid "Use the following &certificate:"
|
||||
msgstr ""
|
||||
msgstr "Użyj &certyfikatu:"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:147
|
||||
msgid "Select if you need to provide a client certificate when connecting"
|
||||
@@ -388,17 +406,19 @@ msgstr "Zaznacz, jeżeli w czasie łączenia musisz wskazać certyfikat klienta"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:154
|
||||
msgid "Client certificate to use for authentication"
|
||||
msgstr ""
|
||||
msgstr "Certyfikat klienta używany do uwierzytelnienia"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:167
|
||||
msgid "Custom &identity:"
|
||||
msgstr ""
|
||||
msgstr "Niestandardowy &identyfikator:"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:172
|
||||
msgid ""
|
||||
"Your identity (username@domain) to override one from certificate; or blank "
|
||||
"to use one provided in certificate"
|
||||
msgstr ""
|
||||
"Twój identyfikator (użytkownik@domena), który ma być użyty zamiast podanego "
|
||||
"w certyfikacie; pusty wpis spowoduje użycie identyfikatora z certyfikatu"
|
||||
|
||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:176
|
||||
msgid "(Example: user@contoso.com)"
|
||||
@@ -415,7 +435,7 @@ msgstr "W nazwie hosta znaleziono nieprawidłowy znak: %c"
|
||||
|
||||
#: lib/TLS_UI/src/TLS_UI.cpp:118
|
||||
msgid "Validation conflict"
|
||||
msgstr ""
|
||||
msgstr "Błąd walidacji danych"
|
||||
|
||||
#: lib/TLS_UI/src/TLS_UI.cpp:511
|
||||
msgid "Add Certificate"
|
||||
@@ -458,7 +478,7 @@ msgstr ""
|
||||
|
||||
#: lib/TTLS_UI/res/wxTTLS_UI.cpp:35
|
||||
msgid "&True identity"
|
||||
msgstr ""
|
||||
msgstr "&Rzeczywista tożsamość"
|
||||
|
||||
#: lib/TTLS_UI/res/wxTTLS_UI.cpp:36
|
||||
msgid "Use my true user name"
|
||||
@@ -466,7 +486,7 @@ msgstr "Korzystaj z mojego rzeczywistego identyfikatora"
|
||||
|
||||
#: lib/TTLS_UI/res/wxTTLS_UI.cpp:40
|
||||
msgid "Use &empty outer identity (RFC 4822)"
|
||||
msgstr ""
|
||||
msgstr "Użyj &pustego identyfikatora zewnętrznego (RFC 4822)"
|
||||
|
||||
#: lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||
msgid "Ommit my user name and use @mydomain.org only"
|
||||
@@ -474,7 +494,7 @@ msgstr "Pomiń mój identyfikator i użyj tylko @mydomain.org"
|
||||
|
||||
#: lib/TTLS_UI/res/wxTTLS_UI.cpp:48
|
||||
msgid "&Custom outer identity:"
|
||||
msgstr ""
|
||||
msgstr "&Niestandardowa tożsamość zewnętrzna:"
|
||||
|
||||
#: lib/TTLS_UI/res/wxTTLS_UI.cpp:49
|
||||
msgid "Specify custom outer identity"
|
||||
@@ -488,12 +508,12 @@ msgstr "Niestandardowy identyfikator zewnętrzny"
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:689
|
||||
#, c-format
|
||||
msgid "Error writing credentials to Credential Manager: %hs (error %u)"
|
||||
msgstr ""
|
||||
msgstr "Błąd przy zapisie poświadczeń w Menadżerze poświadczeń: %hs (błąd %u)"
|
||||
|
||||
#: lib/TTLS_UI/src/Module.cpp:277 lib/TTLS_UI/src/Module.cpp:287
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:692
|
||||
msgid "Writing credentials failed."
|
||||
msgstr ""
|
||||
msgstr "Nie udało się zapisać poświadczeń."
|
||||
|
||||
#: lib/TTLS_UI/src/TTLS_UI.cpp:108 lib/TTLS_UI/src/TTLS_UI.cpp:235
|
||||
msgid "Inner Authentication"
|
||||
@@ -546,19 +566,19 @@ msgstr "<błąd>"
|
||||
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:754 lib/EAPBase_UI/include/EAP_UI.h:764
|
||||
msgid "<empty>"
|
||||
msgstr ""
|
||||
msgstr "<pusty>"
|
||||
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:754 lib/EAPBase_UI/include/EAP_UI.h:764
|
||||
msgid "<blank ID>"
|
||||
msgstr ""
|
||||
msgstr "<puste ID>"
|
||||
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:964
|
||||
msgid "<Your Organization>"
|
||||
msgstr ""
|
||||
msgstr "<Twoja Instytucja>"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.h:69
|
||||
msgid "EAP Connection Configuration"
|
||||
msgstr ""
|
||||
msgstr "Konfiguracja Połączenia EAP"
|
||||
|
||||
#: EAPMethods/MSIBuild/En.Win32.Release.Feature-2.idtx:3
|
||||
#: EAPMethods/MSIBuild/En.x64.Release.Feature-2.idtx:3
|
||||
@@ -573,7 +593,7 @@ msgstr "Metody EAP"
|
||||
#: EAPMethods/MSIBuild/En.Win32.Release.Feature-2.idtx:4
|
||||
#: EAPMethods/MSIBuild/En.x64.Release.Feature-2.idtx:4
|
||||
msgid "Modules to support individual EAP methods"
|
||||
msgstr ""
|
||||
msgstr "Moduły obsługujące konkretne metody EAP"
|
||||
|
||||
#: EAPMethods/MSIBuild/En.Win32.Release.Feature-2.idtx:5
|
||||
#: EAPMethods/MSIBuild/En.x64.Release.Feature-2.idtx:5
|
||||
|
@@ -5,7 +5,7 @@ msgstr ""
|
||||
"Project-Id-Version: EAPMethods\n"
|
||||
"POT-Creation-Date: 2016-09-06 14:06+0200\n"
|
||||
"PO-Revision-Date: 2016-06-02 12:27+0200\n"
|
||||
"Last-Translator: Simon Rozman <simon@rozman.si>, 2016\n"
|
||||
"Last-Translator: Pedro Simões <psimoes@fccn.pt>, 2016\n"
|
||||
"Language-Team: Portuguese (Portugal) (https://www.transifex.com/eduroam_devel/teams/11799/pt_PT/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -24,7 +24,7 @@ msgstr ""
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:37
|
||||
msgid "+"
|
||||
msgstr ""
|
||||
msgstr "+"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:38
|
||||
msgid "Adds new provider"
|
||||
@@ -32,7 +32,7 @@ msgstr ""
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:42
|
||||
msgid "-"
|
||||
msgstr ""
|
||||
msgstr "-"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:43
|
||||
msgid "Removes selected provider"
|
||||
@@ -40,7 +40,7 @@ msgstr ""
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:47
|
||||
msgid "Advanced..."
|
||||
msgstr ""
|
||||
msgstr "Avançadas..."
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:48
|
||||
msgid "Opens dialog with provider settings"
|
||||
@@ -110,15 +110,15 @@ msgstr ""
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:385
|
||||
msgid "Password:"
|
||||
msgstr ""
|
||||
msgstr "Palavra passe:"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:390
|
||||
msgid "Enter your password here"
|
||||
msgstr ""
|
||||
msgstr "Coloque aqui a sua palavra passe"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:397 lib/TLS_UI/res/wxTLS_UI.cpp:183
|
||||
msgid "&Remember"
|
||||
msgstr ""
|
||||
msgstr "&Memorizar"
|
||||
|
||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:398
|
||||
msgid "Check if you would like to save username and password"
|
||||
@@ -228,12 +228,12 @@ msgstr ""
|
||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:98
|
||||
#, c-format
|
||||
msgid "%s Credentials"
|
||||
msgstr ""
|
||||
msgstr "%s Credenciais"
|
||||
|
||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:123 lib/EAPBase_UI/include/EAP_UI.h:352
|
||||
#: lib/EAPBase_UI/include/EAP_UI.h:362 lib/EAPBase_UI/res/wxEAP_UI.h:119
|
||||
msgid "EAP Credentials"
|
||||
msgstr ""
|
||||
msgstr "Credenciais EAP"
|
||||
|
||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:166
|
||||
#, c-format
|
||||
@@ -254,7 +254,7 @@ msgstr ""
|
||||
|
||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:208
|
||||
msgid "Dial the phone number"
|
||||
msgstr ""
|
||||
msgstr "Marcar o número de telefone"
|
||||
|
||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:228
|
||||
#, c-format
|
||||
|
@@ -755,7 +755,7 @@ DWORD WINAPI EapPeerCredentialsXml2Blob(
|
||||
else {
|
||||
// <Credentials>
|
||||
com_obj<IXMLDOMNode> pXmlElCredentials;
|
||||
if (FAILED(eapxml::select_node(pCredentialsDoc, bstr(L"//EapHostUserCredentials/Credentials"), &pXmlElCredentials))) {
|
||||
if (FAILED(eapxml::select_node(pCredentialsDoc, bstr(L"//EapHostUserCredentials/Credentials"), pXmlElCredentials))) {
|
||||
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_NOT_FOUND, _T(__FUNCTION__) _T(" Error selecting <EapHostUserCredentials><Credentials> element.")));
|
||||
return dwResult;
|
||||
}
|
||||
|
@@ -133,7 +133,7 @@ DWORD WINAPI EapPeerConfigXml2Blob(
|
||||
// <Config>
|
||||
pConfigDoc->setProperty(bstr(L"SelectionNamespaces"), variant(L"xmlns:eaphostconfig=\"http://www.microsoft.com/provisioning/EapHostConfig\""));
|
||||
com_obj<IXMLDOMElement> pXmlElConfig;
|
||||
if (FAILED(eapxml::select_element(pConfigDoc, bstr(L"//eaphostconfig:Config"), &pXmlElConfig))) {
|
||||
if (FAILED(eapxml::select_element(pConfigDoc, bstr(L"//eaphostconfig:Config"), pXmlElConfig))) {
|
||||
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" Error reading <Config> element.")));
|
||||
return dwResult;
|
||||
}
|
||||
@@ -215,7 +215,7 @@ DWORD WINAPI EapPeerConfigBlob2Xml(
|
||||
// Select <Config> node.
|
||||
com_obj<IXMLDOMNode> pXmlElConfig;
|
||||
pConfigDoc->setProperty(bstr(L"SelectionNamespaces"), variant(L"xmlns:eaphostconfig=\"http://www.microsoft.com/provisioning/EapHostConfig\""));
|
||||
if (FAILED(eapxml::select_node(pConfigDoc, bstr(L"eaphostconfig:Config"), &pXmlElConfig))) {
|
||||
if (FAILED(eapxml::select_node(pConfigDoc, bstr(L"eaphostconfig:Config"), pXmlElConfig))) {
|
||||
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_NOT_FOUND, _T(__FUNCTION__) _T(" Error selecting <Config> element.")));
|
||||
return dwResult;
|
||||
}
|
||||
|
Binary file not shown.
@@ -2,14 +2,14 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: EventMonitor\n"
|
||||
"POT-Creation-Date: 2016-09-12 11:18+0200\n"
|
||||
"POT-Creation-Date: 2016-09-19 11:14+0200\n"
|
||||
"PO-Revision-Date: 2016-06-02 12:27+0200\n"
|
||||
"Last-Translator: Simon Rozman <simon.rozman@amebis.si>\n"
|
||||
"Language-Team: Amebis, d. o. o., Kamnik <info@amebis.si>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 1.8.8\n"
|
||||
"X-Generator: Poedit 1.8.9\n"
|
||||
"X-Poedit-Basepath: ..\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"Language: en_US\n"
|
||||
@@ -17,8 +17,8 @@ msgstr ""
|
||||
"X-Poedit-KeywordsList: _\n"
|
||||
"X-Poedit-SearchPath-0: .\n"
|
||||
|
||||
#: App.cpp:61 Frame.h:67 MSIBuild/En.Win32.Release.Feature-2.idtx:4
|
||||
#: MSIBuild/En.x64.Release.Feature-2.idtx:4
|
||||
#: App.cpp:61 Frame.h:67 MSIBuild/en_US.Win32.Release.Feature-2.idtx:4
|
||||
#: MSIBuild/en_US.x64.Release.Feature-2.idtx:4
|
||||
msgid "Event Monitor"
|
||||
msgstr ""
|
||||
|
||||
@@ -205,21 +205,14 @@ msgstr ""
|
||||
msgid "Trace Log"
|
||||
msgstr ""
|
||||
|
||||
#: MSIBuild/En.Win32.Release.Feature-2.idtx:3
|
||||
#: MSIBuild/En.Win32.Release.Shortcut-2.idtx:3
|
||||
#: MSIBuild/En.x64.Release.Feature-2.idtx:3
|
||||
#: MSIBuild/En.x64.Release.Shortcut-2.idtx:3
|
||||
msgid "1252"
|
||||
msgstr ""
|
||||
|
||||
#: MSIBuild/En.Win32.Release.Shortcut-2.idtx:4
|
||||
#: MSIBuild/En.x64.Release.Shortcut-2.idtx:4
|
||||
msgid "EVENTM~1|GÉANTLink Event Monitor"
|
||||
msgstr ""
|
||||
|
||||
#: MSIBuild/En.Win32.Release.Feature-2.idtx:4
|
||||
#: MSIBuild/En.Win32.Release.Shortcut-2.idtx:4
|
||||
#: MSIBuild/En.x64.Release.Feature-2.idtx:4
|
||||
#: MSIBuild/En.x64.Release.Shortcut-2.idtx:4
|
||||
#: MSIBuild/en_US.Win32.Release.Feature-2.idtx:4
|
||||
#: MSIBuild/en_US.Win32.Release.Shortcut-2.idtx:4
|
||||
#: MSIBuild/en_US.x64.Release.Feature-2.idtx:4
|
||||
#: MSIBuild/en_US.x64.Release.Shortcut-2.idtx:4
|
||||
msgid "Real-time display of internal events"
|
||||
msgstr ""
|
||||
|
||||
#: MSIBuild/en_US.Win32.Release.Shortcut-2.idtx:4
|
||||
#: MSIBuild/en_US.x64.Release.Shortcut-2.idtx:4
|
||||
msgid "EVENTM~1|GÉANTLink Event Monitor"
|
||||
msgstr ""
|
||||
|
@@ -5,7 +5,7 @@ msgstr ""
|
||||
"Project-Id-Version: EventMonitor\n"
|
||||
"POT-Creation-Date: 2016-09-12 11:18+0200\n"
|
||||
"PO-Revision-Date: 2016-06-02 12:27+0200\n"
|
||||
"Last-Translator: Simon Rozman <simon@rozman.si>, 2016\n"
|
||||
"Last-Translator: eduroam_devel <stefan.winter@restena.lu>, 2016\n"
|
||||
"Language-Team: German (https://www.transifex.com/eduroam_devel/teams/11799/de/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -21,32 +21,32 @@ msgstr ""
|
||||
#: App.cpp:61 Frame.h:67 MSIBuild/En.Win32.Release.Feature-2.idtx:4
|
||||
#: MSIBuild/En.x64.Release.Feature-2.idtx:4
|
||||
msgid "Event Monitor"
|
||||
msgstr ""
|
||||
msgstr "Ereignismonitor"
|
||||
|
||||
#: ETWLog.cpp:83
|
||||
#, c-format
|
||||
msgid "Error opening event trace (error %u)."
|
||||
msgstr ""
|
||||
msgstr "Fehler beim Öffnen des Ereignislogs (Fehler %u)."
|
||||
|
||||
#: ETWLog.cpp:167
|
||||
msgid "Time"
|
||||
msgstr ""
|
||||
msgstr "Zeit"
|
||||
|
||||
#: ETWLog.cpp:168
|
||||
msgid "PID"
|
||||
msgstr ""
|
||||
msgstr "PID"
|
||||
|
||||
#: ETWLog.cpp:169
|
||||
msgid "TID"
|
||||
msgstr ""
|
||||
msgstr "TID"
|
||||
|
||||
#: ETWLog.cpp:170
|
||||
msgid "Source"
|
||||
msgstr ""
|
||||
msgstr "Quelle"
|
||||
|
||||
#: ETWLog.cpp:171
|
||||
msgid "Event"
|
||||
msgstr ""
|
||||
msgstr "Ereignis"
|
||||
|
||||
#: ETWLog.cpp:228
|
||||
msgid ""
|
||||
@@ -54,160 +54,166 @@ msgid ""
|
||||
"(Run As Administrator) or be a member of Performance Log Users group to "
|
||||
"start event tracing session."
|
||||
msgstr ""
|
||||
"Zugriff verweigert: Die Sitzung konnte nicht eröffnet werden. Sie benötigen "
|
||||
"Administratorprivilegien (Als Administrator ausführen) oder müssen in der "
|
||||
"Benutzergruppe Leistungsprotokollbenutzer sein um eine Ereignislogsitzung zu"
|
||||
" eröffnen."
|
||||
|
||||
#: ETWLog.cpp:231
|
||||
#, c-format
|
||||
msgid "The %s event session already exists."
|
||||
msgstr ""
|
||||
msgstr "Die Ereignislogsitzung %s existiert bereits."
|
||||
|
||||
#: ETWLog.cpp:235
|
||||
#, c-format
|
||||
msgid "Error creating event session (error %u)."
|
||||
msgstr ""
|
||||
msgstr "Fehler beim eröffnen der Ereignislogsitzung (Fehler %u)."
|
||||
|
||||
#: ETWLog.cpp:251 ETWLog.cpp:267 ETWLog.cpp:281
|
||||
#, c-format
|
||||
msgid "Error enabling %s event provider (error %u)."
|
||||
msgstr ""
|
||||
msgstr "Fehler beim Einschalten des %s Ereignisanbieters (Fehler %u)."
|
||||
|
||||
#: Frame.cpp:48 Frame.cpp:108 Frame.cpp:113 Frame.cpp:168 Frame.cpp:170
|
||||
#, c-format
|
||||
msgid "Toggles display of %s records"
|
||||
msgstr ""
|
||||
msgstr "Schaltet die Anzeige von %s Ereignissen um"
|
||||
|
||||
#: Frame.cpp:65
|
||||
msgid "E&xit"
|
||||
msgstr ""
|
||||
msgstr "&Beenden"
|
||||
|
||||
#: Frame.cpp:65
|
||||
msgid "Quits this program"
|
||||
msgstr ""
|
||||
msgstr "Beendet das Programm"
|
||||
|
||||
#: Frame.cpp:69
|
||||
msgid "&Program"
|
||||
msgstr ""
|
||||
msgstr "&Programm"
|
||||
|
||||
#: Frame.cpp:73
|
||||
msgid "&Copy"
|
||||
msgstr ""
|
||||
msgstr "&Kopieren"
|
||||
|
||||
#: Frame.cpp:73 Frame.cpp:154
|
||||
msgid "Copies selected records to clipboard"
|
||||
msgstr ""
|
||||
msgstr "Kopiert die ausgewählten Ereignisse in die Zwischenablage"
|
||||
|
||||
#: Frame.cpp:78
|
||||
msgid "Copy A&ll"
|
||||
msgstr ""
|
||||
msgstr "&Alle Kopieren"
|
||||
|
||||
#: Frame.cpp:78 Frame.cpp:156
|
||||
msgid "Copies all records to clipboard (including hidden)"
|
||||
msgstr ""
|
||||
msgstr "Kopiert alle Ereignisse in die Zwischenablage (auch versteckte)"
|
||||
|
||||
#: Frame.cpp:83 Frame.cpp:158
|
||||
msgid "Clear"
|
||||
msgstr ""
|
||||
msgstr "Löschen"
|
||||
|
||||
#: Frame.cpp:83 Frame.cpp:158
|
||||
msgid "Clears all records from the log"
|
||||
msgstr ""
|
||||
msgstr "Löscht alle Ereignisse aus dem Log"
|
||||
|
||||
#: Frame.cpp:90
|
||||
msgid "Select &All"
|
||||
msgstr ""
|
||||
msgstr "A&lle Auswählen"
|
||||
|
||||
#: Frame.cpp:90
|
||||
msgid "Selects all visible records"
|
||||
msgstr ""
|
||||
msgstr "Wählt alle angezeigten Ereignisse aus"
|
||||
|
||||
#: Frame.cpp:94
|
||||
msgid "Select &None"
|
||||
msgstr ""
|
||||
msgstr "&Nichts Auswählen"
|
||||
|
||||
#: Frame.cpp:94
|
||||
msgid "Clears record selection"
|
||||
msgstr ""
|
||||
msgstr "Wählt kein Ereignis aus"
|
||||
|
||||
#: Frame.cpp:97 Frame.cpp:142
|
||||
msgid "&Edit"
|
||||
msgstr ""
|
||||
msgstr "Bea&rbeiten"
|
||||
|
||||
#: Frame.cpp:101
|
||||
msgid "Auto &Scroll"
|
||||
msgstr ""
|
||||
msgstr "Automatischer B&ildlauf"
|
||||
|
||||
#: Frame.cpp:101 Frame.cpp:164
|
||||
msgid "Automatically scrolls to the most recent records as they come-in"
|
||||
msgstr ""
|
||||
"Folgt automatisch den neuesten Ereignissen sobald sie im Log auftreten"
|
||||
|
||||
#: Frame.cpp:123 Frame.cpp:176
|
||||
msgid "Verbose"
|
||||
msgstr ""
|
||||
msgstr "Ausführlich"
|
||||
|
||||
#: Frame.cpp:123 Frame.cpp:176
|
||||
msgid "Displays all levels of records"
|
||||
msgstr ""
|
||||
msgstr "Zeigt Ereignisse aller Stufen an"
|
||||
|
||||
#: Frame.cpp:127 Frame.cpp:178
|
||||
msgid "Informational"
|
||||
msgstr ""
|
||||
msgstr "Information"
|
||||
|
||||
#: Frame.cpp:127 Frame.cpp:178
|
||||
msgid "Displays all records up to informational level"
|
||||
msgstr ""
|
||||
"Zeigt alle Ereignisse an, die auf Stufe Information oder wichtiger sind."
|
||||
|
||||
#: Frame.cpp:131 Frame.cpp:180
|
||||
msgid "Warning"
|
||||
msgstr ""
|
||||
msgstr "Warnung"
|
||||
|
||||
#: Frame.cpp:131 Frame.cpp:180
|
||||
msgid "Displays all records up to warning level"
|
||||
msgstr ""
|
||||
msgstr "Zeigt alle Ereignisse an, die auf Stufe Warnung oder wichtiger sind."
|
||||
|
||||
#: Frame.cpp:135 Frame.cpp:182
|
||||
msgid "Error"
|
||||
msgstr ""
|
||||
msgstr "Fehler"
|
||||
|
||||
#: Frame.cpp:135 Frame.cpp:182
|
||||
msgid "Displays error level records only"
|
||||
msgstr ""
|
||||
msgstr "Zeigt nur Ereignesse der Stufe Fehler an"
|
||||
|
||||
#: Frame.cpp:142 Frame.cpp:146
|
||||
#, c-format
|
||||
msgid "%s toolbar"
|
||||
msgstr ""
|
||||
msgstr "%s Werkzeugleiste"
|
||||
|
||||
#: Frame.cpp:142 Frame.cpp:146
|
||||
#, c-format
|
||||
msgid "Toggles display of %s toolbar"
|
||||
msgstr ""
|
||||
msgstr "Schaltet die Anzeige der %s Werzeugleiste um"
|
||||
|
||||
#: Frame.cpp:142 Frame.cpp:146 Frame.cpp:185
|
||||
msgid "View"
|
||||
msgstr ""
|
||||
msgstr "Ansicht"
|
||||
|
||||
#: Frame.cpp:146 Frame.cpp:149
|
||||
msgid "&View"
|
||||
msgstr ""
|
||||
msgstr "An&sicht"
|
||||
|
||||
#: Frame.cpp:154
|
||||
msgid "Copy"
|
||||
msgstr ""
|
||||
msgstr "Kopieren"
|
||||
|
||||
#: Frame.cpp:156
|
||||
msgid "Copy All"
|
||||
msgstr ""
|
||||
msgstr "Alle Kopieren"
|
||||
|
||||
#: Frame.cpp:161
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
msgstr "Bearbeiten"
|
||||
|
||||
#: Frame.cpp:164
|
||||
msgid "Auto Scroll"
|
||||
msgstr ""
|
||||
msgstr "Automatischer Bildlauf"
|
||||
|
||||
#: Frame.cpp:189
|
||||
msgid "Trace Log"
|
||||
msgstr ""
|
||||
msgstr "Ereignislog"
|
||||
|
||||
#: MSIBuild/En.Win32.Release.Feature-2.idtx:3
|
||||
#: MSIBuild/En.Win32.Release.Shortcut-2.idtx:3
|
||||
@@ -219,11 +225,11 @@ msgstr "1252"
|
||||
#: MSIBuild/En.Win32.Release.Shortcut-2.idtx:4
|
||||
#: MSIBuild/En.x64.Release.Shortcut-2.idtx:4
|
||||
msgid "EVENTM~1|GÉANTLink Event Monitor"
|
||||
msgstr ""
|
||||
msgstr "EVENTM~1|GÉANTLink Ereignismonitor"
|
||||
|
||||
#: MSIBuild/En.Win32.Release.Feature-2.idtx:4
|
||||
#: MSIBuild/En.Win32.Release.Shortcut-2.idtx:4
|
||||
#: MSIBuild/En.x64.Release.Feature-2.idtx:4
|
||||
#: MSIBuild/En.x64.Release.Shortcut-2.idtx:4
|
||||
msgid "Real-time display of internal events"
|
||||
msgstr ""
|
||||
msgstr "Echtzeitanzeige der internen Ereignisse"
|
||||
|
@@ -5,7 +5,7 @@ msgstr ""
|
||||
"Project-Id-Version: EventMonitor\n"
|
||||
"POT-Creation-Date: 2016-09-12 11:18+0200\n"
|
||||
"PO-Revision-Date: 2016-06-02 12:27+0200\n"
|
||||
"Last-Translator: Vicky Kons <vickyk@admin.grnet.gr>, 2016\n"
|
||||
"Last-Translator: Zenon Mousmoulas <zenon@mousmoulas.gr>, 2016\n"
|
||||
"Language-Team: Greek (https://www.transifex.com/eduroam_devel/teams/11799/el/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -54,9 +54,9 @@ msgid ""
|
||||
"(Run As Administrator) or be a member of Performance Log Users group to "
|
||||
"start event tracing session."
|
||||
msgstr ""
|
||||
"Δεν επιτρέπεται η πρόσβαση δημιουργώντας συνεδρία: θα πρέπει να έχετε "
|
||||
"Δεν επιτρέπεται η πρόσβαση δημιουργώντας μια συνεδρία: θα πρέπει να έχετε "
|
||||
"δικαιώματα διαχειριστή (Εκτέλεση ως διαχειριστής) ή να είστε μέλος της "
|
||||
"ομάδας Perfomance Log Users για να ξεκινήσετε να εντοπίζεται μία συνεδρία."
|
||||
"ομάδας Perfomance Log Users για να ξεκινήσετε να ψάξετε μία συνεδρία."
|
||||
|
||||
#: ETWLog.cpp:231
|
||||
#, c-format
|
||||
@@ -76,7 +76,7 @@ msgstr "Σφάλμα κατά την ενεργοποίηση %s παρόχου
|
||||
#: Frame.cpp:48 Frame.cpp:108 Frame.cpp:113 Frame.cpp:168 Frame.cpp:170
|
||||
#, c-format
|
||||
msgid "Toggles display of %s records"
|
||||
msgstr "Εναλλάσει την οθόνη %s των αρχείων"
|
||||
msgstr "Εναλλάσει την εμφάνιση/απόκρυψη των αρχείων %s"
|
||||
|
||||
#: Frame.cpp:65
|
||||
msgid "E&xit"
|
||||
@@ -92,7 +92,7 @@ msgstr "&Πρόγραμμα"
|
||||
|
||||
#: Frame.cpp:73
|
||||
msgid "&Copy"
|
||||
msgstr ""
|
||||
msgstr "&Αντιγραφή"
|
||||
|
||||
#: Frame.cpp:73 Frame.cpp:154
|
||||
msgid "Copies selected records to clipboard"
|
||||
@@ -183,7 +183,7 @@ msgstr "%s Γραμμή εργαλείων"
|
||||
#: Frame.cpp:142 Frame.cpp:146
|
||||
#, c-format
|
||||
msgid "Toggles display of %s toolbar"
|
||||
msgstr "Εναλλάσσει την εμφάνιση %s της γραμμής εργαλείων"
|
||||
msgstr "Εναλλάσσει την εμφάνιση/απόκρυψη της γραμμής εργαλείων %s"
|
||||
|
||||
#: Frame.cpp:142 Frame.cpp:146 Frame.cpp:185
|
||||
msgid "View"
|
||||
|
@@ -5,7 +5,7 @@ msgstr ""
|
||||
"Project-Id-Version: EventMonitor\n"
|
||||
"POT-Creation-Date: 2016-09-12 11:18+0200\n"
|
||||
"PO-Revision-Date: 2016-06-02 12:27+0200\n"
|
||||
"Last-Translator: Simon Rozman <simon@rozman.si>, 2016\n"
|
||||
"Last-Translator: Rimas Kudelis <rq@akl.lt>, 2016\n"
|
||||
"Language-Team: Lithuanian (https://www.transifex.com/eduroam_devel/teams/11799/lt/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -21,32 +21,32 @@ msgstr ""
|
||||
#: App.cpp:61 Frame.h:67 MSIBuild/En.Win32.Release.Feature-2.idtx:4
|
||||
#: MSIBuild/En.x64.Release.Feature-2.idtx:4
|
||||
msgid "Event Monitor"
|
||||
msgstr ""
|
||||
msgstr "Įvykių stebėjimo programa"
|
||||
|
||||
#: ETWLog.cpp:83
|
||||
#, c-format
|
||||
msgid "Error opening event trace (error %u)."
|
||||
msgstr ""
|
||||
msgstr "Klaida atveriant įvykio sekimo failą (klaida %u)."
|
||||
|
||||
#: ETWLog.cpp:167
|
||||
msgid "Time"
|
||||
msgstr ""
|
||||
msgstr "Laikas"
|
||||
|
||||
#: ETWLog.cpp:168
|
||||
msgid "PID"
|
||||
msgstr ""
|
||||
msgstr "PID"
|
||||
|
||||
#: ETWLog.cpp:169
|
||||
msgid "TID"
|
||||
msgstr ""
|
||||
msgstr "Gijos ID"
|
||||
|
||||
#: ETWLog.cpp:170
|
||||
msgid "Source"
|
||||
msgstr ""
|
||||
msgstr "Šaltinis"
|
||||
|
||||
#: ETWLog.cpp:171
|
||||
msgid "Event"
|
||||
msgstr ""
|
||||
msgstr "Įvykis"
|
||||
|
||||
#: ETWLog.cpp:228
|
||||
msgid ""
|
||||
@@ -54,160 +54,162 @@ msgid ""
|
||||
"(Run As Administrator) or be a member of Performance Log Users group to "
|
||||
"start event tracing session."
|
||||
msgstr ""
|
||||
"Pradedant įvykių sesiją, prieiga uždrausta: turite paleisti programą "
|
||||
"administratoriaus teisėmis arba būti „Performance Log Users“ grupės nariu."
|
||||
|
||||
#: ETWLog.cpp:231
|
||||
#, c-format
|
||||
msgid "The %s event session already exists."
|
||||
msgstr ""
|
||||
msgstr "„%s“ įvykių sesija jau egzistuoja."
|
||||
|
||||
#: ETWLog.cpp:235
|
||||
#, c-format
|
||||
msgid "Error creating event session (error %u)."
|
||||
msgstr ""
|
||||
msgstr "Klaida kuriant įvykių sesiją (klaida %u)."
|
||||
|
||||
#: ETWLog.cpp:251 ETWLog.cpp:267 ETWLog.cpp:281
|
||||
#, c-format
|
||||
msgid "Error enabling %s event provider (error %u)."
|
||||
msgstr ""
|
||||
msgstr "Klaida įgalinant „%s“ įvykių teiktuvą (klaida %u)."
|
||||
|
||||
#: Frame.cpp:48 Frame.cpp:108 Frame.cpp:113 Frame.cpp:168 Frame.cpp:170
|
||||
#, c-format
|
||||
msgid "Toggles display of %s records"
|
||||
msgstr ""
|
||||
msgstr "Perjungia „%s“ klaidų matomumą"
|
||||
|
||||
#: Frame.cpp:65
|
||||
msgid "E&xit"
|
||||
msgstr ""
|
||||
msgstr "&Išeiti"
|
||||
|
||||
#: Frame.cpp:65
|
||||
msgid "Quits this program"
|
||||
msgstr ""
|
||||
msgstr "Baigti šios programos darbą"
|
||||
|
||||
#: Frame.cpp:69
|
||||
msgid "&Program"
|
||||
msgstr ""
|
||||
msgstr "&Programa"
|
||||
|
||||
#: Frame.cpp:73
|
||||
msgid "&Copy"
|
||||
msgstr ""
|
||||
msgstr "&Kopijuoti"
|
||||
|
||||
#: Frame.cpp:73 Frame.cpp:154
|
||||
msgid "Copies selected records to clipboard"
|
||||
msgstr ""
|
||||
msgstr "Kopijuoti pažymėtus įrašus į iškarpinę"
|
||||
|
||||
#: Frame.cpp:78
|
||||
msgid "Copy A&ll"
|
||||
msgstr ""
|
||||
msgstr "Kopijuoti vi&sus"
|
||||
|
||||
#: Frame.cpp:78 Frame.cpp:156
|
||||
msgid "Copies all records to clipboard (including hidden)"
|
||||
msgstr ""
|
||||
msgstr "Kopijuoti visus įrašus (taip pat ir nematomus) į iškarpinę"
|
||||
|
||||
#: Frame.cpp:83 Frame.cpp:158
|
||||
msgid "Clear"
|
||||
msgstr ""
|
||||
msgstr "Valyti"
|
||||
|
||||
#: Frame.cpp:83 Frame.cpp:158
|
||||
msgid "Clears all records from the log"
|
||||
msgstr ""
|
||||
msgstr "Pašalinti visus žurnalo įrašus"
|
||||
|
||||
#: Frame.cpp:90
|
||||
msgid "Select &All"
|
||||
msgstr ""
|
||||
msgstr "Žymėti &visus"
|
||||
|
||||
#: Frame.cpp:90
|
||||
msgid "Selects all visible records"
|
||||
msgstr ""
|
||||
msgstr "Pažymėti visus matomus įrašus"
|
||||
|
||||
#: Frame.cpp:94
|
||||
msgid "Select &None"
|
||||
msgstr ""
|
||||
msgstr "Nežymėti &nieko"
|
||||
|
||||
#: Frame.cpp:94
|
||||
msgid "Clears record selection"
|
||||
msgstr ""
|
||||
msgstr "Nužymėti pažymėtus įrašus"
|
||||
|
||||
#: Frame.cpp:97 Frame.cpp:142
|
||||
msgid "&Edit"
|
||||
msgstr ""
|
||||
msgstr "R&edagavimas"
|
||||
|
||||
#: Frame.cpp:101
|
||||
msgid "Auto &Scroll"
|
||||
msgstr ""
|
||||
msgstr "&Automatinė slinktis"
|
||||
|
||||
#: Frame.cpp:101 Frame.cpp:164
|
||||
msgid "Automatically scrolls to the most recent records as they come-in"
|
||||
msgstr ""
|
||||
msgstr "Automatiškai slinkti vaizdą, kad visuomet būtų matomi vėliausi įrašai"
|
||||
|
||||
#: Frame.cpp:123 Frame.cpp:176
|
||||
msgid "Verbose"
|
||||
msgstr ""
|
||||
msgstr "Išsamūs"
|
||||
|
||||
#: Frame.cpp:123 Frame.cpp:176
|
||||
msgid "Displays all levels of records"
|
||||
msgstr ""
|
||||
msgstr "Rodyti visų lygių įrašus"
|
||||
|
||||
#: Frame.cpp:127 Frame.cpp:178
|
||||
msgid "Informational"
|
||||
msgstr ""
|
||||
msgstr "Informaciniai"
|
||||
|
||||
#: Frame.cpp:127 Frame.cpp:178
|
||||
msgid "Displays all records up to informational level"
|
||||
msgstr ""
|
||||
msgstr "Rodyti informacinio ir svarbesnių lygių įrašus"
|
||||
|
||||
#: Frame.cpp:131 Frame.cpp:180
|
||||
msgid "Warning"
|
||||
msgstr ""
|
||||
msgstr "Įspėjimai"
|
||||
|
||||
#: Frame.cpp:131 Frame.cpp:180
|
||||
msgid "Displays all records up to warning level"
|
||||
msgstr ""
|
||||
msgstr "Rodyti įspėjimo ir svarbesnių lygių įrašus"
|
||||
|
||||
#: Frame.cpp:135 Frame.cpp:182
|
||||
msgid "Error"
|
||||
msgstr ""
|
||||
msgstr "Klaidos"
|
||||
|
||||
#: Frame.cpp:135 Frame.cpp:182
|
||||
msgid "Displays error level records only"
|
||||
msgstr ""
|
||||
msgstr "Rodyti tik klaidų įrašus"
|
||||
|
||||
#: Frame.cpp:142 Frame.cpp:146
|
||||
#, c-format
|
||||
msgid "%s toolbar"
|
||||
msgstr ""
|
||||
msgstr "Įrankių juosta „%s“"
|
||||
|
||||
#: Frame.cpp:142 Frame.cpp:146
|
||||
#, c-format
|
||||
msgid "Toggles display of %s toolbar"
|
||||
msgstr ""
|
||||
msgstr "Perjungti įrankių juostos „%s“ matomumą"
|
||||
|
||||
#: Frame.cpp:142 Frame.cpp:146 Frame.cpp:185
|
||||
msgid "View"
|
||||
msgstr ""
|
||||
msgstr "Rodymas"
|
||||
|
||||
#: Frame.cpp:146 Frame.cpp:149
|
||||
msgid "&View"
|
||||
msgstr ""
|
||||
msgstr "&Rodymas"
|
||||
|
||||
#: Frame.cpp:154
|
||||
msgid "Copy"
|
||||
msgstr ""
|
||||
msgstr "Kopijuoti"
|
||||
|
||||
#: Frame.cpp:156
|
||||
msgid "Copy All"
|
||||
msgstr ""
|
||||
msgstr "Kopijuoti visus"
|
||||
|
||||
#: Frame.cpp:161
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
msgstr "Redagavimas"
|
||||
|
||||
#: Frame.cpp:164
|
||||
msgid "Auto Scroll"
|
||||
msgstr ""
|
||||
msgstr "Automatinė slinktis"
|
||||
|
||||
#: Frame.cpp:189
|
||||
msgid "Trace Log"
|
||||
msgstr ""
|
||||
msgstr "Sekimo žurnalas"
|
||||
|
||||
#: MSIBuild/En.Win32.Release.Feature-2.idtx:3
|
||||
#: MSIBuild/En.Win32.Release.Shortcut-2.idtx:3
|
||||
@@ -219,11 +221,11 @@ msgstr "1257"
|
||||
#: MSIBuild/En.Win32.Release.Shortcut-2.idtx:4
|
||||
#: MSIBuild/En.x64.Release.Shortcut-2.idtx:4
|
||||
msgid "EVENTM~1|GÉANTLink Event Monitor"
|
||||
msgstr ""
|
||||
msgstr "EVENTM~1|„GÉANTLink“ įvykių stebėjimo programa"
|
||||
|
||||
#: MSIBuild/En.Win32.Release.Feature-2.idtx:4
|
||||
#: MSIBuild/En.Win32.Release.Shortcut-2.idtx:4
|
||||
#: MSIBuild/En.x64.Release.Feature-2.idtx:4
|
||||
#: MSIBuild/En.x64.Release.Shortcut-2.idtx:4
|
||||
msgid "Real-time display of internal events"
|
||||
msgstr ""
|
||||
msgstr "Vidinių įvykių stebėjimas tikruoju laiku"
|
||||
|
@@ -5,7 +5,7 @@ msgstr ""
|
||||
"Project-Id-Version: EventMonitor\n"
|
||||
"POT-Creation-Date: 2016-09-12 11:18+0200\n"
|
||||
"PO-Revision-Date: 2016-06-02 12:27+0200\n"
|
||||
"Last-Translator: Simon Rozman <simon@rozman.si>, 2016\n"
|
||||
"Last-Translator: Tom Ivar Myren <tom.myren@uninett.no>, 2016\n"
|
||||
"Language-Team: Norwegian Bokmål (https://www.transifex.com/eduroam_devel/teams/11799/nb/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -21,32 +21,32 @@ msgstr ""
|
||||
#: App.cpp:61 Frame.h:67 MSIBuild/En.Win32.Release.Feature-2.idtx:4
|
||||
#: MSIBuild/En.x64.Release.Feature-2.idtx:4
|
||||
msgid "Event Monitor"
|
||||
msgstr ""
|
||||
msgstr "Hendelses monitor"
|
||||
|
||||
#: ETWLog.cpp:83
|
||||
#, c-format
|
||||
msgid "Error opening event trace (error %u)."
|
||||
msgstr ""
|
||||
msgstr "Feil under åpning hendelses trace (error %u)."
|
||||
|
||||
#: ETWLog.cpp:167
|
||||
msgid "Time"
|
||||
msgstr ""
|
||||
msgstr "Tid"
|
||||
|
||||
#: ETWLog.cpp:168
|
||||
msgid "PID"
|
||||
msgstr ""
|
||||
msgstr "PID"
|
||||
|
||||
#: ETWLog.cpp:169
|
||||
msgid "TID"
|
||||
msgstr ""
|
||||
msgstr "TID"
|
||||
|
||||
#: ETWLog.cpp:170
|
||||
msgid "Source"
|
||||
msgstr ""
|
||||
msgstr "Kilde"
|
||||
|
||||
#: ETWLog.cpp:171
|
||||
msgid "Event"
|
||||
msgstr ""
|
||||
msgstr "Hendelse"
|
||||
|
||||
#: ETWLog.cpp:228
|
||||
msgid ""
|
||||
@@ -54,160 +54,163 @@ msgid ""
|
||||
"(Run As Administrator) or be a member of Performance Log Users group to "
|
||||
"start event tracing session."
|
||||
msgstr ""
|
||||
"Nektet tilgang til å lage hendelses sesjon: Du må ha administrator "
|
||||
"rettigheter (Kjør som administrator) eller være medlem av \"Performance Log "
|
||||
"Users group\" for å starte hendelses sporing sesjon."
|
||||
|
||||
#: ETWLog.cpp:231
|
||||
#, c-format
|
||||
msgid "The %s event session already exists."
|
||||
msgstr ""
|
||||
msgstr "%s hendelses-sesjonen finnes allerede."
|
||||
|
||||
#: ETWLog.cpp:235
|
||||
#, c-format
|
||||
msgid "Error creating event session (error %u)."
|
||||
msgstr ""
|
||||
msgstr "Feil under opprettelse av hendelses sesjon (error %u)."
|
||||
|
||||
#: ETWLog.cpp:251 ETWLog.cpp:267 ETWLog.cpp:281
|
||||
#, c-format
|
||||
msgid "Error enabling %s event provider (error %u)."
|
||||
msgstr ""
|
||||
msgstr "Feil under aktivering av %s hendelses tilbyder (error %u)."
|
||||
|
||||
#: Frame.cpp:48 Frame.cpp:108 Frame.cpp:113 Frame.cpp:168 Frame.cpp:170
|
||||
#, c-format
|
||||
msgid "Toggles display of %s records"
|
||||
msgstr ""
|
||||
msgstr "Veksler mellom visning av %s poster"
|
||||
|
||||
#: Frame.cpp:65
|
||||
msgid "E&xit"
|
||||
msgstr ""
|
||||
msgstr "E&xit"
|
||||
|
||||
#: Frame.cpp:65
|
||||
msgid "Quits this program"
|
||||
msgstr ""
|
||||
msgstr "Avslutter programmet"
|
||||
|
||||
#: Frame.cpp:69
|
||||
msgid "&Program"
|
||||
msgstr ""
|
||||
msgstr "&Program"
|
||||
|
||||
#: Frame.cpp:73
|
||||
msgid "&Copy"
|
||||
msgstr ""
|
||||
msgstr "&Kopier"
|
||||
|
||||
#: Frame.cpp:73 Frame.cpp:154
|
||||
msgid "Copies selected records to clipboard"
|
||||
msgstr ""
|
||||
msgstr "Kopierer valgte poster til utklippstavlen"
|
||||
|
||||
#: Frame.cpp:78
|
||||
msgid "Copy A&ll"
|
||||
msgstr ""
|
||||
msgstr "Kopier A%lt"
|
||||
|
||||
#: Frame.cpp:78 Frame.cpp:156
|
||||
msgid "Copies all records to clipboard (including hidden)"
|
||||
msgstr ""
|
||||
msgstr "Kopierer alle poster til utklippstavlen (inkludert skjulte)"
|
||||
|
||||
#: Frame.cpp:83 Frame.cpp:158
|
||||
msgid "Clear"
|
||||
msgstr ""
|
||||
msgstr "Fjern"
|
||||
|
||||
#: Frame.cpp:83 Frame.cpp:158
|
||||
msgid "Clears all records from the log"
|
||||
msgstr ""
|
||||
msgstr "Fjerner all poster fra loggen"
|
||||
|
||||
#: Frame.cpp:90
|
||||
msgid "Select &All"
|
||||
msgstr ""
|
||||
msgstr "Velg %Alle"
|
||||
|
||||
#: Frame.cpp:90
|
||||
msgid "Selects all visible records"
|
||||
msgstr ""
|
||||
msgstr "Velg alle synlige poster"
|
||||
|
||||
#: Frame.cpp:94
|
||||
msgid "Select &None"
|
||||
msgstr ""
|
||||
msgstr "Velg &Ingen"
|
||||
|
||||
#: Frame.cpp:94
|
||||
msgid "Clears record selection"
|
||||
msgstr ""
|
||||
msgstr "Fjerner valg av poster"
|
||||
|
||||
#: Frame.cpp:97 Frame.cpp:142
|
||||
msgid "&Edit"
|
||||
msgstr ""
|
||||
msgstr "&Rediger"
|
||||
|
||||
#: Frame.cpp:101
|
||||
msgid "Auto &Scroll"
|
||||
msgstr ""
|
||||
msgstr "Auto &Scroll"
|
||||
|
||||
#: Frame.cpp:101 Frame.cpp:164
|
||||
msgid "Automatically scrolls to the most recent records as they come-in"
|
||||
msgstr ""
|
||||
msgstr "Blar automatisk til nye poster etterhvert som de kommer inn"
|
||||
|
||||
#: Frame.cpp:123 Frame.cpp:176
|
||||
msgid "Verbose"
|
||||
msgstr ""
|
||||
msgstr "Verbose"
|
||||
|
||||
#: Frame.cpp:123 Frame.cpp:176
|
||||
msgid "Displays all levels of records"
|
||||
msgstr ""
|
||||
msgstr "Vis alle nivåer av poster"
|
||||
|
||||
#: Frame.cpp:127 Frame.cpp:178
|
||||
msgid "Informational"
|
||||
msgstr ""
|
||||
msgstr "Informasjon"
|
||||
|
||||
#: Frame.cpp:127 Frame.cpp:178
|
||||
msgid "Displays all records up to informational level"
|
||||
msgstr ""
|
||||
msgstr "Vis alle poster opp til nivå informasjon"
|
||||
|
||||
#: Frame.cpp:131 Frame.cpp:180
|
||||
msgid "Warning"
|
||||
msgstr ""
|
||||
msgstr "Advarsel"
|
||||
|
||||
#: Frame.cpp:131 Frame.cpp:180
|
||||
msgid "Displays all records up to warning level"
|
||||
msgstr ""
|
||||
msgstr "Vis alle poster opp til nivå advarsel"
|
||||
|
||||
#: Frame.cpp:135 Frame.cpp:182
|
||||
msgid "Error"
|
||||
msgstr ""
|
||||
msgstr "Feil"
|
||||
|
||||
#: Frame.cpp:135 Frame.cpp:182
|
||||
msgid "Displays error level records only"
|
||||
msgstr ""
|
||||
msgstr "Vis kun poster med nivå feil"
|
||||
|
||||
#: Frame.cpp:142 Frame.cpp:146
|
||||
#, c-format
|
||||
msgid "%s toolbar"
|
||||
msgstr ""
|
||||
msgstr "%s verktøylinje"
|
||||
|
||||
#: Frame.cpp:142 Frame.cpp:146
|
||||
#, c-format
|
||||
msgid "Toggles display of %s toolbar"
|
||||
msgstr ""
|
||||
msgstr "Veksler mellom visning av %s verktøylinje"
|
||||
|
||||
#: Frame.cpp:142 Frame.cpp:146 Frame.cpp:185
|
||||
msgid "View"
|
||||
msgstr ""
|
||||
msgstr "Se"
|
||||
|
||||
#: Frame.cpp:146 Frame.cpp:149
|
||||
msgid "&View"
|
||||
msgstr ""
|
||||
msgstr "&Se"
|
||||
|
||||
#: Frame.cpp:154
|
||||
msgid "Copy"
|
||||
msgstr ""
|
||||
msgstr "Kopier"
|
||||
|
||||
#: Frame.cpp:156
|
||||
msgid "Copy All"
|
||||
msgstr ""
|
||||
msgstr "Kopier Alt"
|
||||
|
||||
#: Frame.cpp:161
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
msgstr "Rediger"
|
||||
|
||||
#: Frame.cpp:164
|
||||
msgid "Auto Scroll"
|
||||
msgstr ""
|
||||
msgstr "Auto Scroll"
|
||||
|
||||
#: Frame.cpp:189
|
||||
msgid "Trace Log"
|
||||
msgstr ""
|
||||
msgstr "Sporingslogg"
|
||||
|
||||
#: MSIBuild/En.Win32.Release.Feature-2.idtx:3
|
||||
#: MSIBuild/En.Win32.Release.Shortcut-2.idtx:3
|
||||
@@ -219,11 +222,11 @@ msgstr "1252"
|
||||
#: MSIBuild/En.Win32.Release.Shortcut-2.idtx:4
|
||||
#: MSIBuild/En.x64.Release.Shortcut-2.idtx:4
|
||||
msgid "EVENTM~1|GÉANTLink Event Monitor"
|
||||
msgstr ""
|
||||
msgstr "EVENTM~1|GÉANTLink Hendelses monitor"
|
||||
|
||||
#: MSIBuild/En.Win32.Release.Feature-2.idtx:4
|
||||
#: MSIBuild/En.Win32.Release.Shortcut-2.idtx:4
|
||||
#: MSIBuild/En.x64.Release.Feature-2.idtx:4
|
||||
#: MSIBuild/En.x64.Release.Shortcut-2.idtx:4
|
||||
msgid "Real-time display of internal events"
|
||||
msgstr ""
|
||||
msgstr "Sanntidsvisning av interne hendelser"
|
||||
|
@@ -80,7 +80,7 @@ msgstr "Przełącza wyświetlanie rekordów %s"
|
||||
|
||||
#: Frame.cpp:65
|
||||
msgid "E&xit"
|
||||
msgstr ""
|
||||
msgstr "W&yjście"
|
||||
|
||||
#: Frame.cpp:65
|
||||
msgid "Quits this program"
|
||||
@@ -88,11 +88,11 @@ msgstr "Kończy ten program"
|
||||
|
||||
#: Frame.cpp:69
|
||||
msgid "&Program"
|
||||
msgstr ""
|
||||
msgstr "&Program"
|
||||
|
||||
#: Frame.cpp:73
|
||||
msgid "&Copy"
|
||||
msgstr ""
|
||||
msgstr "&Kopiuj"
|
||||
|
||||
#: Frame.cpp:73 Frame.cpp:154
|
||||
msgid "Copies selected records to clipboard"
|
||||
@@ -100,7 +100,7 @@ msgstr "Kopiuje zaznaczone rekordy do schowka"
|
||||
|
||||
#: Frame.cpp:78
|
||||
msgid "Copy A&ll"
|
||||
msgstr ""
|
||||
msgstr "Kopiuj w&szystko"
|
||||
|
||||
#: Frame.cpp:78 Frame.cpp:156
|
||||
msgid "Copies all records to clipboard (including hidden)"
|
||||
@@ -116,7 +116,7 @@ msgstr "Kasuje wszystkie rekordy z logu"
|
||||
|
||||
#: Frame.cpp:90
|
||||
msgid "Select &All"
|
||||
msgstr ""
|
||||
msgstr "Z&aznacz wszystko"
|
||||
|
||||
#: Frame.cpp:90
|
||||
msgid "Selects all visible records"
|
||||
@@ -124,7 +124,7 @@ msgstr "Zaznacz wszystkie widoczne rekordy"
|
||||
|
||||
#: Frame.cpp:94
|
||||
msgid "Select &None"
|
||||
msgstr ""
|
||||
msgstr "&Usuń zaznaczenie"
|
||||
|
||||
#: Frame.cpp:94
|
||||
msgid "Clears record selection"
|
||||
@@ -132,11 +132,11 @@ msgstr "Kasuje zaznaczenie"
|
||||
|
||||
#: Frame.cpp:97 Frame.cpp:142
|
||||
msgid "&Edit"
|
||||
msgstr ""
|
||||
msgstr "&Edytuj"
|
||||
|
||||
#: Frame.cpp:101
|
||||
msgid "Auto &Scroll"
|
||||
msgstr ""
|
||||
msgstr "Au&tomatyczne przewijanie"
|
||||
|
||||
#: Frame.cpp:101 Frame.cpp:164
|
||||
msgid "Automatically scrolls to the most recent records as they come-in"
|
||||
@@ -191,7 +191,7 @@ msgstr "Pokaż"
|
||||
|
||||
#: Frame.cpp:146 Frame.cpp:149
|
||||
msgid "&View"
|
||||
msgstr ""
|
||||
msgstr "&Widok"
|
||||
|
||||
#: Frame.cpp:154
|
||||
msgid "Copy"
|
||||
@@ -223,7 +223,7 @@ msgstr "1250"
|
||||
#: MSIBuild/En.Win32.Release.Shortcut-2.idtx:4
|
||||
#: MSIBuild/En.x64.Release.Shortcut-2.idtx:4
|
||||
msgid "EVENTM~1|GÉANTLink Event Monitor"
|
||||
msgstr ""
|
||||
msgstr "EVENTM~1|Monitor zdarzeń GÉANTLink"
|
||||
|
||||
#: MSIBuild/En.Win32.Release.Feature-2.idtx:4
|
||||
#: MSIBuild/En.Win32.Release.Shortcut-2.idtx:4
|
||||
|
@@ -5,7 +5,7 @@ msgstr ""
|
||||
"Project-Id-Version: EventMonitor\n"
|
||||
"POT-Creation-Date: 2016-09-12 11:18+0200\n"
|
||||
"PO-Revision-Date: 2016-06-02 12:27+0200\n"
|
||||
"Last-Translator: Simon Rozman <simon@rozman.si>, 2016\n"
|
||||
"Last-Translator: Pedro Simões <psimoes@fccn.pt>, 2016\n"
|
||||
"Language-Team: Portuguese (Portugal) (https://www.transifex.com/eduroam_devel/teams/11799/pt_PT/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -42,11 +42,11 @@ msgstr ""
|
||||
|
||||
#: ETWLog.cpp:170
|
||||
msgid "Source"
|
||||
msgstr ""
|
||||
msgstr "Fonte"
|
||||
|
||||
#: ETWLog.cpp:171
|
||||
msgid "Event"
|
||||
msgstr ""
|
||||
msgstr "Evento"
|
||||
|
||||
#: ETWLog.cpp:228
|
||||
msgid ""
|
||||
@@ -81,15 +81,15 @@ msgstr ""
|
||||
|
||||
#: Frame.cpp:65
|
||||
msgid "Quits this program"
|
||||
msgstr ""
|
||||
msgstr "Sair deste programa"
|
||||
|
||||
#: Frame.cpp:69
|
||||
msgid "&Program"
|
||||
msgstr ""
|
||||
msgstr "&Programa"
|
||||
|
||||
#: Frame.cpp:73
|
||||
msgid "&Copy"
|
||||
msgstr ""
|
||||
msgstr "&Copiar"
|
||||
|
||||
#: Frame.cpp:73 Frame.cpp:154
|
||||
msgid "Copies selected records to clipboard"
|
||||
@@ -105,7 +105,7 @@ msgstr ""
|
||||
|
||||
#: Frame.cpp:83 Frame.cpp:158
|
||||
msgid "Clear"
|
||||
msgstr ""
|
||||
msgstr "Limpar"
|
||||
|
||||
#: Frame.cpp:83 Frame.cpp:158
|
||||
msgid "Clears all records from the log"
|
||||
@@ -129,7 +129,7 @@ msgstr ""
|
||||
|
||||
#: Frame.cpp:97 Frame.cpp:142
|
||||
msgid "&Edit"
|
||||
msgstr ""
|
||||
msgstr "&Editar"
|
||||
|
||||
#: Frame.cpp:101
|
||||
msgid "Auto &Scroll"
|
||||
@@ -157,7 +157,7 @@ msgstr ""
|
||||
|
||||
#: Frame.cpp:131 Frame.cpp:180
|
||||
msgid "Warning"
|
||||
msgstr ""
|
||||
msgstr "Alerta"
|
||||
|
||||
#: Frame.cpp:131 Frame.cpp:180
|
||||
msgid "Displays all records up to warning level"
|
||||
@@ -165,7 +165,7 @@ msgstr ""
|
||||
|
||||
#: Frame.cpp:135 Frame.cpp:182
|
||||
msgid "Error"
|
||||
msgstr ""
|
||||
msgstr "Erro"
|
||||
|
||||
#: Frame.cpp:135 Frame.cpp:182
|
||||
msgid "Displays error level records only"
|
||||
@@ -183,23 +183,23 @@ msgstr ""
|
||||
|
||||
#: Frame.cpp:142 Frame.cpp:146 Frame.cpp:185
|
||||
msgid "View"
|
||||
msgstr ""
|
||||
msgstr "Ver"
|
||||
|
||||
#: Frame.cpp:146 Frame.cpp:149
|
||||
msgid "&View"
|
||||
msgstr ""
|
||||
msgstr "&Ver"
|
||||
|
||||
#: Frame.cpp:154
|
||||
msgid "Copy"
|
||||
msgstr ""
|
||||
msgstr "Copiar"
|
||||
|
||||
#: Frame.cpp:156
|
||||
msgid "Copy All"
|
||||
msgstr ""
|
||||
msgstr "Copiar tudo"
|
||||
|
||||
#: Frame.cpp:161
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
msgstr "Editar"
|
||||
|
||||
#: Frame.cpp:164
|
||||
msgid "Auto Scroll"
|
||||
|
Binary file not shown.
@@ -2,14 +2,14 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: GÉANTLink MSI\n"
|
||||
"POT-Creation-Date: 2016-08-31 14:33+0200\n"
|
||||
"POT-Creation-Date: 2016-09-19 11:20+0200\n"
|
||||
"PO-Revision-Date: 2016-06-02 12:27+0200\n"
|
||||
"Last-Translator: Simon Rozman <simon.rozman@amebis.si>\n"
|
||||
"Language-Team: Amebis, d. o. o., Kamnik <info@amebis.si>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 1.8.8\n"
|
||||
"X-Generator: Poedit 1.8.9\n"
|
||||
"X-Poedit-Basepath: ../Main\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"Language: en_US\n"
|
||||
@@ -17,20 +17,16 @@ msgstr ""
|
||||
"X-Poedit-KeywordsList: _\n"
|
||||
"X-Poedit-SearchPath-0: .\n"
|
||||
|
||||
#: En.Win32.Release.LaunchCondition-2.idtx:4
|
||||
#: En.x64.Release.LaunchCondition-2.idtx:4
|
||||
#: en_US.Win32.Release.LaunchCondition-2.idtx:4
|
||||
#: en_US.x64.Release.LaunchCondition-2.idtx:4
|
||||
msgid "[ProductName] requires Windows Vista or later version of Windows."
|
||||
msgstr ""
|
||||
|
||||
#: En.Win32.Release.Property-2.idtx:3 En.x64.Release.Property-2.idtx:3
|
||||
msgid "1252"
|
||||
msgstr ""
|
||||
|
||||
#: En.Win32.Release.Property-2.idtx:4 En.Win32.Release.Property-2.idtx:5
|
||||
#: En.x64.Release.Property-2.idtx:4 En.x64.Release.Property-2.idtx:5
|
||||
#: en_US.Win32.Release.Property-2.idtx:4 en_US.Win32.Release.Property-2.idtx:5
|
||||
#: en_US.x64.Release.Property-2.idtx:4 en_US.x64.Release.Property-2.idtx:5
|
||||
msgid "http://www.geant.org/"
|
||||
msgstr ""
|
||||
|
||||
#: En.Win32.Release.Property-2.idtx:6 En.x64.Release.Property-2.idtx:6
|
||||
#: en_US.Win32.Release.Property-2.idtx:6 en_US.x64.Release.Property-2.idtx:6
|
||||
msgid "https://github.com/Amebis/GEANTLink/releases"
|
||||
msgstr ""
|
||||
|
@@ -5,7 +5,7 @@ msgstr ""
|
||||
"Project-Id-Version: GÉANTLink MSI\n"
|
||||
"POT-Creation-Date: 2016-08-31 14:33+0200\n"
|
||||
"PO-Revision-Date: 2016-06-02 12:27+0200\n"
|
||||
"Last-Translator: Simon Rozman <simon@rozman.si>, 2016\n"
|
||||
"Last-Translator: eduroam_devel <stefan.winter@restena.lu>, 2016\n"
|
||||
"Language-Team: German (https://www.transifex.com/eduroam_devel/teams/11799/de/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -22,6 +22,7 @@ msgstr ""
|
||||
#: En.x64.Release.LaunchCondition-2.idtx:4
|
||||
msgid "[ProductName] requires Windows Vista or later version of Windows."
|
||||
msgstr ""
|
||||
"[ProductName] benötigt Windows Vista oder eine neuere Version von Windows."
|
||||
|
||||
#: En.Win32.Release.Property-2.idtx:3 En.x64.Release.Property-2.idtx:3
|
||||
msgid "1252"
|
||||
@@ -30,7 +31,7 @@ msgstr "1252"
|
||||
#: En.Win32.Release.Property-2.idtx:4 En.Win32.Release.Property-2.idtx:5
|
||||
#: En.x64.Release.Property-2.idtx:4 En.x64.Release.Property-2.idtx:5
|
||||
msgid "http://www.geant.org/"
|
||||
msgstr ""
|
||||
msgstr "http://www.geant.org/"
|
||||
|
||||
#: En.Win32.Release.Property-2.idtx:6 En.x64.Release.Property-2.idtx:6
|
||||
msgid "https://github.com/Amebis/GEANTLink/releases"
|
||||
|
@@ -22,15 +22,16 @@ msgstr ""
|
||||
#: En.x64.Release.LaunchCondition-2.idtx:4
|
||||
msgid "[ProductName] requires Windows Vista or later version of Windows."
|
||||
msgstr ""
|
||||
"[Όνομα Προϊόντος] απαιτεί Windows Vista ή μεταγενέστερη έκδοση Windows."
|
||||
|
||||
#: En.Win32.Release.Property-2.idtx:3 En.x64.Release.Property-2.idtx:3
|
||||
msgid "1252"
|
||||
msgstr "1253"
|
||||
msgstr "1252"
|
||||
|
||||
#: En.Win32.Release.Property-2.idtx:4 En.Win32.Release.Property-2.idtx:5
|
||||
#: En.x64.Release.Property-2.idtx:4 En.x64.Release.Property-2.idtx:5
|
||||
msgid "http://www.geant.org/"
|
||||
msgstr ""
|
||||
msgstr "http://www.geant.org/"
|
||||
|
||||
#: En.Win32.Release.Property-2.idtx:6 En.x64.Release.Property-2.idtx:6
|
||||
msgid "https://github.com/Amebis/GEANTLink/releases"
|
||||
|
@@ -5,7 +5,7 @@ msgstr ""
|
||||
"Project-Id-Version: GÉANTLink MSI\n"
|
||||
"POT-Creation-Date: 2016-08-31 14:33+0200\n"
|
||||
"PO-Revision-Date: 2016-06-02 12:27+0200\n"
|
||||
"Last-Translator: Simon Rozman <simon@rozman.si>, 2016\n"
|
||||
"Last-Translator: Rimas Kudelis <rq@akl.lt>, 2016\n"
|
||||
"Language-Team: Lithuanian (https://www.transifex.com/eduroam_devel/teams/11799/lt/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -22,6 +22,8 @@ msgstr ""
|
||||
#: En.x64.Release.LaunchCondition-2.idtx:4
|
||||
msgid "[ProductName] requires Windows Vista or later version of Windows."
|
||||
msgstr ""
|
||||
"„[ProductName]“ veikimui būtina „Windows Vista“ ar vėlesnė „Windows“ "
|
||||
"versija."
|
||||
|
||||
#: En.Win32.Release.Property-2.idtx:3 En.x64.Release.Property-2.idtx:3
|
||||
msgid "1252"
|
||||
@@ -30,7 +32,7 @@ msgstr "1257"
|
||||
#: En.Win32.Release.Property-2.idtx:4 En.Win32.Release.Property-2.idtx:5
|
||||
#: En.x64.Release.Property-2.idtx:4 En.x64.Release.Property-2.idtx:5
|
||||
msgid "http://www.geant.org/"
|
||||
msgstr ""
|
||||
msgstr "http://www.geant.org/"
|
||||
|
||||
#: En.Win32.Release.Property-2.idtx:6 En.x64.Release.Property-2.idtx:6
|
||||
msgid "https://github.com/Amebis/GEANTLink/releases"
|
||||
|
@@ -5,7 +5,7 @@ msgstr ""
|
||||
"Project-Id-Version: GÉANTLink MSI\n"
|
||||
"POT-Creation-Date: 2016-08-31 14:33+0200\n"
|
||||
"PO-Revision-Date: 2016-06-02 12:27+0200\n"
|
||||
"Last-Translator: Simon Rozman <simon@rozman.si>, 2016\n"
|
||||
"Last-Translator: Tom Ivar Myren <tom.myren@uninett.no>, 2016\n"
|
||||
"Language-Team: Norwegian Bokmål (https://www.transifex.com/eduroam_devel/teams/11799/nb/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -21,7 +21,7 @@ msgstr ""
|
||||
#: En.Win32.Release.LaunchCondition-2.idtx:4
|
||||
#: En.x64.Release.LaunchCondition-2.idtx:4
|
||||
msgid "[ProductName] requires Windows Vista or later version of Windows."
|
||||
msgstr ""
|
||||
msgstr "[ProductName] krever Windows Vista eller nyere versjon av Windows."
|
||||
|
||||
#: En.Win32.Release.Property-2.idtx:3 En.x64.Release.Property-2.idtx:3
|
||||
msgid "1252"
|
||||
@@ -30,7 +30,7 @@ msgstr "1252"
|
||||
#: En.Win32.Release.Property-2.idtx:4 En.Win32.Release.Property-2.idtx:5
|
||||
#: En.x64.Release.Property-2.idtx:4 En.x64.Release.Property-2.idtx:5
|
||||
msgid "http://www.geant.org/"
|
||||
msgstr ""
|
||||
msgstr "http://www.geant.org/"
|
||||
|
||||
#: En.Win32.Release.Property-2.idtx:6 En.x64.Release.Property-2.idtx:6
|
||||
msgid "https://github.com/Amebis/GEANTLink/releases"
|
||||
|
@@ -5,7 +5,7 @@ msgstr ""
|
||||
"Project-Id-Version: GÉANTLink MSI\n"
|
||||
"POT-Creation-Date: 2016-08-31 14:33+0200\n"
|
||||
"PO-Revision-Date: 2016-06-02 12:27+0200\n"
|
||||
"Last-Translator: Simon Rozman <simon@rozman.si>, 2016\n"
|
||||
"Last-Translator: Tomasz Wolniewicz <tw2529@gmail.com>, 2016\n"
|
||||
"Language-Team: Polish (Poland) (https://www.transifex.com/eduroam_devel/teams/11799/pl_PL/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -21,7 +21,7 @@ msgstr ""
|
||||
#: En.Win32.Release.LaunchCondition-2.idtx:4
|
||||
#: En.x64.Release.LaunchCondition-2.idtx:4
|
||||
msgid "[ProductName] requires Windows Vista or later version of Windows."
|
||||
msgstr ""
|
||||
msgstr "[ProductName] wymaga Windows Vista albo nowszej wersji Windows."
|
||||
|
||||
#: En.Win32.Release.Property-2.idtx:3 En.x64.Release.Property-2.idtx:3
|
||||
msgid "1252"
|
||||
@@ -30,7 +30,7 @@ msgstr "1250"
|
||||
#: En.Win32.Release.Property-2.idtx:4 En.Win32.Release.Property-2.idtx:5
|
||||
#: En.x64.Release.Property-2.idtx:4 En.x64.Release.Property-2.idtx:5
|
||||
msgid "http://www.geant.org/"
|
||||
msgstr ""
|
||||
msgstr "http://www.geant.org/"
|
||||
|
||||
#: En.Win32.Release.Property-2.idtx:6 En.x64.Release.Property-2.idtx:6
|
||||
msgid "https://github.com/Amebis/GEANTLink/releases"
|
||||
|
@@ -5,7 +5,7 @@ msgstr ""
|
||||
"Project-Id-Version: GÉANTLink MSI\n"
|
||||
"POT-Creation-Date: 2016-08-31 14:33+0200\n"
|
||||
"PO-Revision-Date: 2016-06-02 12:27+0200\n"
|
||||
"Last-Translator: Simon Rozman <simon@rozman.si>, 2016\n"
|
||||
"Last-Translator: Pedro Simões <psimoes@fccn.pt>, 2016\n"
|
||||
"Language-Team: Portuguese (Portugal) (https://www.transifex.com/eduroam_devel/teams/11799/pt_PT/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -21,7 +21,7 @@ msgstr ""
|
||||
#: En.Win32.Release.LaunchCondition-2.idtx:4
|
||||
#: En.x64.Release.LaunchCondition-2.idtx:4
|
||||
msgid "[ProductName] requires Windows Vista or later version of Windows."
|
||||
msgstr ""
|
||||
msgstr "[ProductName] requer o Windows Vista ou versão posterior do Windows"
|
||||
|
||||
#: En.Win32.Release.Property-2.idtx:3 En.x64.Release.Property-2.idtx:3
|
||||
msgid "1252"
|
||||
@@ -30,7 +30,7 @@ msgstr "1252"
|
||||
#: En.Win32.Release.Property-2.idtx:4 En.Win32.Release.Property-2.idtx:5
|
||||
#: En.x64.Release.Property-2.idtx:4 En.x64.Release.Property-2.idtx:5
|
||||
msgid "http://www.geant.org/"
|
||||
msgstr ""
|
||||
msgstr "http://www.geant.org/"
|
||||
|
||||
#: En.Win32.Release.Property-2.idtx:6 En.x64.Release.Property-2.idtx:6
|
||||
msgid "https://github.com/Amebis/GEANTLink/releases"
|
||||
|
Submodule MSI/MSIBuild updated: 8d776b003c...df5ffbdd2b
BIN
MSILocal.mak
BIN
MSILocal.mak
Binary file not shown.
77
README.md
Normal file
77
README.md
Normal file
@@ -0,0 +1,77 @@
|
||||
# GÉANTLink
|
||||
|
||||
Suite of EAP supplicants for Windows - IEEE 802.1X plug-ins for enterprise network authentication
|
||||
|
||||
## Building
|
||||
|
||||
### Building Environment Requirements
|
||||
- Microsoft Windows Vista or later
|
||||
- Microsoft Visual Studio 2010 SP1
|
||||
- _msgfmt.exe_ from [gettext](https://www.gnu.org/software/gettext/);
|
||||
Hint: [Poedit](https://poedit.net/) contains up-to-date binary Win32 compiled gettext-utilities. Install it and add _GettextTools\bin_ folder to path.
|
||||
- _sed.exe_ and _grep.exe_
|
||||
- _MsiDb.Exe_ and other command line utilities for MSI packaging distributed as a part of Microsoft Windows SDK (installed with Visual Studio). Add SDK's _Bin_ folder to path.
|
||||
|
||||
### wxWidgets
|
||||
GÉANTLink is using wxWidgets v3.0.2 static libraries. Unfortunately, dynamic libraries (DLL) variant is available as a binary download only. Therefore static libraries needs to be compiled from [source](https://github.com/wxWidgets/wxWidgets).
|
||||
|
||||
#### Compiling wxWidgets Win32 static libraries
|
||||
1. Start _Visual Studio Command Prompt (2010)_
|
||||
2. Change working directory to _build\msw_
|
||||
3. Run: `nmake /f makefile.vc /ls RUNTIME_LIBS=static SHARED=0`
|
||||
4. Run: `nmake /f makefile.vc /ls RUNTIME_LIBS=static SHARED=0 BUILD=release`
|
||||
|
||||
#### Compiling wxWidgets x64 static libraries
|
||||
1. Start _Visual Studio x64 Cross Tools Command Prompt (2010)_
|
||||
2. Change working directory to _build\msw_
|
||||
3. Run: `nmake /f makefile.vc /ls RUNTIME_LIBS=static SHARED=0 TARGET_CPU=X64`
|
||||
4. Run: `nmake /f makefile.vc /ls RUNTIME_LIBS=static SHARED=0 TARGET_CPU=X64 BUILD=release`
|
||||
|
||||
#### Specifying wxWidgets path
|
||||
GÉANTLink compilation references wxWidgets libraries using `WXWIN` environment variable. Please set it to wxWidgets folder (i.e. `C:\SDK\wxWidgets\3.0.2`).
|
||||
|
||||
### Digital Signing of Build Outputs
|
||||
In order to have the build process digitally sign output files, one should provide the following:
|
||||
|
||||
1. A signing certificate installed in the current user’s certificate store.
|
||||
2. The following variables in the environment:
|
||||
- `ManifestCertificateThumbprint` - set the value to certificate’s SHA1 thumbprint (hexadecimal, without spaces, i.e. `bc0d8da45f9eeefcbe4e334e1fc262804df88d7e`).
|
||||
- `ManifestTimestampUrl` - set the value to URL used to perform timestamp signature (i.e. `http://timestamp.verisign.com/scripts/timstamp.dll`). In order to perform timestamp signing successfully, the computer running the build should be online and able to access this URL.
|
||||
|
||||
Please note that only Release builds are configured for timestamp signing. Debug configurations do not attempt to timestamp sign the resulting DLL and EXE files in order to speed up the building process and enable offline building.
|
||||
|
||||
### Building
|
||||
|
||||
#### Building in Visual Studio IDE
|
||||
GÉANTLink can be build and debugged opening _VS10Solution.sln_ in Visual C++ 2010 IDE.
|
||||
|
||||
Before one can attempt to debug EAP DLLs, you should run `nmake register` from an elevated command prompt. See _Building in command line_ chapter below.
|
||||
|
||||
Next, one must configure a network profile actually using GÉANTLink for the authentication.
|
||||
|
||||
GÉANTLink EAP modules are divided into two DLLs: backend (i.e. _EAPTTLS.dll_) and GUI (i.e. _EAPTTLSUI.dll_).
|
||||
|
||||
##### Backend DLL
|
||||
The backend DLL is loaded by _Eap3Host.exe_ process when connecting to the network. One approach to debug the module is to start Visual C++ elevated, open _VS10Solution.sln_, and attach to running _Eap3Host.exe_ process.
|
||||
On initial connection attempt _Eap3Host.exe_ will load the DLL and will not release it until _EapHost_ service is restarted.
|
||||
To debug early life of our backend DLL, uncomment `Sleep(10000)` in `DllMain()` of the module, and set breakpoints. This should give you plenty of time to attach the debugger to _Eap3Host.exe_ process before our DLL starts servicing authentication.
|
||||
|
||||
##### GUI DLL
|
||||
The GUI DLL is loaded by _DllHost.exe_ process on XML profile configuration import/export and when interactive user interface is required.
|
||||
A few seconds after desired function call has finished, _DllHost.exe_ terminates and releases the DLL.
|
||||
To debug early life of our GUI DLL, uncomment `Sleep(10000)` in `DllMain()` of the module, and set breakpoints. This should give you plenty of time to attach the debugger to _DllHost.exe_ process before our DLL starts.
|
||||
|
||||
#### Building in command line
|
||||
Use of standard command prompt is recommended, providing that Microsoft Visual Studio 2010 folders containing _nmake.exe_ and _devenv.com_ are added to the path.
|
||||
|
||||
Use Microsoft NMAKE to build the project.
|
||||
|
||||
Command | Explanation
|
||||
-------------------|------------------------------------------
|
||||
`nmake Clean` | Deletes all intermediate and output files.
|
||||
`nmake Register` | Builds a debug version of project, registers DLLs, and adds Start Menu shortcuts. For testing and development purposes only! Requires elevated command prompt.
|
||||
`nmake Unregister` | Removes Start Menu shortcuts, unregisters DLLs. For testing development purposes only! Requires elevated command prompt.
|
||||
`nmake Setup` | Builds a release version of project and release MSI setup files. The resulting files can be found in _output\Setup_ folder.
|
||||
`nmake SetupDebug` | Builds a debug version of project and debug MSI setup files. The resulting files can be found in _output\Setup_ folder.
|
||||
|
||||
The `/ls` flag can be appended to the commands above to reduce NMAKE’s verbosity. You can combine multiple targets (i.e. nmake Unregister Clean). Please, see NMAKE reference for further reading.
|
@@ -3,6 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 11.00
|
||||
# Visual Studio 2010
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{14D5FE5B-9742-4D1F-A1E0-32E694B94AAB}"
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
README.md = README.md
|
||||
include\Version.h = include\Version.h
|
||||
EndProjectSection
|
||||
EndProject
|
||||
|
Binary file not shown.
@@ -1,14 +1,15 @@
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WLANManager\n"
|
||||
"POT-Creation-Date: 2016-08-28 12:03+0200\n"
|
||||
"POT-Creation-Date: 2016-09-19 11:22+0200\n"
|
||||
"PO-Revision-Date: 2016-06-02 12:27+0200\n"
|
||||
"Last-Translator: Simon Rozman <simon.rozman@amebis.si>\n"
|
||||
"Language-Team: Amebis, d. o. o., Kamnik <info@amebis.si>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 1.8.8\n"
|
||||
"X-Generator: Poedit 1.8.9\n"
|
||||
"X-Poedit-Basepath: ..\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"Language: en_US\n"
|
||||
@@ -16,17 +17,16 @@ msgstr ""
|
||||
"X-Poedit-KeywordsList: _\n"
|
||||
"X-Poedit-SearchPath-0: .\n"
|
||||
|
||||
#: MSIBuild/En.Win32.Release.Feature-2.idtx:3
|
||||
#: MSIBuild/En.x64.Release.Feature-2.idtx:3
|
||||
msgid "1252"
|
||||
msgstr ""
|
||||
|
||||
#: MSIBuild/En.Win32.Release.Feature-2.idtx:4
|
||||
#: MSIBuild/En.x64.Release.Feature-2.idtx:4
|
||||
msgid "Helper utility to support direct shortcuts to Wireless Network Properties"
|
||||
msgstr ""
|
||||
|
||||
#: MSIBuild/En.Win32.Release.Feature-2.idtx:4
|
||||
#: MSIBuild/En.x64.Release.Feature-2.idtx:4
|
||||
#: MSIBuild/en_US.Win32.Debug.Feature-2.idtx:4
|
||||
#: MSIBuild/en_US.Win32.Release.Feature-2.idtx:4
|
||||
#: MSIBuild/en_US.x64.Debug.Feature-2.idtx:4
|
||||
#: MSIBuild/en_US.x64.Release.Feature-2.idtx:4
|
||||
msgid "WLAN Manager"
|
||||
msgstr ""
|
||||
|
||||
#: MSIBuild/en_US.Win32.Debug.Feature-2.idtx:4
|
||||
#: MSIBuild/en_US.Win32.Release.Feature-2.idtx:4
|
||||
#: MSIBuild/en_US.x64.Debug.Feature-2.idtx:4
|
||||
#: MSIBuild/en_US.x64.Release.Feature-2.idtx:4
|
||||
msgid "Helper utility to support direct shortcuts to Wireless Network Properties"
|
||||
msgstr ""
|
||||
|
@@ -1,11 +1,12 @@
|
||||
# Translators:
|
||||
# Simon Rozman <simon@rozman.si>, 2016
|
||||
# eduroam_devel <stefan.winter@restena.lu>, 2016
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WLANManager\n"
|
||||
"POT-Creation-Date: 2016-08-28 12:03+0200\n"
|
||||
"PO-Revision-Date: 2016-06-02 12:27+0200\n"
|
||||
"Last-Translator: Simon Rozman <simon@rozman.si>, 2016\n"
|
||||
"Last-Translator: eduroam_devel <stefan.winter@restena.lu>, 2016\n"
|
||||
"Language-Team: German (https://www.transifex.com/eduroam_devel/teams/11799/de/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -28,8 +29,10 @@ msgstr "1252"
|
||||
msgid ""
|
||||
"Helper utility to support direct shortcuts to Wireless Network Properties"
|
||||
msgstr ""
|
||||
"Hilfswerkzeug das direkten Zugang zu den Eigenschaften der WLAN-Verbindung "
|
||||
"herstellt"
|
||||
|
||||
#: MSIBuild/En.Win32.Release.Feature-2.idtx:4
|
||||
#: MSIBuild/En.x64.Release.Feature-2.idtx:4
|
||||
msgid "WLAN Manager"
|
||||
msgstr ""
|
||||
msgstr "WLAN Verwaltung"
|
||||
|
@@ -1,11 +1,12 @@
|
||||
# Translators:
|
||||
# Simon Rozman <simon@rozman.si>, 2016
|
||||
# Rimas Kudelis <rq@akl.lt>, 2016
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WLANManager\n"
|
||||
"POT-Creation-Date: 2016-08-28 12:03+0200\n"
|
||||
"PO-Revision-Date: 2016-06-02 12:27+0200\n"
|
||||
"Last-Translator: Simon Rozman <simon@rozman.si>, 2016\n"
|
||||
"Last-Translator: Rimas Kudelis <rq@akl.lt>, 2016\n"
|
||||
"Language-Team: Lithuanian (https://www.transifex.com/eduroam_devel/teams/11799/lt/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -28,8 +29,10 @@ msgstr "1257"
|
||||
msgid ""
|
||||
"Helper utility to support direct shortcuts to Wireless Network Properties"
|
||||
msgstr ""
|
||||
"Pagalbinė programa, suteikianti galimybę naudotis tiesioginėmis nuorodomis į"
|
||||
" belaidžio tinklo ypatybes"
|
||||
|
||||
#: MSIBuild/En.Win32.Release.Feature-2.idtx:4
|
||||
#: MSIBuild/En.x64.Release.Feature-2.idtx:4
|
||||
msgid "WLAN Manager"
|
||||
msgstr ""
|
||||
msgstr "WLAN tvarkytuvė"
|
||||
|
@@ -1,11 +1,12 @@
|
||||
# Translators:
|
||||
# Simon Rozman <simon@rozman.si>, 2016
|
||||
# Tom Ivar Myren <tom.myren@uninett.no>, 2016
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WLANManager\n"
|
||||
"POT-Creation-Date: 2016-08-28 12:03+0200\n"
|
||||
"PO-Revision-Date: 2016-06-02 12:27+0200\n"
|
||||
"Last-Translator: Simon Rozman <simon@rozman.si>, 2016\n"
|
||||
"Last-Translator: Tom Ivar Myren <tom.myren@uninett.no>, 2016\n"
|
||||
"Language-Team: Norwegian Bokmål (https://www.transifex.com/eduroam_devel/teams/11799/nb/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -28,8 +29,9 @@ msgstr "1252"
|
||||
msgid ""
|
||||
"Helper utility to support direct shortcuts to Wireless Network Properties"
|
||||
msgstr ""
|
||||
"Helpeverktøy for å støtte direkte snarveier til trådløse nettverksegenskaper"
|
||||
|
||||
#: MSIBuild/En.Win32.Release.Feature-2.idtx:4
|
||||
#: MSIBuild/En.x64.Release.Feature-2.idtx:4
|
||||
msgid "WLAN Manager"
|
||||
msgstr ""
|
||||
msgstr "WLAN Manager"
|
||||
|
@@ -35,4 +35,4 @@ msgstr ""
|
||||
#: MSIBuild/En.Win32.Release.Feature-2.idtx:4
|
||||
#: MSIBuild/En.x64.Release.Feature-2.idtx:4
|
||||
msgid "WLAN Manager"
|
||||
msgstr ""
|
||||
msgstr "Menaźer WLAN"
|
||||
|
@@ -1,11 +1,12 @@
|
||||
# Translators:
|
||||
# Simon Rozman <simon@rozman.si>, 2016
|
||||
# Pedro Simões <psimoes@fccn.pt>, 2016
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WLANManager\n"
|
||||
"POT-Creation-Date: 2016-08-28 12:03+0200\n"
|
||||
"PO-Revision-Date: 2016-06-02 12:27+0200\n"
|
||||
"Last-Translator: Simon Rozman <simon@rozman.si>, 2016\n"
|
||||
"Last-Translator: Pedro Simões <psimoes@fccn.pt>, 2016\n"
|
||||
"Language-Team: Portuguese (Portugal) (https://www.transifex.com/eduroam_devel/teams/11799/pt_PT/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -32,4 +33,4 @@ msgstr ""
|
||||
#: MSIBuild/En.Win32.Release.Feature-2.idtx:4
|
||||
#: MSIBuild/En.x64.Release.Feature-2.idtx:4
|
||||
msgid "WLAN Manager"
|
||||
msgstr ""
|
||||
msgstr "WLAN Manager"
|
||||
|
Binary file not shown.
@@ -29,7 +29,7 @@
|
||||
// Product version as a single DWORD
|
||||
// Note: Used for version comparison within C/C++ code.
|
||||
//
|
||||
#define PRODUCT_VERSION 0x00ff1500
|
||||
#define PRODUCT_VERSION 0x00ff1800
|
||||
|
||||
//
|
||||
// Product version by components
|
||||
@@ -39,26 +39,26 @@
|
||||
//
|
||||
#define PRODUCT_VERSION_MAJ 0
|
||||
#define PRODUCT_VERSION_MIN 255
|
||||
#define PRODUCT_VERSION_REV 21
|
||||
#define PRODUCT_VERSION_REV 24
|
||||
#define PRODUCT_VERSION_BUILD 0
|
||||
|
||||
//
|
||||
// Human readable product version and build year for UI
|
||||
//
|
||||
#define PRODUCT_VERSION_STR "1.0-beta3"
|
||||
#define PRODUCT_VERSION_STR "1.0-beta6"
|
||||
#define PRODUCT_BUILD_YEAR_STR "2016"
|
||||
|
||||
//
|
||||
// Numerical version presentation for ProductVersion propery in
|
||||
// MSI packages (syntax: N.N[.N[.N]])
|
||||
//
|
||||
#define PRODUCT_VERSION_INST "0.255.21"
|
||||
#define PRODUCT_VERSION_INST "0.255.24"
|
||||
|
||||
//
|
||||
// The product code for ProductCode property in MSI packages
|
||||
// Replace with new on every version change, regardless how minor it is.
|
||||
//
|
||||
#define PRODUCT_VERSION_GUID "{60233AC1-8716-42C4-B500-902CD0F295C3}"
|
||||
#define PRODUCT_VERSION_GUID "{68407777-8DFF-49BF-9687-0A8DA406AA34}"
|
||||
|
||||
//
|
||||
// Product vendor
|
||||
|
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright 1991-2016 Amebis
|
||||
Copyright 2016 GÉANT
|
||||
Copyright 2016 GÉANT
|
||||
|
||||
This file is part of GÉANTLink.
|
||||
|
||||
|
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright 1991-2016 Amebis
|
||||
Copyright 2016 GÉANT
|
||||
Copyright 2016 GÉANT
|
||||
|
||||
This file is part of GÉANTLink.
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
<ItemGroup Condition="'@(SelectedFiles)' != ''">
|
||||
<POCompile Remove="@(POCompile)" Condition="'%(Identity)' != '@(SelectedFiles)'" />
|
||||
</ItemGroup>
|
||||
<Message Text="Compiling localization catalogues..." />
|
||||
<MakeDir Directories="$([System.IO.Path]::GetDirectoryName('%(POCompile.OutputFile)'))"/>
|
||||
<POCompile
|
||||
Condition="'@(POCompile)' != '' and '%(POCompile.ExcludedFromBuild)' != 'true'"
|
||||
Inputs="@(POCompile)"
|
||||
|
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright 1991-2016 Amebis
|
||||
Copyright 2016 GÉANT
|
||||
Copyright 2016 GÉANT
|
||||
|
||||
This file is part of GÉANTLink.
|
||||
|
||||
|
@@ -358,8 +358,8 @@ namespace eap
|
||||
|
||||
public:
|
||||
bool m_allow_save; ///< Are credentials allowed to be saved to Windows Credential Manager?
|
||||
bool m_use_preshared; ///< Use pre-shared credentials
|
||||
std::unique_ptr<credentials> m_preshared; ///< Pre-shared credentials
|
||||
bool m_use_cred; ///< Use configured credentials
|
||||
std::unique_ptr<credentials> m_cred; ///< Configured credentials
|
||||
|
||||
enum status {
|
||||
status_success = 0, ///< Authentication succeeded
|
||||
|
@@ -67,7 +67,7 @@ namespace eap
|
||||
enum source_t {
|
||||
source_unknown = -1, ///< Unknown source
|
||||
source_cache = 0, ///< Credentials were obtained from EapHost cache
|
||||
source_preshared, ///< Credentials were set by method configuration
|
||||
source_config, ///< Credentials were set by method configuration
|
||||
source_storage ///< Credentials were loaded from Windows Credential Manager
|
||||
};
|
||||
|
||||
@@ -247,9 +247,9 @@ namespace eap
|
||||
/// \param[in] pszTargetName The name in Windows Credential Manager to retrieve credentials from (optional, can be \c NULL)
|
||||
///
|
||||
/// \returns
|
||||
/// - \c source_cache Credentials were obtained from EapHost cache
|
||||
/// - \c source_preshared Credentials were set by method configuration
|
||||
/// - \c source_storage Credentials were loaded from Windows Credential Manager
|
||||
/// - \c source_cache Credentials were obtained from EapHost cache
|
||||
/// - \c source_config Credentials were set by method configuration
|
||||
/// - \c source_storage Credentials were loaded from Windows Credential Manager
|
||||
///
|
||||
virtual source_t combine(
|
||||
_In_ const credentials *cred_cached,
|
||||
@@ -408,9 +408,9 @@ namespace eap
|
||||
/// \param[in] pszTargetName The name in Windows Credential Manager to retrieve credentials from (optional, can be \c NULL)
|
||||
///
|
||||
/// \returns
|
||||
/// - \c source_cache Credentials were obtained from EapHost cache
|
||||
/// - \c source_preshared Credentials were set by method configuration
|
||||
/// - \c source_storage Credentials were loaded from Windows Credential Manager
|
||||
/// - \c source_cache Credentials were obtained from EapHost cache
|
||||
/// - \c source_config Credentials were set by method configuration
|
||||
/// - \c source_storage Credentials were loaded from Windows Credential Manager
|
||||
///
|
||||
virtual source_t combine(
|
||||
_In_ const credentials *cred_cached,
|
||||
|
@@ -18,6 +18,8 @@
|
||||
along with GÉANTLink. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <WinStd/COM.h>
|
||||
|
||||
#include <MsXml.h>
|
||||
#include <msxml6.h>
|
||||
#include <sal.h>
|
||||
@@ -27,31 +29,31 @@
|
||||
|
||||
namespace eapxml
|
||||
{
|
||||
inline HRESULT get_document(_In_ IXMLDOMNode *pXmlNode, _Out_ IXMLDOMDocument2 **ppXmlDoc);
|
||||
inline HRESULT select_node(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrNodeName, _Out_ IXMLDOMNode **ppXmlNode);
|
||||
inline HRESULT select_nodes(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrNodeName, _Out_ IXMLDOMNodeList **ppXmlNodes);
|
||||
inline HRESULT select_element(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrElementName, _Out_ IXMLDOMElement **ppXmlElement);
|
||||
inline HRESULT create_element(_In_ IXMLDOMDocument *pDoc, _In_z_ const BSTR bstrElementName, _In_z_ const BSTR bstrNamespace, _Out_ IXMLDOMElement **ppXmlElement);
|
||||
inline HRESULT create_element(_In_ IXMLDOMDocument *pDoc, IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrElementNameSelect, _In_z_ const BSTR bstrElementNameCreate, _In_z_ const BSTR bstrNamespace, _Out_ IXMLDOMElement **ppXmlElement);
|
||||
inline HRESULT get_document(_In_ IXMLDOMNode *pXmlNode, _Out_ winstd::com_obj<IXMLDOMDocument2> &ppXmlDoc);
|
||||
inline HRESULT select_node(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrNodeName, _Out_ winstd::com_obj<IXMLDOMNode> &ppXmlNode);
|
||||
inline HRESULT select_nodes(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrNodeName, _Out_ winstd::com_obj<IXMLDOMNodeList> &ppXmlNodes);
|
||||
inline HRESULT select_element(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrElementName, _Out_ winstd::com_obj<IXMLDOMElement> &ppXmlElement);
|
||||
inline HRESULT create_element(_In_ IXMLDOMDocument *pDoc, _In_z_ const BSTR bstrElementName, _In_z_ const BSTR bstrNamespace, _Out_ winstd::com_obj<IXMLDOMElement> &ppXmlElement);
|
||||
inline HRESULT create_element(_In_ IXMLDOMDocument *pDoc, IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrElementNameSelect, _In_z_ const BSTR bstrElementNameCreate, _In_z_ const BSTR bstrNamespace, _Out_ winstd::com_obj<IXMLDOMElement> &ppXmlElement);
|
||||
inline bool has_parent(_In_ IXMLDOMNode *pXmlNode);
|
||||
inline HRESULT get_element_value(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrElementName, _Out_ BSTR *pbstrValue);
|
||||
template<class _Traits, class _Ax> inline HRESULT get_element_value(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrElementName, _Out_ std::basic_string<wchar_t, _Traits, _Ax> &sValue);
|
||||
inline HRESULT get_element_value(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrElementName, _Out_ DWORD *pdwValue);
|
||||
inline HRESULT get_element_value(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrElementName, _Out_ bool *pbValue);
|
||||
template<class _Ty, class _Ax> inline HRESULT get_element_base64(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrElementName, _Out_ std::vector<_Ty, _Ax> &aValue);
|
||||
template<class _Ty, class _Ax> inline HRESULT get_element_hex(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrElementName, _Out_ std::vector<_Ty, _Ax> &aValue);
|
||||
inline HRESULT get_element_localized(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrElementName, _In_z_ LPCWSTR pszLang, _Out_ BSTR *pbstrValue);
|
||||
template<class _Traits, class _Ax> inline HRESULT get_element_localized(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrElementName, _In_z_ LPCWSTR pszLang, _Out_ std::basic_string<wchar_t, _Traits, _Ax> &sValue);
|
||||
inline HRESULT put_element(_In_ IXMLDOMDocument *pDoc, _In_ IXMLDOMNode *pCurrentDOMNode, _In_z_ const BSTR bstrElementName, _In_opt_z_ const BSTR bstrNamespace, _Out_ IXMLDOMElement **ppXmlElement);
|
||||
inline HRESULT put_element_value(_In_ IXMLDOMDocument *pDoc, _In_ IXMLDOMNode *pCurrentDOMNode, _In_z_ const BSTR bstrElementName, _In_opt_z_ const BSTR bstrNamespace, _In_z_ const BSTR bstrValue);
|
||||
inline HRESULT put_element_value(_In_ IXMLDOMDocument *pDoc, _In_ IXMLDOMNode *pCurrentDOMNode, _In_z_ const BSTR bstrElementName, _In_opt_z_ const BSTR bstrNamespace, _In_ DWORD dwValue);
|
||||
inline HRESULT put_element_value(_In_ IXMLDOMDocument *pDoc, _In_ IXMLDOMNode *pCurrentDOMNode, _In_z_ const BSTR bstrElementName, _In_opt_z_ const BSTR bstrNamespace, _In_ bool bValue);
|
||||
inline HRESULT put_element_base64(_In_ IXMLDOMDocument *pDoc, _In_ IXMLDOMNode *pCurrentDOMNode, _In_z_ const BSTR bstrElementName, _In_opt_z_ const BSTR bstrNamespace, _In_count_(nValueLen) LPCVOID pValue, _In_ SIZE_T nValueLen);
|
||||
inline HRESULT put_element_hex(_In_ IXMLDOMDocument *pDoc, _In_ IXMLDOMNode *pCurrentDOMNode, _In_z_ const BSTR bstrElementName, _In_opt_z_ const BSTR bstrNamespace, _In_count_(nValueLen) LPCVOID pValue, _In_ SIZE_T nValueLen);
|
||||
inline HRESULT get_attrib_value(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrAttributeName, _Out_ BSTR *pbstrValue);
|
||||
inline HRESULT get_element_value(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrElementName, _Out_ winstd::bstr &pbstrValue, _Out_opt_ winstd::com_obj<IXMLDOMElement> *ppXmlElement = NULL);
|
||||
template<class _Traits, class _Ax> inline HRESULT get_element_value(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrElementName, _Out_ std::basic_string<wchar_t, _Traits, _Ax> &sValue, _Out_opt_ winstd::com_obj<IXMLDOMElement> *ppXmlElement = NULL);
|
||||
inline HRESULT get_element_value(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrElementName, _Out_ DWORD &pdwValue, _Out_opt_ winstd::com_obj<IXMLDOMElement> *ppXmlElement = NULL);
|
||||
inline HRESULT get_element_value(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrElementName, _Out_ bool &pbValue, _Out_opt_ winstd::com_obj<IXMLDOMElement> *ppXmlElement = NULL);
|
||||
template<class _Ty, class _Ax> inline HRESULT get_element_base64(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrElementName, _Out_ std::vector<_Ty, _Ax> &aValue, _Out_opt_ winstd::com_obj<IXMLDOMElement> *ppXmlElement = NULL);
|
||||
template<class _Ty, class _Ax> inline HRESULT get_element_hex(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrElementName, _Out_ std::vector<_Ty, _Ax> &aValue, _Out_opt_ winstd::com_obj<IXMLDOMElement> *ppXmlElement = NULL);
|
||||
inline HRESULT get_element_localized(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrElementName, _In_z_ LPCWSTR pszLang, _Out_ winstd::bstr &pbstrValue, _Out_opt_ winstd::com_obj<IXMLDOMElement> *ppXmlElement = NULL);
|
||||
template<class _Traits, class _Ax> inline HRESULT get_element_localized(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrElementName, _In_z_ LPCWSTR pszLang, _Out_ std::basic_string<wchar_t, _Traits, _Ax> &sValue, _Out_opt_ winstd::com_obj<IXMLDOMElement> *ppXmlElement = NULL);
|
||||
inline HRESULT put_element(_In_ IXMLDOMDocument *pDoc, _In_ IXMLDOMNode *pCurrentDOMNode, _In_z_ const BSTR bstrElementName, _In_opt_z_ const BSTR bstrNamespace, _Out_ winstd::com_obj<IXMLDOMElement> &ppXmlElement);
|
||||
inline HRESULT put_element_value(_In_ IXMLDOMDocument *pDoc, _In_ IXMLDOMNode *pCurrentDOMNode, _In_z_ const BSTR bstrElementName, _In_opt_z_ const BSTR bstrNamespace, _In_z_ const BSTR bstrValue, _Out_opt_ winstd::com_obj<IXMLDOMElement> *ppXmlElement = NULL);
|
||||
inline HRESULT put_element_value(_In_ IXMLDOMDocument *pDoc, _In_ IXMLDOMNode *pCurrentDOMNode, _In_z_ const BSTR bstrElementName, _In_opt_z_ const BSTR bstrNamespace, _In_ DWORD dwValue, _Out_opt_ winstd::com_obj<IXMLDOMElement> *ppXmlElement = NULL);
|
||||
inline HRESULT put_element_value(_In_ IXMLDOMDocument *pDoc, _In_ IXMLDOMNode *pCurrentDOMNode, _In_z_ const BSTR bstrElementName, _In_opt_z_ const BSTR bstrNamespace, _In_ bool bValue, _Out_opt_ winstd::com_obj<IXMLDOMElement> *ppXmlElement = NULL);
|
||||
inline HRESULT put_element_base64(_In_ IXMLDOMDocument *pDoc, _In_ IXMLDOMNode *pCurrentDOMNode, _In_z_ const BSTR bstrElementName, _In_opt_z_ const BSTR bstrNamespace, _In_count_(nValueLen) LPCVOID pValue, _In_ SIZE_T nValueLen, _Out_opt_ winstd::com_obj<IXMLDOMElement> *ppXmlElement = NULL);
|
||||
inline HRESULT put_element_hex(_In_ IXMLDOMDocument *pDoc, _In_ IXMLDOMNode *pCurrentDOMNode, _In_z_ const BSTR bstrElementName, _In_opt_z_ const BSTR bstrNamespace, _In_count_(nValueLen) LPCVOID pValue, _In_ SIZE_T nValueLen, _Out_opt_ winstd::com_obj<IXMLDOMElement> *ppXmlElement = NULL);
|
||||
inline HRESULT get_attrib_value(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrAttributeName, _Out_ winstd::bstr &pbstrValue);
|
||||
template<class _Traits, class _Ax> inline HRESULT get_attrib_value(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrAttributeName, _Out_ std::basic_string<wchar_t, _Traits, _Ax> &sValue);
|
||||
inline HRESULT get_attrib_value(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrAttributeName, _Out_ DWORD *pdwValue);
|
||||
inline HRESULT get_attrib_value(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrAttributeName, _Out_ bool *pbValue);
|
||||
inline HRESULT get_attrib_value(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrAttributeName, _Out_ DWORD &pdwValue);
|
||||
inline HRESULT get_attrib_value(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrAttributeName, _Out_ bool &pbValue);
|
||||
template<class _Ty, class _Ax> inline HRESULT get_attrib_base64(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrAttributeName, _Out_ std::vector<_Ty, _Ax> &aValue);
|
||||
template<class _Ty, class _Ax> inline HRESULT get_attrib_hex(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrAttributeName, _Out_ std::vector<_Ty, _Ax> &aValue);
|
||||
inline HRESULT put_attrib_value(_In_ IXMLDOMNode *pCurrentDOMNode, _In_z_ const BSTR bstrAttributeName, _In_opt_z_ _In_z_ const BSTR bstrValue);
|
||||
@@ -65,7 +67,6 @@ namespace eapxml
|
||||
#pragma once
|
||||
|
||||
#include <WinStd/Base64.h>
|
||||
#include <WinStd/COM.h>
|
||||
#include <WinStd/Hex.h>
|
||||
|
||||
#include <assert.h>
|
||||
@@ -73,10 +74,9 @@ namespace eapxml
|
||||
|
||||
namespace eapxml
|
||||
{
|
||||
inline HRESULT get_document(_In_ IXMLDOMNode *pXmlNode, _Out_ IXMLDOMDocument2 **ppXmlDoc)
|
||||
inline HRESULT get_document(_In_ IXMLDOMNode *pXmlNode, _Out_ winstd::com_obj<IXMLDOMDocument2> &ppXmlDoc)
|
||||
{
|
||||
assert(pXmlNode);
|
||||
assert(ppXmlDoc);
|
||||
|
||||
HRESULT hr;
|
||||
winstd::com_obj<IXMLDOMDocument> doc;
|
||||
@@ -87,50 +87,51 @@ namespace eapxml
|
||||
}
|
||||
|
||||
|
||||
inline HRESULT select_node(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrNodeName, _Out_ IXMLDOMNode **ppXmlNode)
|
||||
inline HRESULT select_node(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrNodeName, _Out_ winstd::com_obj<IXMLDOMNode> &ppXmlNode)
|
||||
{
|
||||
assert(pXmlParent);
|
||||
assert(ppXmlNode);
|
||||
|
||||
HRESULT hr;
|
||||
IXMLDOMNode *pXmlNode;
|
||||
|
||||
return
|
||||
SUCCEEDED(hr = pXmlParent->selectSingleNode(bstrNodeName, ppXmlNode)) ?
|
||||
*ppXmlNode ? S_OK : E_NOT_SET : hr;
|
||||
if (SUCCEEDED(hr = pXmlParent->selectSingleNode(bstrNodeName, &pXmlNode))) {
|
||||
ppXmlNode.attach(pXmlNode);
|
||||
return pXmlNode ? S_OK : E_NOT_SET;
|
||||
} else
|
||||
return hr;
|
||||
}
|
||||
|
||||
|
||||
inline HRESULT select_nodes(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrNodeName, _Out_ IXMLDOMNodeList **ppXmlNodes)
|
||||
inline HRESULT select_nodes(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrNodeName, _Out_ winstd::com_obj<IXMLDOMNodeList> &ppXmlNodes)
|
||||
{
|
||||
assert(pXmlParent);
|
||||
assert(ppXmlNodes);
|
||||
|
||||
HRESULT hr;
|
||||
IXMLDOMNodeList *pXmlNodes;
|
||||
|
||||
return
|
||||
SUCCEEDED(hr = pXmlParent->selectNodes(bstrNodeName, ppXmlNodes)) ?
|
||||
*ppXmlNodes ? S_OK : E_NOT_SET : hr;
|
||||
if (SUCCEEDED(hr = pXmlParent->selectNodes(bstrNodeName, &pXmlNodes))) {
|
||||
ppXmlNodes.attach(pXmlNodes);
|
||||
return pXmlNodes ? S_OK : E_NOT_SET;
|
||||
} else
|
||||
return hr;
|
||||
}
|
||||
|
||||
|
||||
inline HRESULT select_element(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrElementName, _Out_ IXMLDOMElement **ppXmlElement)
|
||||
inline HRESULT select_element(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrElementName, _Out_ winstd::com_obj<IXMLDOMElement> &ppXmlElement)
|
||||
{
|
||||
assert(ppXmlElement);
|
||||
|
||||
HRESULT hr;
|
||||
winstd::com_obj<IXMLDOMNode> pXmlNode;
|
||||
|
||||
return
|
||||
SUCCEEDED(hr = select_node(pXmlParent, bstrElementName, &pXmlNode)) ?
|
||||
SUCCEEDED(hr = select_node(pXmlParent, bstrElementName, pXmlNode)) ?
|
||||
SUCCEEDED(hr = pXmlNode.query_interface(ppXmlElement)) ?
|
||||
*ppXmlElement ? S_OK : E_NOT_SET : hr : hr;
|
||||
ppXmlElement ? S_OK : E_NOT_SET : hr : hr;
|
||||
}
|
||||
|
||||
|
||||
inline HRESULT create_element(_In_ IXMLDOMDocument *pDoc, _In_z_ const BSTR bstrElementName, _In_z_ const BSTR bstrNamespace, _Out_ IXMLDOMElement **ppXmlElement)
|
||||
inline HRESULT create_element(_In_ IXMLDOMDocument *pDoc, _In_z_ const BSTR bstrElementName, _In_z_ const BSTR bstrNamespace, _Out_ winstd::com_obj<IXMLDOMElement> &ppXmlElement)
|
||||
{
|
||||
assert(pDoc);
|
||||
assert(ppXmlElement);
|
||||
|
||||
static const winstd::variant varNodeTypeEl(NODE_ELEMENT);
|
||||
HRESULT hr;
|
||||
@@ -139,22 +140,21 @@ namespace eapxml
|
||||
return
|
||||
SUCCEEDED(hr = pDoc->createNode(varNodeTypeEl, bstrElementName, bstrNamespace, &pXmlNode)) ?
|
||||
SUCCEEDED(hr = pXmlNode.query_interface(ppXmlElement)) ?
|
||||
*ppXmlElement ? S_OK : E_NOT_SET : hr : hr;
|
||||
ppXmlElement ? S_OK : E_NOT_SET : hr : hr;
|
||||
}
|
||||
|
||||
|
||||
inline HRESULT create_element(_In_ IXMLDOMDocument *pDoc, IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrElementNameSelect, _In_z_ const BSTR bstrElementNameCreate, _In_z_ const BSTR bstrNamespace, _Out_ IXMLDOMElement **ppXmlElement)
|
||||
inline HRESULT create_element(_In_ IXMLDOMDocument *pDoc, IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrElementNameSelect, _In_z_ const BSTR bstrElementNameCreate, _In_z_ const BSTR bstrNamespace, _Out_ winstd::com_obj<IXMLDOMElement> &ppXmlElement)
|
||||
{
|
||||
assert(pDoc);
|
||||
assert(pXmlParent);
|
||||
assert(ppXmlElement);
|
||||
|
||||
HRESULT hr;
|
||||
|
||||
return
|
||||
SUCCEEDED(hr = select_element(pXmlParent, bstrElementNameSelect, ppXmlElement)) ? S_OK :
|
||||
SUCCEEDED(hr = create_element(pDoc, bstrElementNameCreate, bstrNamespace, ppXmlElement)) ?
|
||||
SUCCEEDED(hr = pXmlParent->appendChild(*ppXmlElement, NULL)) ? S_OK : hr : hr;
|
||||
SUCCEEDED(hr = pXmlParent->appendChild(ppXmlElement, NULL)) ? S_OK : hr : hr;
|
||||
}
|
||||
|
||||
|
||||
@@ -168,57 +168,57 @@ namespace eapxml
|
||||
}
|
||||
|
||||
|
||||
inline HRESULT get_element_value(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrElementName, _Out_ BSTR *pbstrValue)
|
||||
inline HRESULT get_element_value(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrElementName, _Out_ winstd::bstr &pbstrValue, _Out_opt_ winstd::com_obj<IXMLDOMElement> *ppXmlElement)
|
||||
{
|
||||
assert(pbstrValue);
|
||||
|
||||
HRESULT hr;
|
||||
winstd::com_obj<IXMLDOMElement> pXmlElement;
|
||||
BSTR bstrValue;
|
||||
|
||||
return
|
||||
SUCCEEDED(hr = select_element(pXmlParent, bstrElementName, &pXmlElement)) ?
|
||||
SUCCEEDED(hr = pXmlElement->get_text(pbstrValue)) ?
|
||||
*pbstrValue ? S_OK : E_NOT_SET : hr : hr;
|
||||
if (SUCCEEDED(hr = select_element(pXmlParent, bstrElementName, pXmlElement)) &&
|
||||
SUCCEEDED(hr = pXmlElement->get_text(&bstrValue)))
|
||||
{
|
||||
pbstrValue.attach(bstrValue);
|
||||
if (ppXmlElement)
|
||||
*ppXmlElement = std::move(pXmlElement);
|
||||
return bstrValue ? S_OK : E_NOT_SET;
|
||||
} else
|
||||
return hr;
|
||||
}
|
||||
|
||||
|
||||
template<class _Traits, class _Ax>
|
||||
inline HRESULT get_element_value(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrElementName, _Out_ std::basic_string<wchar_t, _Traits, _Ax> &sValue)
|
||||
inline HRESULT get_element_value(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrElementName, _Out_ std::basic_string<wchar_t, _Traits, _Ax> &sValue, _Out_opt_ winstd::com_obj<IXMLDOMElement> *ppXmlElement)
|
||||
{
|
||||
winstd::bstr bstr;
|
||||
HRESULT hr = get_element_value(pXmlParent, bstrElementName, &bstr);
|
||||
HRESULT hr = get_element_value(pXmlParent, bstrElementName, bstr, ppXmlElement);
|
||||
if (SUCCEEDED(hr))
|
||||
sValue.assign(bstr, bstr.length());
|
||||
return hr;
|
||||
}
|
||||
|
||||
|
||||
inline HRESULT get_element_value(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrElementName, _Out_ DWORD *pdwValue)
|
||||
inline HRESULT get_element_value(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrElementName, _Out_ DWORD &pdwValue, _Out_opt_ winstd::com_obj<IXMLDOMElement> *ppXmlElement)
|
||||
{
|
||||
assert(pdwValue);
|
||||
|
||||
winstd::bstr bstr;
|
||||
HRESULT hr = get_element_value(pXmlParent, bstrElementName, &bstr);
|
||||
HRESULT hr = get_element_value(pXmlParent, bstrElementName, bstr, ppXmlElement);
|
||||
if (SUCCEEDED(hr))
|
||||
*pdwValue = wcstoul(bstr, NULL, 10);
|
||||
pdwValue = wcstoul(bstr, NULL, 10);
|
||||
return hr;
|
||||
}
|
||||
|
||||
|
||||
inline HRESULT get_element_value(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrElementName, _Out_ bool *pbValue)
|
||||
inline HRESULT get_element_value(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrElementName, _Out_ bool &pbValue, _Out_opt_ winstd::com_obj<IXMLDOMElement> *ppXmlElement)
|
||||
{
|
||||
assert(pbValue);
|
||||
|
||||
winstd::bstr bstr;
|
||||
HRESULT hr = get_element_value(pXmlParent, bstrElementName, &bstr);
|
||||
HRESULT hr = get_element_value(pXmlParent, bstrElementName, bstr, ppXmlElement);
|
||||
if (SUCCEEDED(hr)) {
|
||||
if (CompareStringEx(LOCALE_NAME_INVARIANT, NORM_IGNORECASE, bstr, bstr.length(), L"true" , -1, NULL, NULL, 0) == CSTR_EQUAL ||
|
||||
CompareStringEx(LOCALE_NAME_INVARIANT, NORM_IGNORECASE, bstr, bstr.length(), L"1" , -1, NULL, NULL, 0) == CSTR_EQUAL)
|
||||
*pbValue = true;
|
||||
pbValue = true;
|
||||
else if (
|
||||
CompareStringEx(LOCALE_NAME_INVARIANT, NORM_IGNORECASE, bstr, bstr.length(), L"false", -1, NULL, NULL, 0) == CSTR_EQUAL ||
|
||||
CompareStringEx(LOCALE_NAME_INVARIANT, NORM_IGNORECASE, bstr, bstr.length(), L"0" , -1, NULL, NULL, 0) == CSTR_EQUAL)
|
||||
*pbValue = false;
|
||||
pbValue = false;
|
||||
else
|
||||
hr = E_NOT_VALID_STATE;
|
||||
}
|
||||
@@ -228,10 +228,10 @@ namespace eapxml
|
||||
|
||||
|
||||
template<class _Ty, class _Ax>
|
||||
inline HRESULT get_element_base64(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrElementName, _Out_ std::vector<_Ty, _Ax> &aValue)
|
||||
inline HRESULT get_element_base64(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrElementName, _Out_ std::vector<_Ty, _Ax> &aValue, _Out_opt_ winstd::com_obj<IXMLDOMElement> *ppXmlElement)
|
||||
{
|
||||
winstd::bstr bstr;
|
||||
HRESULT hr = get_element_value(pXmlParent, bstrElementName, &bstr);
|
||||
HRESULT hr = get_element_value(pXmlParent, bstrElementName, bstr, ppXmlElement);
|
||||
if (SUCCEEDED(hr)) {
|
||||
winstd::base64_dec dec;
|
||||
bool is_last;
|
||||
@@ -243,10 +243,10 @@ namespace eapxml
|
||||
|
||||
|
||||
template<class _Ty, class _Ax>
|
||||
inline HRESULT get_element_hex(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrElementName, _Out_ std::vector<_Ty, _Ax> &aValue)
|
||||
inline HRESULT get_element_hex(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrElementName, _Out_ std::vector<_Ty, _Ax> &aValue, _Out_opt_ winstd::com_obj<IXMLDOMElement> *ppXmlElement)
|
||||
{
|
||||
winstd::bstr bstr;
|
||||
HRESULT hr = get_element_value(pXmlParent, bstrElementName, &bstr);
|
||||
HRESULT hr = get_element_value(pXmlParent, bstrElementName, bstr, ppXmlElement);
|
||||
if (SUCCEEDED(hr)) {
|
||||
winstd::hex_dec dec;
|
||||
bool is_last;
|
||||
@@ -257,25 +257,29 @@ namespace eapxml
|
||||
}
|
||||
|
||||
|
||||
inline HRESULT get_element_localized(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrElementName, _In_z_ LPCWSTR pszLang, _Out_ BSTR *pbstrValue)
|
||||
inline HRESULT get_element_localized(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrElementName, _In_z_ LPCWSTR pszLang, _Out_ winstd::bstr &pbstrValue, _Out_opt_ winstd::com_obj<IXMLDOMElement> *ppXmlElement)
|
||||
{
|
||||
assert(pbstrValue);
|
||||
|
||||
HRESULT hr;
|
||||
winstd::com_obj<IXMLDOMElement> pXmlElement;
|
||||
|
||||
if (FAILED(hr = select_element(pXmlParent, bstrElementName, &pXmlElement)))
|
||||
if (FAILED(hr = select_element(pXmlParent, bstrElementName, pXmlElement)))
|
||||
return hr;
|
||||
|
||||
if (ppXmlElement)
|
||||
*ppXmlElement = pXmlElement;
|
||||
|
||||
winstd::com_obj<IXMLDOMNodeList> pXmlListLocalizedText;
|
||||
long lCount = 0;
|
||||
if (FAILED(select_nodes(pXmlElement, winstd::bstr(L"eap-metadata:localized-text"), &pXmlListLocalizedText)) ||
|
||||
if (FAILED(select_nodes(pXmlElement, winstd::bstr(L"eap-metadata:localized-text"), pXmlListLocalizedText)) ||
|
||||
FAILED(pXmlListLocalizedText->get_length(&lCount)) ||
|
||||
lCount <= 0)
|
||||
{
|
||||
return
|
||||
SUCCEEDED(hr = pXmlElement->get_text(pbstrValue)) ?
|
||||
*pbstrValue ? S_OK : E_NOT_SET : hr;
|
||||
BSTR bstr;
|
||||
if (SUCCEEDED(hr = pXmlElement->get_text(&bstr))) {
|
||||
pbstrValue.attach(bstr);
|
||||
return bstr ? S_OK : E_NOT_SET;
|
||||
} else
|
||||
return hr;
|
||||
}
|
||||
|
||||
winstd::bstr bstrDefault, bstrEn;
|
||||
@@ -283,11 +287,11 @@ namespace eapxml
|
||||
if (i >= lCount) {
|
||||
if (bstrDefault != NULL) {
|
||||
// Return "C" localization.
|
||||
*pbstrValue = bstrDefault.detach();
|
||||
pbstrValue = std::move(bstrDefault);
|
||||
return S_OK;
|
||||
} else if (bstrEn != NULL) {
|
||||
// Return "en" localization.
|
||||
*pbstrValue = bstrEn.detach();
|
||||
pbstrValue = std::move(bstrEn);
|
||||
return S_OK;
|
||||
} else
|
||||
return ERROR_NOT_FOUND;
|
||||
@@ -299,21 +303,21 @@ namespace eapxml
|
||||
{
|
||||
// Read <lang>.
|
||||
winstd::bstr bstrLang;
|
||||
if (FAILED(get_element_value(pXmlElLocalizedText, winstd::bstr(L"eap-metadata:lang"), &bstrLang)) ||
|
||||
if (FAILED(get_element_value(pXmlElLocalizedText, winstd::bstr(L"eap-metadata:lang"), bstrLang)) ||
|
||||
CompareStringEx(LOCALE_NAME_INVARIANT, NORM_IGNORECASE, bstrLang, bstrLang.length(), L"C" , -1, NULL, NULL, 0) == CSTR_EQUAL)
|
||||
{
|
||||
// <lang> is missing or "C" language found.
|
||||
winstd::bstr bstr;
|
||||
if (SUCCEEDED(hr = get_element_value(pXmlElLocalizedText, winstd::bstr(L"eap-metadata:text"), &bstr)))
|
||||
bstrDefault.attach(bstr.detach());
|
||||
if (SUCCEEDED(hr = get_element_value(pXmlElLocalizedText, winstd::bstr(L"eap-metadata:text"), bstr)))
|
||||
bstrDefault = std::move(bstr);
|
||||
} else if (CompareStringEx(LOCALE_NAME_INVARIANT, NORM_IGNORECASE, bstrLang, bstrLang.length(), pszLang, -1, NULL, NULL, 0) == CSTR_EQUAL) {
|
||||
// Found an exact match.
|
||||
return get_element_value(pXmlElLocalizedText, winstd::bstr(L"eap-metadata:text"), pbstrValue);
|
||||
} else if (CompareStringEx(LOCALE_NAME_INVARIANT, NORM_IGNORECASE, bstrLang, bstrLang.length(), L"en", -1, NULL, NULL, 0) == CSTR_EQUAL) {
|
||||
// "en" language found.
|
||||
winstd::bstr bstr;
|
||||
if (SUCCEEDED(hr = get_element_value(pXmlElLocalizedText, winstd::bstr(L"eap-metadata:text"), &bstr)))
|
||||
bstrEn.attach(bstr.detach());
|
||||
if (SUCCEEDED(hr = get_element_value(pXmlElLocalizedText, winstd::bstr(L"eap-metadata:text"), bstr)))
|
||||
bstrEn = std::move(bstr);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -321,17 +325,17 @@ namespace eapxml
|
||||
|
||||
|
||||
template<class _Traits, class _Ax>
|
||||
inline HRESULT get_element_localized(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrElementName, _In_z_ LPCWSTR pszLang, _Out_ std::basic_string<wchar_t, _Traits, _Ax> &sValue)
|
||||
inline HRESULT get_element_localized(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrElementName, _In_z_ LPCWSTR pszLang, _Out_ std::basic_string<wchar_t, _Traits, _Ax> &sValue, _Out_opt_ winstd::com_obj<IXMLDOMElement> *ppXmlElement)
|
||||
{
|
||||
winstd::bstr bstr;
|
||||
HRESULT hr = get_element_localized(pXmlParent, bstrElementName, pszLang, &bstr);
|
||||
HRESULT hr = get_element_localized(pXmlParent, bstrElementName, pszLang, bstr, ppXmlElement);
|
||||
if (SUCCEEDED(hr))
|
||||
sValue.assign(bstr, bstr.length());
|
||||
return hr;
|
||||
}
|
||||
|
||||
|
||||
inline HRESULT put_element(_In_ IXMLDOMDocument *pDoc, _In_ IXMLDOMNode *pCurrentDOMNode, _In_z_ const BSTR bstrElementName, _In_opt_z_ const BSTR bstrNamespace, _Out_ IXMLDOMElement **ppXmlElement)
|
||||
inline HRESULT put_element(_In_ IXMLDOMDocument *pDoc, _In_ IXMLDOMNode *pCurrentDOMNode, _In_z_ const BSTR bstrElementName, _In_opt_z_ const BSTR bstrNamespace, _Out_ winstd::com_obj<IXMLDOMElement> &ppXmlElement)
|
||||
{
|
||||
assert(pDoc);
|
||||
assert(pCurrentDOMNode);
|
||||
@@ -348,7 +352,7 @@ namespace eapxml
|
||||
}
|
||||
|
||||
|
||||
inline HRESULT put_element_value(_In_ IXMLDOMDocument *pDoc, _In_ IXMLDOMNode *pCurrentDOMNode, _In_z_ const BSTR bstrElementName, _In_opt_z_ const BSTR bstrNamespace, _In_z_ const BSTR bstrValue)
|
||||
inline HRESULT put_element_value(_In_ IXMLDOMDocument *pDoc, _In_ IXMLDOMNode *pCurrentDOMNode, _In_z_ const BSTR bstrElementName, _In_opt_z_ const BSTR bstrNamespace, _In_z_ const BSTR bstrValue, _Out_opt_ winstd::com_obj<IXMLDOMElement> *ppXmlElement)
|
||||
{
|
||||
assert(pDoc);
|
||||
|
||||
@@ -357,48 +361,51 @@ namespace eapxml
|
||||
winstd::com_obj<IXMLDOMNode> pXmlEl;
|
||||
winstd::com_obj<IXMLDOMText> pXmlElText;
|
||||
|
||||
return
|
||||
SUCCEEDED(hr = pDoc->createNode(varNodeTypeEl, bstrElementName, bstrNamespace, &pXmlEl)) &&
|
||||
if (SUCCEEDED(hr = pDoc->createNode(varNodeTypeEl, bstrElementName, bstrNamespace, &pXmlEl)) &&
|
||||
SUCCEEDED(hr = pDoc->createTextNode(bstrValue, &pXmlElText)) &&
|
||||
SUCCEEDED(hr = pXmlEl->appendChild(pXmlElText, NULL)) &&
|
||||
SUCCEEDED(hr = pCurrentDOMNode->appendChild(pXmlEl, NULL)) ? S_OK : hr;
|
||||
SUCCEEDED(hr = pCurrentDOMNode->appendChild(pXmlEl, NULL)))
|
||||
{
|
||||
if (ppXmlElement)
|
||||
pXmlEl.query_interface(*ppXmlElement);
|
||||
return S_OK;
|
||||
} else
|
||||
return hr;
|
||||
}
|
||||
|
||||
|
||||
inline HRESULT put_element_value(_In_ IXMLDOMDocument *pDoc, _In_ IXMLDOMNode *pCurrentDOMNode, _In_z_ const BSTR bstrElementName, _In_opt_z_ const BSTR bstrNamespace, _In_ DWORD dwValue)
|
||||
inline HRESULT put_element_value(_In_ IXMLDOMDocument *pDoc, _In_ IXMLDOMNode *pCurrentDOMNode, _In_z_ const BSTR bstrElementName, _In_opt_z_ const BSTR bstrNamespace, _In_ DWORD dwValue, _Out_opt_ winstd::com_obj<IXMLDOMElement> *ppXmlElement)
|
||||
{
|
||||
return put_element_value(pDoc, pCurrentDOMNode, bstrElementName, bstrNamespace, winstd::bstr(winstd::wstring_printf(L"%d", dwValue)));
|
||||
return put_element_value(pDoc, pCurrentDOMNode, bstrElementName, bstrNamespace, winstd::bstr(winstd::wstring_printf(L"%d", dwValue)), ppXmlElement);
|
||||
}
|
||||
|
||||
|
||||
inline HRESULT put_element_value(_In_ IXMLDOMDocument *pDoc, _In_ IXMLDOMNode *pCurrentDOMNode, _In_z_ const BSTR bstrElementName, _In_opt_z_ const BSTR bstrNamespace, _In_ bool bValue)
|
||||
inline HRESULT put_element_value(_In_ IXMLDOMDocument *pDoc, _In_ IXMLDOMNode *pCurrentDOMNode, _In_z_ const BSTR bstrElementName, _In_opt_z_ const BSTR bstrNamespace, _In_ bool bValue, _Out_opt_ winstd::com_obj<IXMLDOMElement> *ppXmlElement)
|
||||
{
|
||||
return put_element_value(pDoc, pCurrentDOMNode, bstrElementName, bstrNamespace, winstd::bstr(bValue ? L"true": L"false"));
|
||||
return put_element_value(pDoc, pCurrentDOMNode, bstrElementName, bstrNamespace, winstd::bstr(bValue ? L"true": L"false"), ppXmlElement);
|
||||
}
|
||||
|
||||
|
||||
inline HRESULT put_element_base64(_In_ IXMLDOMDocument *pDoc, _In_ IXMLDOMNode *pCurrentDOMNode, _In_z_ const BSTR bstrElementName, _In_opt_z_ const BSTR bstrNamespace, _In_count_(nValueLen) LPCVOID pValue, _In_ SIZE_T nValueLen)
|
||||
inline HRESULT put_element_base64(_In_ IXMLDOMDocument *pDoc, _In_ IXMLDOMNode *pCurrentDOMNode, _In_z_ const BSTR bstrElementName, _In_opt_z_ const BSTR bstrNamespace, _In_count_(nValueLen) LPCVOID pValue, _In_ SIZE_T nValueLen, _Out_opt_ winstd::com_obj<IXMLDOMElement> *ppXmlElement)
|
||||
{
|
||||
std::wstring sBase64;
|
||||
winstd::base64_enc enc;
|
||||
enc.encode(sBase64, pValue, nValueLen);
|
||||
return put_element_value(pDoc, pCurrentDOMNode, bstrElementName, bstrNamespace, winstd::bstr(sBase64));
|
||||
return put_element_value(pDoc, pCurrentDOMNode, bstrElementName, bstrNamespace, winstd::bstr(sBase64), ppXmlElement);
|
||||
}
|
||||
|
||||
|
||||
inline HRESULT put_element_hex(_In_ IXMLDOMDocument *pDoc, _In_ IXMLDOMNode *pCurrentDOMNode, _In_z_ const BSTR bstrElementName, _In_opt_z_ const BSTR bstrNamespace, _In_count_(nValueLen) LPCVOID pValue, _In_ SIZE_T nValueLen)
|
||||
inline HRESULT put_element_hex(_In_ IXMLDOMDocument *pDoc, _In_ IXMLDOMNode *pCurrentDOMNode, _In_z_ const BSTR bstrElementName, _In_opt_z_ const BSTR bstrNamespace, _In_count_(nValueLen) LPCVOID pValue, _In_ SIZE_T nValueLen, _Out_opt_ winstd::com_obj<IXMLDOMElement> *ppXmlElement)
|
||||
{
|
||||
std::wstring sHex;
|
||||
winstd::hex_enc enc;
|
||||
enc.encode(sHex, pValue, nValueLen);
|
||||
return put_element_value(pDoc, pCurrentDOMNode, bstrElementName, bstrNamespace, winstd::bstr(sHex));
|
||||
return put_element_value(pDoc, pCurrentDOMNode, bstrElementName, bstrNamespace, winstd::bstr(sHex), ppXmlElement);
|
||||
}
|
||||
|
||||
|
||||
inline HRESULT get_attrib_value(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrAttributeName, _Out_ BSTR *pbstrValue)
|
||||
inline HRESULT get_attrib_value(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrAttributeName, _Out_ winstd::bstr &pbstrValue)
|
||||
{
|
||||
assert(pbstrValue);
|
||||
|
||||
HRESULT hr;
|
||||
winstd::com_obj<IXMLDOMNamedNodeMap> pXmlAttributes;
|
||||
winstd::com_obj<IXMLDOMNode> pXmlAt;
|
||||
@@ -406,11 +413,11 @@ namespace eapxml
|
||||
V_VT(&varValue) = VT_EMPTY;
|
||||
|
||||
return
|
||||
SUCCEEDED(hr = pXmlParent->get_attributes(&pXmlAttributes)) ?
|
||||
SUCCEEDED(hr = pXmlParent->get_attributes(&pXmlAttributes)) &&
|
||||
SUCCEEDED(hr = pXmlAttributes->getNamedItem(bstrAttributeName, &pXmlAt)) ?
|
||||
pXmlAt ?
|
||||
SUCCEEDED(hr = pXmlAt->get_nodeValue(&varValue)) ?
|
||||
V_VT(&varValue) == VT_BSTR ? *pbstrValue = V_BSTR(&varValue), S_OK : E_UNEXPECTED : hr : E_NOT_SET : hr : hr;
|
||||
V_VT(&varValue) == VT_BSTR ? pbstrValue.attach(V_BSTR(&varValue)), V_VT(&varValue) = VT_EMPTY, S_OK : E_UNEXPECTED : hr : E_NOT_SET : hr;
|
||||
}
|
||||
|
||||
|
||||
@@ -418,39 +425,37 @@ namespace eapxml
|
||||
inline HRESULT get_attrib_value(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrAttributeName, _Out_ std::basic_string<wchar_t, _Traits, _Ax> &sValue)
|
||||
{
|
||||
winstd::bstr bstr;
|
||||
HRESULT hr = get_attrib_value(pXmlParent, bstrAttributeName, &bstr);
|
||||
HRESULT hr = get_attrib_value(pXmlParent, bstrAttributeName, bstr);
|
||||
if (SUCCEEDED(hr))
|
||||
sValue.assign(bstr, bstr.length());
|
||||
return hr;
|
||||
}
|
||||
|
||||
|
||||
inline HRESULT get_attrib_value(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrAttributeName, _Out_ DWORD *pdwValue)
|
||||
inline HRESULT get_attrib_value(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrAttributeName, _Out_ DWORD &pdwValue)
|
||||
{
|
||||
assert(pdwValue);
|
||||
|
||||
winstd::bstr bstr;
|
||||
HRESULT hr = get_attrib_value(pXmlParent, bstrAttributeName, &bstr);
|
||||
HRESULT hr = get_attrib_value(pXmlParent, bstrAttributeName, bstr);
|
||||
if (SUCCEEDED(hr))
|
||||
*pdwValue = wcstoul(bstr, NULL, 10);
|
||||
pdwValue = wcstoul(bstr, NULL, 10);
|
||||
return hr;
|
||||
}
|
||||
|
||||
|
||||
inline HRESULT get_attrib_value(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrAttributeName, _Out_ bool *pbValue)
|
||||
inline HRESULT get_attrib_value(_In_ IXMLDOMNode *pXmlParent, _In_z_ const BSTR bstrAttributeName, _Out_ bool &pbValue)
|
||||
{
|
||||
assert(pbValue);
|
||||
|
||||
winstd::bstr bstr;
|
||||
HRESULT hr = get_attrib_value(pXmlParent, bstrAttributeName, &bstr);
|
||||
HRESULT hr = get_attrib_value(pXmlParent, bstrAttributeName, bstr);
|
||||
if (SUCCEEDED(hr)) {
|
||||
if (CompareStringEx(LOCALE_NAME_INVARIANT, NORM_IGNORECASE, bstr, bstr.length(), L"true" , -1, NULL, NULL, 0) == CSTR_EQUAL ||
|
||||
CompareStringEx(LOCALE_NAME_INVARIANT, NORM_IGNORECASE, bstr, bstr.length(), L"1" , -1, NULL, NULL, 0) == CSTR_EQUAL)
|
||||
*pbValue = true;
|
||||
pbValue = true;
|
||||
else if (
|
||||
CompareStringEx(LOCALE_NAME_INVARIANT, NORM_IGNORECASE, bstr, bstr.length(), L"false", -1, NULL, NULL, 0) == CSTR_EQUAL ||
|
||||
CompareStringEx(LOCALE_NAME_INVARIANT, NORM_IGNORECASE, bstr, bstr.length(), L"0" , -1, NULL, NULL, 0) == CSTR_EQUAL)
|
||||
*pbValue = false;
|
||||
pbValue = false;
|
||||
else
|
||||
hr = E_NOT_VALID_STATE;
|
||||
}
|
||||
|
@@ -51,6 +51,8 @@ namespace eap
|
||||
{
|
||||
class method
|
||||
{
|
||||
WINSTD_NONCOPYABLE(method)
|
||||
|
||||
public:
|
||||
///
|
||||
/// Constructs an EAP method
|
||||
@@ -128,11 +130,6 @@ namespace eap
|
||||
|
||||
/// @}
|
||||
|
||||
private:
|
||||
// This class is noncopyable.
|
||||
method(_In_ const method &other);
|
||||
method& operator=(_In_ const method &other);
|
||||
|
||||
public:
|
||||
module &m_module; ///< EAP module
|
||||
config_method_with_cred &m_cfg; ///< Connection configuration
|
||||
@@ -143,6 +140,8 @@ namespace eap
|
||||
|
||||
class method_noneap : public method
|
||||
{
|
||||
WINSTD_NONCOPYABLE(method_noneap)
|
||||
|
||||
public:
|
||||
///
|
||||
/// Constructs an EAP method
|
||||
|
@@ -60,6 +60,8 @@ namespace eap
|
||||
{
|
||||
class module
|
||||
{
|
||||
WINSTD_NONCOPYABLE(module)
|
||||
|
||||
public:
|
||||
///
|
||||
/// Constructs a module for the given EAP type
|
||||
@@ -337,7 +339,9 @@ namespace eap
|
||||
if (!CryptDecrypt(key_aes, hHash, TRUE, 0, buf))
|
||||
throw win_runtime_error(__FUNCTION__ " CryptDecrypt failed.");
|
||||
|
||||
return std::vector<_Ty, _Ax>(buf);
|
||||
std::vector<_Ty, _Ax> buf_res;
|
||||
buf_res.assign(buf.cbegin(), buf.cend());
|
||||
return buf_res;
|
||||
}
|
||||
|
||||
|
||||
@@ -427,7 +431,7 @@ namespace eap
|
||||
template<class _Elem, class _Traits, class _Ax>
|
||||
std::basic_string<_Elem, _Traits, _Ax> decrypt_str_md5(_In_ HCRYPTPROV hProv, _In_bytecount_(size) const void *data, _In_ size_t size) const
|
||||
{
|
||||
std::vector<_Elem, sanitizing_allocator<_Elem> > buf(std::move(decrypt_md5(hProv, data, size)));
|
||||
std::vector<_Elem, sanitizing_allocator<_Elem> > buf(std::move(decrypt_md5<_Elem, sanitizing_allocator<_Elem> >(hProv, data, size)));
|
||||
return std::basic_string<_Elem, _Traits, _Ax>(buf.data(), buf.size());
|
||||
}
|
||||
|
||||
@@ -444,7 +448,7 @@ namespace eap
|
||||
template<class _Traits, class _Ax>
|
||||
std::basic_string<wchar_t, _Traits, _Ax> decrypt_str_md5(_In_ HCRYPTPROV hProv, _In_bytecount_(size) const void *data, _In_ size_t size) const
|
||||
{
|
||||
winstd::sanitizing_string buf(std::move(decrypt_str_md5(hProv, data, size)));
|
||||
winstd::sanitizing_string buf(std::move(decrypt_str_md5<char, std::char_traits<char>, sanitizing_allocator<char> >(hProv, data, size)));
|
||||
std::basic_string<wchar_t, _Traits, _Ax> dec;
|
||||
MultiByteToWideChar(CP_UTF8, 0, buf.data(), (int)buf.size(), dec);
|
||||
return dec;
|
||||
@@ -556,6 +560,8 @@ namespace eap
|
||||
|
||||
class peer : public module
|
||||
{
|
||||
WINSTD_NONCOPYABLE(peer)
|
||||
|
||||
public:
|
||||
///
|
||||
/// Constructs a EAP peer module for the given EAP type
|
||||
|
@@ -151,7 +151,7 @@ eap::config_method& eap::config_method::operator=(_Inout_ config_method &&other)
|
||||
|
||||
eap::config_method_with_cred::config_method_with_cred(_In_ module &mod, _In_ unsigned int level) :
|
||||
m_allow_save(true),
|
||||
m_use_preshared(false),
|
||||
m_use_cred(false),
|
||||
m_last_status(status_success),
|
||||
config_method(mod, level)
|
||||
{
|
||||
@@ -159,23 +159,23 @@ eap::config_method_with_cred::config_method_with_cred(_In_ module &mod, _In_ uns
|
||||
|
||||
|
||||
eap::config_method_with_cred::config_method_with_cred(_In_ const config_method_with_cred &other) :
|
||||
m_allow_save (other.m_allow_save ),
|
||||
m_use_preshared(other.m_use_preshared ),
|
||||
m_preshared (other.m_preshared ? (credentials*)other.m_preshared->clone() : nullptr),
|
||||
m_last_status (other.m_last_status ),
|
||||
m_last_msg (other.m_last_msg ),
|
||||
config_method (other )
|
||||
m_allow_save (other.m_allow_save ),
|
||||
m_use_cred (other.m_use_cred ),
|
||||
m_cred (other.m_cred ? (credentials*)other.m_cred->clone() : nullptr),
|
||||
m_last_status (other.m_last_status ),
|
||||
m_last_msg (other.m_last_msg ),
|
||||
config_method (other )
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
eap::config_method_with_cred::config_method_with_cred(_Inout_ config_method_with_cred &&other) :
|
||||
m_allow_save (std::move(other.m_allow_save )),
|
||||
m_use_preshared(std::move(other.m_use_preshared)),
|
||||
m_preshared (std::move(other.m_preshared )),
|
||||
m_last_status (std::move(other.m_last_status )),
|
||||
m_last_msg (std::move(other.m_last_msg )),
|
||||
config_method (std::move(other ))
|
||||
m_allow_save (std::move(other.m_allow_save )),
|
||||
m_use_cred (std::move(other.m_use_cred )),
|
||||
m_cred (std::move(other.m_cred )),
|
||||
m_last_status(std::move(other.m_last_status)),
|
||||
m_last_msg (std::move(other.m_last_msg )),
|
||||
config_method(std::move(other ))
|
||||
{
|
||||
}
|
||||
|
||||
@@ -185,8 +185,8 @@ eap::config_method_with_cred& eap::config_method_with_cred::operator=(_In_ const
|
||||
if (this != &other) {
|
||||
(config_method&)*this = other;
|
||||
m_allow_save = other.m_allow_save;
|
||||
m_use_preshared = other.m_use_preshared;
|
||||
m_preshared.reset(other.m_preshared ? (credentials*)other.m_preshared->clone() : nullptr);
|
||||
m_use_cred = other.m_use_cred;
|
||||
m_cred.reset(other.m_cred ? (credentials*)other.m_cred->clone() : nullptr);
|
||||
m_last_status = other.m_last_status;
|
||||
m_last_msg = other.m_last_msg;
|
||||
}
|
||||
@@ -198,12 +198,12 @@ eap::config_method_with_cred& eap::config_method_with_cred::operator=(_In_ const
|
||||
eap::config_method_with_cred& eap::config_method_with_cred::operator=(_Inout_ config_method_with_cred &&other)
|
||||
{
|
||||
if (this != &other) {
|
||||
(config_method&)*this = std::move(other );
|
||||
m_allow_save = std::move(other.m_allow_save );
|
||||
m_use_preshared = std::move(other.m_use_preshared);
|
||||
m_preshared = std::move(other.m_preshared );
|
||||
m_last_status = std::move(other.m_last_status );
|
||||
m_last_msg = std::move(other.m_last_msg );
|
||||
(config_method&)*this = std::move(other );
|
||||
m_allow_save = std::move(other.m_allow_save );
|
||||
m_use_cred = std::move(other.m_use_cred );
|
||||
m_cred = std::move(other.m_cred );
|
||||
m_last_status = std::move(other.m_last_status);
|
||||
m_last_msg = std::move(other.m_last_msg );
|
||||
}
|
||||
|
||||
return *this;
|
||||
@@ -219,15 +219,15 @@ void eap::config_method_with_cred::save(_In_ IXMLDOMDocument *pDoc, _In_ IXMLDOM
|
||||
|
||||
// <ClientSideCredential>
|
||||
winstd::com_obj<IXMLDOMElement> pXmlElClientSideCredential;
|
||||
if (FAILED(hr = eapxml::create_element(pDoc, pConfigRoot, winstd::bstr(L"eap-metadata:ClientSideCredential"), winstd::bstr(L"ClientSideCredential"), namespace_eapmetadata, &pXmlElClientSideCredential)))
|
||||
if (FAILED(hr = eapxml::create_element(pDoc, pConfigRoot, winstd::bstr(L"eap-metadata:ClientSideCredential"), winstd::bstr(L"ClientSideCredential"), namespace_eapmetadata, pXmlElClientSideCredential)))
|
||||
throw com_runtime_error(hr, __FUNCTION__ " Error creating <ClientSideCredential> element.");
|
||||
|
||||
// <ClientSideCredential>/<allow-save>
|
||||
if (FAILED(hr = eapxml::put_element_value(pDoc, pXmlElClientSideCredential, winstd::bstr(L"allow-save"), namespace_eapmetadata, m_allow_save)))
|
||||
throw com_runtime_error(hr, __FUNCTION__ " Error creating <allow-save> element.");
|
||||
|
||||
if (m_use_preshared)
|
||||
m_preshared->save(pDoc, pXmlElClientSideCredential);
|
||||
if (m_use_cred)
|
||||
m_cred->save(pDoc, pXmlElClientSideCredential);
|
||||
}
|
||||
|
||||
|
||||
@@ -235,24 +235,24 @@ void eap::config_method_with_cred::load(_In_ IXMLDOMNode *pConfigRoot)
|
||||
{
|
||||
assert(pConfigRoot);
|
||||
|
||||
m_allow_save = true;
|
||||
m_use_preshared = false;
|
||||
m_preshared->clear();
|
||||
m_allow_save = true;
|
||||
m_use_cred = false;
|
||||
m_cred->clear();
|
||||
|
||||
// <ClientSideCredential>
|
||||
winstd::com_obj<IXMLDOMElement> pXmlElClientSideCredential;
|
||||
if (SUCCEEDED(eapxml::select_element(pConfigRoot, winstd::bstr(L"eap-metadata:ClientSideCredential"), &pXmlElClientSideCredential))) {
|
||||
if (SUCCEEDED(eapxml::select_element(pConfigRoot, winstd::bstr(L"eap-metadata:ClientSideCredential"), pXmlElClientSideCredential))) {
|
||||
std::wstring xpath(eapxml::get_xpath(pXmlElClientSideCredential));
|
||||
|
||||
// <allow-save>
|
||||
eapxml::get_element_value(pXmlElClientSideCredential, winstd::bstr(L"eap-metadata:allow-save"), &m_allow_save);
|
||||
eapxml::get_element_value(pXmlElClientSideCredential, winstd::bstr(L"eap-metadata:allow-save"), m_allow_save);
|
||||
m_module.log_config((xpath + L"/allow-save").c_str(), m_allow_save);
|
||||
|
||||
try {
|
||||
m_preshared->load(pXmlElClientSideCredential);
|
||||
m_use_preshared = true;
|
||||
m_cred->load(pXmlElClientSideCredential);
|
||||
m_use_cred = true;
|
||||
} catch (...) {
|
||||
// This is not really an error - merely an indication pre-shared credentials are unavailable.
|
||||
// This is not really an error - merely an indication configured credentials are unavailable.
|
||||
}
|
||||
}
|
||||
|
||||
@@ -265,8 +265,8 @@ void eap::config_method_with_cred::operator<<(_Inout_ cursor_out &cursor) const
|
||||
{
|
||||
config_method::operator<<(cursor);
|
||||
cursor << m_allow_save;
|
||||
cursor << m_use_preshared;
|
||||
cursor << *m_preshared;
|
||||
cursor << m_use_cred;
|
||||
cursor << *m_cred;
|
||||
cursor << m_last_status;
|
||||
cursor << m_last_msg;
|
||||
}
|
||||
@@ -276,11 +276,11 @@ size_t eap::config_method_with_cred::get_pk_size() const
|
||||
{
|
||||
return
|
||||
config_method::get_pk_size() +
|
||||
pksizeof(m_allow_save ) +
|
||||
pksizeof(m_use_preshared) +
|
||||
pksizeof(*m_preshared ) +
|
||||
pksizeof(m_last_status ) +
|
||||
pksizeof(m_last_msg );
|
||||
pksizeof(m_allow_save ) +
|
||||
pksizeof(m_use_cred ) +
|
||||
pksizeof(*m_cred ) +
|
||||
pksizeof(m_last_status) +
|
||||
pksizeof(m_last_msg );
|
||||
}
|
||||
|
||||
|
||||
@@ -288,8 +288,8 @@ void eap::config_method_with_cred::operator>>(_Inout_ cursor_in &cursor)
|
||||
{
|
||||
config_method::operator>>(cursor);
|
||||
cursor >> m_allow_save;
|
||||
cursor >> m_use_preshared;
|
||||
cursor >> *m_preshared;
|
||||
cursor >> m_use_cred;
|
||||
cursor >> *m_cred;
|
||||
cursor >> m_last_status;
|
||||
cursor >> m_last_msg;
|
||||
}
|
||||
@@ -416,7 +416,7 @@ void eap::config_provider::save(_In_ IXMLDOMDocument *pDoc, _In_ IXMLDOMNode *pC
|
||||
|
||||
// <ProviderInfo>
|
||||
com_obj<IXMLDOMElement> pXmlElProviderInfo;
|
||||
if (FAILED(hr = eapxml::create_element(pDoc, pConfigRoot, bstr(L"eap-metadata:ProviderInfo"), bstr(L"ProviderInfo"), namespace_eapmetadata, &pXmlElProviderInfo)))
|
||||
if (FAILED(hr = eapxml::create_element(pDoc, pConfigRoot, bstr(L"eap-metadata:ProviderInfo"), bstr(L"ProviderInfo"), namespace_eapmetadata, pXmlElProviderInfo)))
|
||||
throw com_runtime_error(hr, __FUNCTION__ " Error creating <ProviderInfo> element.");
|
||||
|
||||
// <ProviderInfo>/<DisplayName>
|
||||
@@ -426,7 +426,7 @@ void eap::config_provider::save(_In_ IXMLDOMDocument *pDoc, _In_ IXMLDOMNode *pC
|
||||
|
||||
// <ProviderInfo>/<Helpdesk>
|
||||
com_obj<IXMLDOMElement> pXmlElHelpdesk;
|
||||
if (FAILED(hr = eapxml::create_element(pDoc, pXmlElProviderInfo, bstr(L"eap-metadata:Helpdesk"), bstr(L"Helpdesk"), namespace_eapmetadata, &pXmlElHelpdesk)))
|
||||
if (FAILED(hr = eapxml::create_element(pDoc, pXmlElProviderInfo, bstr(L"eap-metadata:Helpdesk"), bstr(L"Helpdesk"), namespace_eapmetadata, pXmlElHelpdesk)))
|
||||
throw com_runtime_error(hr, __FUNCTION__ " Error creating <Helpdesk> element.");
|
||||
|
||||
// <ProviderInfo>/<Helpdesk>/<EmailAddress>
|
||||
@@ -461,13 +461,13 @@ void eap::config_provider::save(_In_ IXMLDOMDocument *pDoc, _In_ IXMLDOMNode *pC
|
||||
|
||||
// <AuthenticationMethods>
|
||||
com_obj<IXMLDOMElement> pXmlElAuthenticationMethods;
|
||||
if (FAILED(hr = eapxml::create_element(pDoc, pConfigRoot, bstr(L"eap-metadata:AuthenticationMethods"), bstr(L"AuthenticationMethods"), namespace_eapmetadata, &pXmlElAuthenticationMethods)))
|
||||
if (FAILED(hr = eapxml::create_element(pDoc, pConfigRoot, bstr(L"eap-metadata:AuthenticationMethods"), bstr(L"AuthenticationMethods"), namespace_eapmetadata, pXmlElAuthenticationMethods)))
|
||||
throw com_runtime_error(hr, __FUNCTION__ " Error creating <AuthenticationMethods> element.");
|
||||
|
||||
for (vector<unique_ptr<config_method> >::const_iterator method = m_methods.cbegin(), method_end = m_methods.cend(); method != method_end; ++method) {
|
||||
// <AuthenticationMethod>
|
||||
com_obj<IXMLDOMElement> pXmlElAuthenticationMethod;
|
||||
if (FAILED(hr = eapxml::create_element(pDoc, bstr(L"AuthenticationMethod"), namespace_eapmetadata, &pXmlElAuthenticationMethod)))
|
||||
if (FAILED(hr = eapxml::create_element(pDoc, bstr(L"AuthenticationMethod"), namespace_eapmetadata, pXmlElAuthenticationMethod)))
|
||||
throw com_runtime_error(hr, __FUNCTION__ " Error creating <AuthenticationMethod> element.");
|
||||
|
||||
// <AuthenticationMethod>/...
|
||||
@@ -498,7 +498,7 @@ void eap::config_provider::load(_In_ IXMLDOMNode *pConfigRoot)
|
||||
m_module.log_config((xpath + L" ID").c_str(), m_id.c_str());
|
||||
|
||||
// <read-only>
|
||||
if (FAILED(hr = eapxml::get_element_value(pConfigRoot, bstr(L"eap-metadata:read-only"), &m_read_only)))
|
||||
if (FAILED(hr = eapxml::get_element_value(pConfigRoot, bstr(L"eap-metadata:read-only"), m_read_only)))
|
||||
m_read_only = true;
|
||||
m_module.log_config((xpath + L"/read-only").c_str(), m_read_only);
|
||||
|
||||
@@ -511,7 +511,7 @@ void eap::config_provider::load(_In_ IXMLDOMNode *pConfigRoot)
|
||||
m_lbl_alt_identity.clear();
|
||||
m_lbl_alt_password.clear();
|
||||
com_obj<IXMLDOMElement> pXmlElProviderInfo;
|
||||
if (SUCCEEDED(eapxml::select_element(pConfigRoot, bstr(L"eap-metadata:ProviderInfo"), &pXmlElProviderInfo))) {
|
||||
if (SUCCEEDED(eapxml::select_element(pConfigRoot, bstr(L"eap-metadata:ProviderInfo"), pXmlElProviderInfo))) {
|
||||
wstring lang;
|
||||
LoadString(m_module.m_instance, 2, lang);
|
||||
wstring xpathProviderInfo(xpath + L"/ProviderInfo");
|
||||
@@ -521,7 +521,7 @@ void eap::config_provider::load(_In_ IXMLDOMNode *pConfigRoot)
|
||||
m_module.log_config((xpathProviderInfo + L"/DisplayName").c_str(), m_name.c_str());
|
||||
|
||||
com_obj<IXMLDOMElement> pXmlElHelpdesk;
|
||||
if (SUCCEEDED(eapxml::select_element(pXmlElProviderInfo, bstr(L"eap-metadata:Helpdesk"), &pXmlElHelpdesk))) {
|
||||
if (SUCCEEDED(eapxml::select_element(pXmlElProviderInfo, bstr(L"eap-metadata:Helpdesk"), pXmlElHelpdesk))) {
|
||||
wstring xpathHelpdesk(xpathProviderInfo + L"/Helpdesk");
|
||||
|
||||
// <Helpdesk>/<EmailAddress>
|
||||
@@ -553,7 +553,7 @@ void eap::config_provider::load(_In_ IXMLDOMNode *pConfigRoot)
|
||||
// Iterate authentication methods (<AuthenticationMethods>).
|
||||
m_methods.clear();
|
||||
com_obj<IXMLDOMNodeList> pXmlListMethods;
|
||||
if (FAILED(hr = eapxml::select_nodes(pConfigRoot, bstr(L"eap-metadata:AuthenticationMethods/eap-metadata:AuthenticationMethod"), &pXmlListMethods)))
|
||||
if (FAILED(hr = eapxml::select_nodes(pConfigRoot, bstr(L"eap-metadata:AuthenticationMethods/eap-metadata:AuthenticationMethod"), pXmlListMethods)))
|
||||
throw com_runtime_error(hr, __FUNCTION__ " Error selecting <AuthenticationMethods>/<AuthenticationMethod> elements.");
|
||||
long lCount = 0;
|
||||
pXmlListMethods->get_length(&lCount);
|
||||
@@ -565,7 +565,7 @@ void eap::config_provider::load(_In_ IXMLDOMNode *pConfigRoot)
|
||||
|
||||
// Check EAP method type (<EAPMethod>).
|
||||
DWORD dwMethodID;
|
||||
if (SUCCEEDED(eapxml::get_element_value(pXmlElMethod, bstr(L"eap-metadata:EAPMethod"), &dwMethodID))) {
|
||||
if (SUCCEEDED(eapxml::get_element_value(pXmlElMethod, bstr(L"eap-metadata:EAPMethod"), dwMethodID))) {
|
||||
if ((eap_type_t)dwMethodID != cfg->get_method_id()) {
|
||||
// Wrong type.
|
||||
continue;
|
||||
@@ -705,13 +705,13 @@ void eap::config_connection::save(_In_ IXMLDOMDocument *pDoc, _In_ IXMLDOMNode *
|
||||
|
||||
// Create <EAPIdentityProviderList> node.
|
||||
com_obj<IXMLDOMElement> pXmlElIdentityProviderList;
|
||||
if (FAILED(hr = eapxml::create_element(pDoc, pConfigRoot, bstr(L"eap-metadata:EAPIdentityProviderList"), bstr(L"EAPIdentityProviderList"), namespace_eapmetadata, &pXmlElIdentityProviderList)))
|
||||
if (FAILED(hr = eapxml::create_element(pDoc, pConfigRoot, bstr(L"eap-metadata:EAPIdentityProviderList"), bstr(L"EAPIdentityProviderList"), namespace_eapmetadata, pXmlElIdentityProviderList)))
|
||||
throw com_runtime_error(hr, __FUNCTION__ " Error creating <EAPIdentityProviderList> element.");
|
||||
|
||||
for (provider_list::const_iterator provider = m_providers.cbegin(), provider_end = m_providers.cend(); provider != provider_end; ++provider) {
|
||||
// <EAPIdentityProvider>
|
||||
com_obj<IXMLDOMElement> pXmlElIdentityProvider;
|
||||
if (FAILED(hr = eapxml::create_element(pDoc, bstr(L"EAPIdentityProvider"), namespace_eapmetadata, &pXmlElIdentityProvider)))
|
||||
if (FAILED(hr = eapxml::create_element(pDoc, bstr(L"EAPIdentityProvider"), namespace_eapmetadata, pXmlElIdentityProvider)))
|
||||
throw com_runtime_error(hr, __FUNCTION__ " Error creating <EAPIdentityProvider> element.");
|
||||
|
||||
// <EAPIdentityProvider>/...
|
||||
@@ -732,7 +732,7 @@ void eap::config_connection::load(_In_ IXMLDOMNode *pConfigRoot)
|
||||
|
||||
// Iterate authentication providers (<EAPIdentityProvider>).
|
||||
com_obj<IXMLDOMNodeList> pXmlListProviders;
|
||||
if (FAILED(hr = eapxml::select_nodes(pConfigRoot, bstr(L"eap-metadata:EAPIdentityProviderList/eap-metadata:EAPIdentityProvider"), &pXmlListProviders)))
|
||||
if (FAILED(hr = eapxml::select_nodes(pConfigRoot, bstr(L"eap-metadata:EAPIdentityProviderList/eap-metadata:EAPIdentityProvider"), pXmlListProviders)))
|
||||
throw com_runtime_error(hr, __FUNCTION__ " Error selecting <EAPIdentityProviderList><EAPIdentityProvider> elements.");
|
||||
long lCount = 0;
|
||||
pXmlListProviders->get_length(&lCount);
|
||||
|
@@ -106,7 +106,7 @@ void eap::credentials::load(_In_ IXMLDOMNode *pConfigRoot)
|
||||
|
||||
config::load(pConfigRoot);
|
||||
|
||||
std::wstring xpath(eapxml::get_xpath(pConfigRoot));
|
||||
wstring xpath(eapxml::get_xpath(pConfigRoot));
|
||||
|
||||
if (FAILED(hr = eapxml::get_element_value(pConfigRoot, bstr(L"eap-metadata:UserName"), m_identity)))
|
||||
m_identity.clear();
|
||||
@@ -225,12 +225,18 @@ void eap::credentials_pass::save(_In_ IXMLDOMDocument *pDoc, _In_ IXMLDOMNode *p
|
||||
|
||||
HRESULT hr;
|
||||
|
||||
// Prepare cryptographics provider.
|
||||
crypt_prov cp;
|
||||
if (!cp.create(NULL, NULL, PROV_RSA_AES, CRYPT_VERIFYCONTEXT))
|
||||
throw win_runtime_error(__FUNCTION__ " CryptAcquireContext failed.");
|
||||
|
||||
// <Password>
|
||||
bstr pass(m_password);
|
||||
hr = eapxml::put_element_value(pDoc, pConfigRoot, bstr(L"Password"), namespace_eapmetadata, pass);
|
||||
SecureZeroMemory((BSTR)pass, sizeof(OLECHAR)*pass.length());
|
||||
if (FAILED(hr))
|
||||
vector<unsigned char> password_enc(std::move(m_module.encrypt_md5(cp, m_password)));
|
||||
com_obj<IXMLDOMElement> pXmlElPassword;
|
||||
if (FAILED(hr = eapxml::put_element_base64(pDoc, pConfigRoot, bstr(L"Password"), namespace_eapmetadata, password_enc.data(), password_enc.size(), std::addressof(pXmlElPassword))))
|
||||
throw com_runtime_error(hr, __FUNCTION__ " Error creating <Password> element.");
|
||||
|
||||
pXmlElPassword->setAttribute(bstr(L"encryption"), variant(_L(PRODUCT_NAME_STR)));
|
||||
}
|
||||
|
||||
|
||||
@@ -241,13 +247,35 @@ void eap::credentials_pass::load(_In_ IXMLDOMNode *pConfigRoot)
|
||||
|
||||
credentials::load(pConfigRoot);
|
||||
|
||||
std::wstring xpath(eapxml::get_xpath(pConfigRoot));
|
||||
wstring xpath(eapxml::get_xpath(pConfigRoot));
|
||||
|
||||
bstr pass;
|
||||
if (FAILED(hr = eapxml::get_element_value(pConfigRoot, bstr(L"eap-metadata:Password"), &pass)))
|
||||
// <Password>
|
||||
bstr password, encryption;
|
||||
com_obj<IXMLDOMElement> pXmlElPassword;
|
||||
if (FAILED(hr = eapxml::get_element_value(pConfigRoot, bstr(L"eap-metadata:Password"), password, std::addressof(pXmlElPassword))))
|
||||
throw com_runtime_error(hr, __FUNCTION__ " Error reading <Password> element.");
|
||||
m_password = pass;
|
||||
SecureZeroMemory((BSTR)pass, sizeof(OLECHAR)*pass.length());
|
||||
|
||||
if (SUCCEEDED(eapxml::get_attrib_value(pXmlElPassword, bstr(L"encryption"), encryption)) &&
|
||||
CompareStringEx(LOCALE_NAME_INVARIANT, NORM_IGNORECASE, encryption, encryption.length(), _L(PRODUCT_NAME_STR), -1, NULL, NULL, 0) == CSTR_EQUAL)
|
||||
{
|
||||
// Decrypt password.
|
||||
|
||||
// Decode Base64.
|
||||
winstd::base64_dec dec;
|
||||
bool is_last;
|
||||
std::vector<unsigned char> password_enc;
|
||||
dec.decode(password_enc, is_last, (BSTR)password, password.length());
|
||||
|
||||
// Prepare cryptographics provider.
|
||||
crypt_prov cp;
|
||||
if (!cp.create(NULL, NULL, PROV_RSA_AES, CRYPT_VERIFYCONTEXT))
|
||||
throw win_runtime_error(__FUNCTION__ " CryptAcquireContext failed.");
|
||||
|
||||
m_password = m_module.decrypt_str_md5<std::char_traits<wchar_t>, sanitizing_allocator<wchar_t> >(cp, password_enc.data(), password_enc.size());
|
||||
} else {
|
||||
m_password = password;
|
||||
SecureZeroMemory((BSTR)password, sizeof(OLECHAR)*password.length());
|
||||
}
|
||||
|
||||
m_module.log_config((xpath + L"/Password").c_str(),
|
||||
#ifdef _DEBUG
|
||||
@@ -375,11 +403,11 @@ eap::credentials::source_t eap::credentials_pass::combine(
|
||||
return source_cache;
|
||||
}
|
||||
|
||||
if (cfg.m_use_preshared) {
|
||||
// Using preshared credentials.
|
||||
*this = *(credentials_pass*)cfg.m_preshared.get();
|
||||
m_module.log_event(&EAPMETHOD_TRACE_EVT_CRED_PRESHARED1, event_data((unsigned int)cfg.get_method_id()), event_data(credentials_pass::get_name()), event_data::blank);
|
||||
return source_preshared;
|
||||
if (cfg.m_use_cred) {
|
||||
// Using configured credentials.
|
||||
*this = *(credentials_pass*)cfg.m_cred.get();
|
||||
m_module.log_event(&EAPMETHOD_TRACE_EVT_CRED_CONFIG1, event_data((unsigned int)cfg.get_method_id()), event_data(credentials_pass::get_name()), event_data::blank);
|
||||
return source_config;
|
||||
}
|
||||
|
||||
if (pszTargetName) {
|
||||
@@ -542,7 +570,7 @@ void eap::credentials_connection::save(_In_ IXMLDOMDocument *pDoc, _In_ IXMLDOMN
|
||||
|
||||
// Create <EAPIdentityProvider> node.
|
||||
com_obj<IXMLDOMElement> pXmlElIdentityProvider;
|
||||
if (FAILED(hr = eapxml::create_element(pDoc, pConfigRoot, bstr(L"eap-metadata:EAPIdentityProvider"), bstr(L"EAPIdentityProvider"), namespace_eapmetadata, &pXmlElIdentityProvider)))
|
||||
if (FAILED(hr = eapxml::create_element(pDoc, pConfigRoot, bstr(L"eap-metadata:EAPIdentityProvider"), bstr(L"EAPIdentityProvider"), namespace_eapmetadata, pXmlElIdentityProvider)))
|
||||
throw com_runtime_error(hr, __FUNCTION__ " Error creating <EAPIdentityProvider> element.");
|
||||
|
||||
// namespace
|
||||
@@ -567,11 +595,11 @@ void eap::credentials_connection::load(_In_ IXMLDOMNode *pConfigRoot)
|
||||
config::load(pConfigRoot);
|
||||
|
||||
// <EAPIdentityProvider>
|
||||
winstd::com_obj<IXMLDOMElement> pXmlElClientSideCredential;
|
||||
if (FAILED(hr = eapxml::select_element(pConfigRoot, winstd::bstr(L"eap-metadata:EAPIdentityProvider"), &pXmlElClientSideCredential)))
|
||||
com_obj<IXMLDOMElement> pXmlElClientSideCredential;
|
||||
if (FAILED(hr = eapxml::select_element(pConfigRoot, bstr(L"eap-metadata:EAPIdentityProvider"), pXmlElClientSideCredential)))
|
||||
throw com_runtime_error(hr, __FUNCTION__ " Error loading <EAPIdentityProvider> element.");
|
||||
|
||||
std::wstring xpath(eapxml::get_xpath(pXmlElClientSideCredential));
|
||||
wstring xpath(eapxml::get_xpath(pXmlElClientSideCredential));
|
||||
|
||||
// namespace
|
||||
m_namespace.clear();
|
||||
|
@@ -199,6 +199,10 @@ public:
|
||||
this->SetIcon(wxIcon(wxICON(product.ico)));
|
||||
#endif
|
||||
|
||||
// Set banner title.
|
||||
std::unique_ptr<eap::config_method> cfg_dummy(cfg.m_module.make_config_method());
|
||||
m_banner->m_title->SetLabel(wxString::Format("%s %s", wxT(PRODUCT_NAME_STR), cfg_dummy->get_method_str()));
|
||||
|
||||
for (eap::config_connection::provider_list::iterator provider = m_cfg.m_providers.begin(), provider_end = m_cfg.m_providers.end(); provider != provider_end; ++provider) {
|
||||
bool is_single = provider->m_methods.size() == 1;
|
||||
std::vector<std::unique_ptr<eap::config_method> >::size_type count = 0;
|
||||
@@ -566,14 +570,16 @@ public:
|
||||
/// \param[inout] cfg Configuration data
|
||||
/// \param[in] parent Parent window
|
||||
///
|
||||
wxEAPCredentialsConfigPanel(const eap::config_provider &prov, eap::config_method_with_cred &cfg, wxWindow *parent) :
|
||||
wxEAPCredentialsConfigPanel(const eap::config_provider &prov, eap::config_method_with_cred &cfg, wxWindow *parent, const wxString &method = wxEmptyString) :
|
||||
m_prov(prov),
|
||||
m_cfg(cfg),
|
||||
m_has_own(false),
|
||||
m_cred_own(cfg.m_module),
|
||||
m_cred_preshared(cfg.m_module),
|
||||
m_has_storage(false),
|
||||
m_cred_storage(cfg.m_module),
|
||||
m_cred_config(cfg.m_module),
|
||||
wxEAPCredentialsConfigPanelBase(parent)
|
||||
{
|
||||
m_sb_credentials->GetStaticBox()->SetLabel(method.empty() ? wxString::Format(_("%s User Credentials"), cfg.get_method_str()) : method);
|
||||
|
||||
// Load and set icon.
|
||||
winstd::library lib_shell32;
|
||||
if (lib_shell32.load(_T("shell32.dll"), NULL, LOAD_LIBRARY_AS_DATAFILE | LOAD_LIBRARY_AS_IMAGE_RESOURCE))
|
||||
@@ -585,7 +591,7 @@ public:
|
||||
///
|
||||
inline void SetFocusFromKbd()
|
||||
{
|
||||
m_own->SetFocusFromKbd();
|
||||
m_storage->SetFocusFromKbd();
|
||||
}
|
||||
|
||||
protected:
|
||||
@@ -593,18 +599,18 @@ protected:
|
||||
|
||||
virtual bool TransferDataToWindow()
|
||||
{
|
||||
if (!m_cfg.m_use_preshared)
|
||||
m_own->SetValue(true);
|
||||
if (!m_cfg.m_use_cred)
|
||||
m_storage->SetValue(true);
|
||||
else
|
||||
m_preshared->SetValue(true);
|
||||
m_config->SetValue(true);
|
||||
|
||||
if (m_cfg.m_allow_save) {
|
||||
RetrieveOwnCredentials();
|
||||
m_timer_own.Start(3000);
|
||||
RetrieveStorageCredentials();
|
||||
m_timer_storage.Start(3000);
|
||||
}
|
||||
|
||||
m_cred_preshared = *(_Tcred*)m_cfg.m_preshared.get();
|
||||
UpdatePresharedIdentity();
|
||||
m_cred_config = *(_Tcred*)m_cfg.m_cred.get();
|
||||
UpdateConfigIdentity();
|
||||
|
||||
return wxEAPCredentialsConfigPanelBase::TransferDataToWindow();
|
||||
}
|
||||
@@ -616,8 +622,8 @@ protected:
|
||||
|
||||
if (!m_prov.m_read_only) {
|
||||
// This is not a provider-locked configuration. Save the data.
|
||||
m_cfg.m_use_preshared = !m_own->GetValue();
|
||||
*m_cfg.m_preshared = m_cred_preshared;
|
||||
m_cfg.m_use_cred = !m_storage->GetValue();
|
||||
*(_Tcred*)m_cfg.m_cred.get() = m_cred_config;
|
||||
}
|
||||
|
||||
return true;
|
||||
@@ -627,139 +633,139 @@ protected:
|
||||
virtual void OnUpdateUI(wxUpdateUIEvent& /*event*/)
|
||||
{
|
||||
if (m_cfg.m_allow_save) {
|
||||
if (m_own->GetValue()) {
|
||||
m_own_identity->Enable(true);
|
||||
m_own_set ->Enable(true);
|
||||
m_own_clear ->Enable(m_has_own);
|
||||
if (m_storage->GetValue()) {
|
||||
m_storage_identity->Enable(true);
|
||||
m_storage_set ->Enable(true);
|
||||
m_storage_clear ->Enable(m_has_storage);
|
||||
} else {
|
||||
m_own_identity->Enable(false);
|
||||
m_own_set ->Enable(false);
|
||||
m_own_clear ->Enable(false);
|
||||
m_storage_identity->Enable(false);
|
||||
m_storage_set ->Enable(false);
|
||||
m_storage_clear ->Enable(false);
|
||||
}
|
||||
} else {
|
||||
m_own_identity->Enable(false);
|
||||
m_own_set ->Enable(false);
|
||||
m_own_clear ->Enable(false);
|
||||
m_storage_identity->Enable(false);
|
||||
m_storage_set ->Enable(false);
|
||||
m_storage_clear ->Enable(false);
|
||||
}
|
||||
|
||||
if (m_prov.m_read_only) {
|
||||
// This is provider-locked configuration. Disable controls.
|
||||
// To avoid run-away selection of radio buttons, disable the selected one last.
|
||||
if (m_own->GetValue()) {
|
||||
m_preshared->Enable(false);
|
||||
m_own ->Enable(false);
|
||||
if (m_storage->GetValue()) {
|
||||
m_config ->Enable(false);
|
||||
m_storage->Enable(false);
|
||||
} else {
|
||||
m_own ->Enable(false);
|
||||
m_preshared->Enable(false);
|
||||
m_storage->Enable(false);
|
||||
m_config ->Enable(false);
|
||||
}
|
||||
m_preshared_identity->Enable(false);
|
||||
m_preshared_set ->Enable(false);
|
||||
m_config_identity->Enable(false);
|
||||
m_config_set ->Enable(false);
|
||||
} else {
|
||||
// This is not a provider-locked configuration. Selectively enable/disable controls.
|
||||
m_own ->Enable(true);
|
||||
m_preshared->Enable(true);
|
||||
if (m_own->GetValue()) {
|
||||
m_preshared_identity->Enable(false);
|
||||
m_preshared_set ->Enable(false);
|
||||
m_storage->Enable(true);
|
||||
m_config->Enable(true);
|
||||
if (m_storage->GetValue()) {
|
||||
m_config_identity->Enable(false);
|
||||
m_config_set ->Enable(false);
|
||||
} else {
|
||||
m_preshared_identity->Enable(true);
|
||||
m_preshared_set ->Enable(true);
|
||||
m_config_identity->Enable(true);
|
||||
m_config_set ->Enable(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
virtual void OnSetOwn(wxCommandEvent& /*event*/)
|
||||
virtual void OnSetStorage(wxCommandEvent& /*event*/)
|
||||
{
|
||||
// Read credentials from Credential Manager.
|
||||
RetrieveOwnCredentials();
|
||||
RetrieveStorageCredentials();
|
||||
|
||||
// Display credential prompt.
|
||||
wxEAPCredentialsDialog dlg(m_prov, this);
|
||||
_wxT *panel = new _wxT(m_prov, m_cfg, m_cred_own, &dlg, true);
|
||||
_wxT *panel = new _wxT(m_prov, m_cfg, m_cred_storage, &dlg, true);
|
||||
dlg.AddContent(panel);
|
||||
if (dlg.ShowModal() == wxID_OK && panel->GetRemember()) {
|
||||
// Write credentials to credential manager.
|
||||
try {
|
||||
m_cred_own.store(m_prov.get_id().c_str(), m_cfg.m_level);
|
||||
m_has_own = TRUE;
|
||||
UpdateOwnIdentity();
|
||||
m_cred_storage.store(m_prov.get_id().c_str(), m_cfg.m_level);
|
||||
m_has_storage = TRUE;
|
||||
UpdateStorageIdentity();
|
||||
} catch (winstd::win_runtime_error &err) {
|
||||
wxLogError(winstd::tstring_printf(_("Error writing credentials to Credential Manager: %hs (error %u)"), err.what(), err.number()).c_str());
|
||||
RetrieveOwnCredentials();
|
||||
RetrieveStorageCredentials();
|
||||
} catch (...) {
|
||||
wxLogError(_("Writing credentials failed."));
|
||||
RetrieveOwnCredentials();
|
||||
RetrieveStorageCredentials();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
virtual void OnClearOwn(wxCommandEvent& /*event*/)
|
||||
virtual void OnClearStorage(wxCommandEvent& /*event*/)
|
||||
{
|
||||
if (CredDelete(m_cred_own.target_name(m_prov.get_id().c_str(), m_cfg.m_level).c_str(), CRED_TYPE_GENERIC, 0)) {
|
||||
m_own_identity->Clear();
|
||||
m_has_own = false;
|
||||
if (CredDelete(m_cred_storage.target_name(m_prov.get_id().c_str(), m_cfg.m_level).c_str(), CRED_TYPE_GENERIC, 0)) {
|
||||
m_storage_identity->Clear();
|
||||
m_has_storage = false;
|
||||
} else
|
||||
wxLogError(_("Deleting credentials failed (error %u)."), GetLastError());
|
||||
}
|
||||
|
||||
|
||||
virtual void OnSetPreshared(wxCommandEvent& /*event*/)
|
||||
virtual void OnSetConfig(wxCommandEvent& /*event*/)
|
||||
{
|
||||
wxEAPCredentialsDialog dlg(m_prov, this);
|
||||
|
||||
_wxT *panel = new _wxT(m_prov, m_cfg, m_cred_preshared, &dlg, true);
|
||||
_wxT *panel = new _wxT(m_prov, m_cfg, m_cred_config, &dlg, true);
|
||||
|
||||
dlg.AddContent(panel);
|
||||
if (dlg.ShowModal() == wxID_OK)
|
||||
UpdatePresharedIdentity();
|
||||
UpdateConfigIdentity();
|
||||
}
|
||||
|
||||
|
||||
virtual void OnTimerOwn(wxTimerEvent& /*event*/)
|
||||
virtual void OnTimerStorage(wxTimerEvent& /*event*/)
|
||||
{
|
||||
if (m_own_identity->IsShownOnScreen())
|
||||
RetrieveOwnCredentials();
|
||||
if (m_storage_identity->IsShownOnScreen())
|
||||
RetrieveStorageCredentials();
|
||||
}
|
||||
|
||||
|
||||
void RetrieveOwnCredentials()
|
||||
void RetrieveStorageCredentials()
|
||||
{
|
||||
try {
|
||||
m_cred_own.retrieve(m_prov.get_id().c_str(), m_cfg.m_level);
|
||||
m_has_own = true;
|
||||
UpdateOwnIdentity();
|
||||
m_cred_storage.retrieve(m_prov.get_id().c_str(), m_cfg.m_level);
|
||||
m_has_storage = true;
|
||||
UpdateStorageIdentity();
|
||||
} catch (winstd::win_runtime_error &err) {
|
||||
if (err.number() == ERROR_NOT_FOUND) {
|
||||
m_own_identity->Clear();
|
||||
m_has_own = false;
|
||||
m_storage_identity->Clear();
|
||||
m_has_storage = false;
|
||||
} else {
|
||||
m_own_identity->SetValue(wxString::Format(_("<error %u>"), err.number()));
|
||||
m_has_own = true;
|
||||
m_storage_identity->SetValue(wxString::Format(_("<error %u>"), err.number()));
|
||||
m_has_storage = true;
|
||||
}
|
||||
} catch (...) {
|
||||
m_own_identity->SetValue(_("<error>"));
|
||||
m_has_own = true;
|
||||
m_storage_identity->SetValue(_("<error>"));
|
||||
m_has_storage = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
inline void UpdateOwnIdentity()
|
||||
inline void UpdateStorageIdentity()
|
||||
{
|
||||
wxString identity(m_cred_own.get_identity());
|
||||
m_own_identity->SetValue(
|
||||
wxString identity(m_cred_storage.get_identity());
|
||||
m_storage_identity->SetValue(
|
||||
!identity.empty() ? identity :
|
||||
m_cred_own.empty() ? _("<empty>") : _("<blank ID>"));
|
||||
m_cred_storage.empty() ? _("<empty>") : _("<blank ID>"));
|
||||
}
|
||||
|
||||
|
||||
inline void UpdatePresharedIdentity()
|
||||
inline void UpdateConfigIdentity()
|
||||
{
|
||||
wxString identity(m_cred_preshared.get_identity());
|
||||
m_preshared_identity->SetValue(
|
||||
!identity.empty() ? identity :
|
||||
m_cred_preshared.empty() ? _("<empty>") : _("<blank ID>"));
|
||||
wxString identity(m_cred_config.get_identity());
|
||||
m_config_identity->SetValue(
|
||||
!identity.empty() ? identity :
|
||||
m_cred_config.empty() ? _("<empty>") : _("<blank ID>"));
|
||||
}
|
||||
|
||||
/// \endcond
|
||||
@@ -769,9 +775,9 @@ protected:
|
||||
eap::config_method_with_cred &m_cfg; ///< EAP method configuration
|
||||
|
||||
private:
|
||||
bool m_has_own; ///< Does the user has (some sort of) credentials stored in Credential Manager?
|
||||
_Tcred m_cred_own; ///< Temporary own credential data
|
||||
_Tcred m_cred_preshared; ///< Temporary pre-shared credential data
|
||||
bool m_has_storage; ///< Does the user has (some sort of) credentials stored in Credential Manager?
|
||||
_Tcred m_cred_storage; ///< Temporary stored credential data
|
||||
_Tcred m_cred_config; ///< Temporary config credential data
|
||||
};
|
||||
|
||||
|
||||
@@ -791,7 +797,7 @@ public:
|
||||
/// \param[in] cfg Configuration data
|
||||
/// \param[inout] cred Credentials data
|
||||
/// \param[in] parent Parent window
|
||||
/// \param[in] is_config Is this panel used to pre-enter credentials? When \c true, the "Remember" checkbox is always selected and disabled.
|
||||
/// \param[in] is_config Is this panel used to config credentials?
|
||||
///
|
||||
wxEAPCredentialsPanel(const eap::config_provider &prov, const eap::config_method_with_cred &cfg, _Tcred &cred, wxWindow* parent, bool is_config = false) :
|
||||
m_prov(prov),
|
||||
@@ -800,48 +806,33 @@ public:
|
||||
m_is_config(is_config),
|
||||
_Tbase(parent)
|
||||
{
|
||||
if (!is_config && !m_cfg.m_use_cred && m_cfg.m_allow_save) {
|
||||
m_remember = new wxCheckBox(m_sb_credentials->GetStaticBox(), wxID_ANY, _("&Remember"));
|
||||
m_remember->SetHelpText(_("Check if you would like to save credentials"));
|
||||
m_sb_credentials_vert->Add(m_remember, 0, wxALL|wxEXPAND, 5);
|
||||
} else
|
||||
m_remember = NULL;
|
||||
}
|
||||
|
||||
virtual void SetRemember(bool val)
|
||||
{
|
||||
return m_remember->SetValue(val);
|
||||
if (m_remember)
|
||||
m_remember->SetValue(val);
|
||||
}
|
||||
|
||||
virtual bool GetRemember() const
|
||||
{
|
||||
return m_remember->GetValue();
|
||||
return m_remember ?
|
||||
m_remember->GetValue() :
|
||||
!m_cfg.m_use_cred && m_cfg.m_allow_save;
|
||||
}
|
||||
|
||||
protected:
|
||||
/// \cond internal
|
||||
|
||||
virtual bool TransferDataToWindow()
|
||||
{
|
||||
if (m_is_config) {
|
||||
// Configuration mode
|
||||
// Always store credentials (somewhere).
|
||||
m_remember->SetValue(true);
|
||||
m_remember->Enable(false);
|
||||
} else if (m_cfg.m_use_preshared) {
|
||||
// Credential prompt mode & Using pre-shared credentials
|
||||
m_remember->SetValue(false);
|
||||
m_remember->Enable(false);
|
||||
} else if (!m_cfg.m_allow_save) {
|
||||
// Credential prompt mode & using own credentials & saving is not allowed
|
||||
m_remember->SetValue(false);
|
||||
m_remember->Enable(false);
|
||||
}
|
||||
|
||||
return _Tbase::TransferDataToWindow();
|
||||
}
|
||||
|
||||
/// \endcond
|
||||
|
||||
protected:
|
||||
const eap::config_provider &m_prov; ///< Provider configuration
|
||||
const eap::config_method_with_cred &m_cfg; ///< Method configuration
|
||||
_Tcred &m_cred; ///< Credentials
|
||||
bool m_is_config; ///< Is this a configuration dialog?
|
||||
wxCheckBox *m_remember; ///< "Remember" checkbox
|
||||
};
|
||||
|
||||
|
||||
@@ -856,15 +847,16 @@ public:
|
||||
/// \param[in] cfg Configuration data
|
||||
/// \param[inout] cred Credentials data
|
||||
/// \param[in] parent Parent window
|
||||
/// \param[in] is_config Is this panel used to pre-enter credentials? When \c true, the "Remember" checkbox is always selected and disabled.
|
||||
/// \param[in] is_config Is this panel used to config credentials?
|
||||
///
|
||||
wxPasswordCredentialsPanel(const eap::config_provider &prov, const eap::config_method_with_cred &cfg, _Tcred &cred, wxWindow* parent, bool is_config = false) :
|
||||
m_password_set(false),
|
||||
wxEAPCredentialsPanel<_Tcred, _Tbase>(prov, cfg, cred, parent, is_config)
|
||||
{
|
||||
// Load and set icon.
|
||||
winstd::library lib_shell32;
|
||||
if (lib_shell32.load(_T("shell32.dll"), NULL, LOAD_LIBRARY_AS_DATAFILE | LOAD_LIBRARY_AS_IMAGE_RESOURCE))
|
||||
m_credentials_icon->SetIcon(wxLoadIconFromResource(lib_shell32, MAKEINTRESOURCE(269)));
|
||||
if (lib_shell32.load(_T("imageres.dll"), NULL, LOAD_LIBRARY_AS_DATAFILE | LOAD_LIBRARY_AS_IMAGE_RESOURCE))
|
||||
m_credentials_icon->SetIcon(wxLoadIconFromResource(lib_shell32, MAKEINTRESOURCE(82)));
|
||||
|
||||
bool layout = false;
|
||||
if (!m_prov.m_lbl_alt_credential.empty()) {
|
||||
@@ -894,43 +886,43 @@ protected:
|
||||
{
|
||||
m_identity->SetValue(m_cred.m_identity);
|
||||
m_identity->SetSelection(0, -1);
|
||||
m_password->SetValue(m_cred.m_password.empty() ? wxEmptyString : s_dummy_password);
|
||||
m_password->SetValue(m_cred.m_password.empty() ? wxEmptyString : wxT("dummypass"));
|
||||
m_password_set = false;
|
||||
|
||||
if (!m_is_config && m_cfg.m_use_preshared) {
|
||||
// Credential prompt mode & Using pre-shared credentials
|
||||
if (!m_is_config && m_cfg.m_use_cred) {
|
||||
// Credential prompt mode & Using configured credentials
|
||||
m_identity_label->Enable(false);
|
||||
m_identity ->Enable(false);
|
||||
m_password_label->Enable(false);
|
||||
m_password ->Enable(false);
|
||||
}
|
||||
|
||||
return wxEAPCredentialsPanel<_Tcred, wxEAPCredentialsPassPanelBase>::TransferDataToWindow();
|
||||
return wxEAPCredentialsPanel<_Tcred, wxPasswordCredentialsPanelBase>::TransferDataToWindow();
|
||||
}
|
||||
|
||||
virtual bool TransferDataFromWindow()
|
||||
{
|
||||
if (!wxEAPCredentialsPanel<_Tcred, wxEAPCredentialsPassPanelBase>::TransferDataFromWindow())
|
||||
if (!wxEAPCredentialsPanel<_Tcred, wxPasswordCredentialsPanelBase>::TransferDataFromWindow())
|
||||
return false;
|
||||
|
||||
m_cred.m_identity = m_identity->GetValue();
|
||||
wxString pass = m_password->GetValue();
|
||||
if (pass.compare(s_dummy_password) != 0) {
|
||||
m_cred.m_password = pass;
|
||||
pass.assign(pass.length(), wxT('*'));
|
||||
}
|
||||
if (m_password_set)
|
||||
m_cred.m_password = m_password->GetValue();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
virtual void OnPasswordText(wxCommandEvent& /*event*/)
|
||||
{
|
||||
m_password_set = true;
|
||||
}
|
||||
|
||||
/// \endcond
|
||||
|
||||
private:
|
||||
static const wxStringCharType *s_dummy_password;
|
||||
bool m_password_set;
|
||||
};
|
||||
|
||||
template <class _Tcred, class _Tbase>
|
||||
const wxStringCharType *wxPasswordCredentialsPanel<_Tcred, _Tbase>::s_dummy_password = wxT("dummypass");
|
||||
|
||||
|
||||
inline wxIcon wxLoadIconFromResource(HINSTANCE hinst, PCWSTR pszName, int cx, int cy)
|
||||
{
|
||||
|
@@ -226,146 +226,125 @@ wxEAPNotePanelBase::~wxEAPNotePanelBase()
|
||||
|
||||
wxEAPCredentialsConfigPanelBase::wxEAPCredentialsConfigPanelBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style )
|
||||
{
|
||||
wxStaticBoxSizer* sb_credentials;
|
||||
sb_credentials = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Client Credentials") ), wxVERTICAL );
|
||||
m_sb_credentials = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("%s User Credentials") ), wxVERTICAL );
|
||||
|
||||
wxBoxSizer* sb_credentials_horiz;
|
||||
sb_credentials_horiz = new wxBoxSizer( wxHORIZONTAL );
|
||||
|
||||
m_credentials_icon = new wxStaticBitmap( sb_credentials->GetStaticBox(), wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_credentials_icon = new wxStaticBitmap( m_sb_credentials->GetStaticBox(), wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
sb_credentials_horiz->Add( m_credentials_icon, 0, wxALL, 5 );
|
||||
|
||||
wxBoxSizer* sb_credentials_vert;
|
||||
sb_credentials_vert = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
m_credentials_label = new wxStaticText( sb_credentials->GetStaticBox(), wxID_ANY, _("Manage credentials used to connect."), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_credentials_label = new wxStaticText( m_sb_credentials->GetStaticBox(), wxID_ANY, _("Select the source where your credentials used to connect are stored."), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_credentials_label->Wrap( 440 );
|
||||
sb_credentials_vert->Add( m_credentials_label, 0, wxALL|wxEXPAND, 5 );
|
||||
|
||||
wxBoxSizer* sb_cred_radio;
|
||||
sb_cred_radio = new wxBoxSizer( wxVERTICAL );
|
||||
m_storage = new wxRadioButton( m_sb_credentials->GetStaticBox(), wxID_ANY, _("Use credentials from Credential &Manager:"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
|
||||
m_storage->SetToolTip( _("Select this option if you would like to use credentials stored in Windows Credential Manager") );
|
||||
|
||||
wxBoxSizer* sz_own;
|
||||
sz_own = new wxBoxSizer( wxVERTICAL );
|
||||
sb_credentials_vert->Add( m_storage, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
wxBoxSizer* sz_own_inner;
|
||||
sz_own_inner = new wxBoxSizer( wxHORIZONTAL );
|
||||
wxBoxSizer* sz_storage;
|
||||
sz_storage = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
m_own = new wxRadioButton( sb_credentials->GetStaticBox(), wxID_ANY, _("Use &own credentials:"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
|
||||
m_own->SetToolTip( _("Select this option if you have your unique credentials to connect") );
|
||||
m_storage_identity = new wxTextCtrl( m_sb_credentials->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
|
||||
m_storage_identity->SetToolTip( _("Your present credentials stored in Windows Credential Manager") );
|
||||
|
||||
sz_own_inner->Add( m_own, 2, wxEXPAND, 5 );
|
||||
sz_storage->Add( m_storage_identity, 3, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
m_own_identity = new wxTextCtrl( sb_credentials->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
|
||||
m_own_identity->SetToolTip( _("Your credentials loaded from Windows Credential Manager") );
|
||||
wxBoxSizer* sb_buttons_storage;
|
||||
sb_buttons_storage = new wxBoxSizer( wxHORIZONTAL );
|
||||
|
||||
sz_own_inner->Add( m_own_identity, 3, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
|
||||
m_storage_clear = new wxButton( m_sb_credentials->GetStaticBox(), wxID_ANY, _("&Clear Credentials"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_storage_clear->SetToolTip( _("Click to clear your credentials from Credential Manager.\nNote: You will be prompted to enter credentials when connecting.") );
|
||||
|
||||
sb_buttons_storage->Add( m_storage_clear, 0, wxRIGHT, 5 );
|
||||
|
||||
m_storage_set = new wxButton( m_sb_credentials->GetStaticBox(), wxID_ANY, _("&Set Credentials..."), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_storage_set->SetToolTip( _("Click here to set or modify your credentials") );
|
||||
|
||||
sb_buttons_storage->Add( m_storage_set, 0, wxLEFT, 5 );
|
||||
|
||||
|
||||
sz_own->Add( sz_own_inner, 1, wxEXPAND|wxBOTTOM, 5 );
|
||||
|
||||
wxBoxSizer* sb_buttons_own;
|
||||
sb_buttons_own = new wxBoxSizer( wxHORIZONTAL );
|
||||
|
||||
m_own_clear = new wxButton( sb_credentials->GetStaticBox(), wxID_ANY, _("&Clear Credentials"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_own_clear->SetToolTip( _("Click to clear your credentials from Credential Manager.\nNote: You will be prompted to enter credentials when connecting.") );
|
||||
|
||||
sb_buttons_own->Add( m_own_clear, 0, wxRIGHT, 5 );
|
||||
|
||||
m_own_set = new wxButton( sb_credentials->GetStaticBox(), wxID_ANY, _("&Set Credentials..."), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_own_set->SetToolTip( _("Click here to set or modify your credentials") );
|
||||
|
||||
sb_buttons_own->Add( m_own_set, 0, wxLEFT, 5 );
|
||||
sz_storage->Add( sb_buttons_storage, 0, wxALIGN_RIGHT|wxTOP, 5 );
|
||||
|
||||
|
||||
sz_own->Add( sb_buttons_own, 0, wxALIGN_RIGHT, 5 );
|
||||
sb_credentials_vert->Add( sz_storage, 0, wxEXPAND|wxALL, 5 );
|
||||
|
||||
m_config = new wxRadioButton( m_sb_credentials->GetStaticBox(), wxID_ANY, _("Use credentials from &profile configuration:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_config->SetToolTip( _("Select this option if you would like to store credentials as a part of profile configuration") );
|
||||
|
||||
sb_credentials_vert->Add( m_config, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
wxBoxSizer* sz_config;
|
||||
sz_config = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
m_config_identity = new wxTextCtrl( m_sb_credentials->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
|
||||
m_config_identity->SetToolTip( _("Profile configuration credentials") );
|
||||
|
||||
sz_config->Add( m_config_identity, 3, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
wxBoxSizer* sb_buttons_config;
|
||||
sb_buttons_config = new wxBoxSizer( wxHORIZONTAL );
|
||||
|
||||
m_config_set = new wxButton( m_sb_credentials->GetStaticBox(), wxID_ANY, _("&Set Credentials..."), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_config_set->SetToolTip( _("Click here to set or modify your credentials") );
|
||||
|
||||
sb_buttons_config->Add( m_config_set, 0, 0, 5 );
|
||||
|
||||
|
||||
sb_cred_radio->Add( sz_own, 0, wxEXPAND|wxBOTTOM, 5 );
|
||||
|
||||
wxBoxSizer* sz_preshared;
|
||||
sz_preshared = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
wxBoxSizer* sz_preshared_inner;
|
||||
sz_preshared_inner = new wxBoxSizer( wxHORIZONTAL );
|
||||
|
||||
m_preshared = new wxRadioButton( sb_credentials->GetStaticBox(), wxID_ANY, _("Use &pre-shared credentials:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_preshared->SetToolTip( _("Select this options if all clients connect using the same credentials") );
|
||||
|
||||
sz_preshared_inner->Add( m_preshared, 2, wxEXPAND, 5 );
|
||||
|
||||
m_preshared_identity = new wxTextCtrl( sb_credentials->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
|
||||
m_preshared_identity->SetToolTip( _("Common (pre-shared) credentials") );
|
||||
|
||||
sz_preshared_inner->Add( m_preshared_identity, 3, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
|
||||
sz_config->Add( sb_buttons_config, 0, wxALIGN_RIGHT|wxTOP, 5 );
|
||||
|
||||
|
||||
sz_preshared->Add( sz_preshared_inner, 1, wxEXPAND|wxBOTTOM, 5 );
|
||||
|
||||
wxBoxSizer* sb_buttons_preshared;
|
||||
sb_buttons_preshared = new wxBoxSizer( wxHORIZONTAL );
|
||||
|
||||
m_preshared_set = new wxButton( sb_credentials->GetStaticBox(), wxID_ANY, _("&Set Credentials..."), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_preshared_set->SetToolTip( _("Click here to set or modify your credentials") );
|
||||
|
||||
sb_buttons_preshared->Add( m_preshared_set, 0, 0, 5 );
|
||||
|
||||
|
||||
sz_preshared->Add( sb_buttons_preshared, 0, wxALIGN_RIGHT, 5 );
|
||||
|
||||
|
||||
sb_cred_radio->Add( sz_preshared, 0, wxEXPAND|wxTOP, 5 );
|
||||
|
||||
|
||||
sb_credentials_vert->Add( sb_cred_radio, 0, wxEXPAND|wxALL, 5 );
|
||||
sb_credentials_vert->Add( sz_config, 0, wxEXPAND|wxALL, 5 );
|
||||
|
||||
|
||||
sb_credentials_horiz->Add( sb_credentials_vert, 1, wxEXPAND, 5 );
|
||||
|
||||
|
||||
sb_credentials->Add( sb_credentials_horiz, 1, wxEXPAND, 5 );
|
||||
m_sb_credentials->Add( sb_credentials_horiz, 1, wxEXPAND, 5 );
|
||||
|
||||
|
||||
this->SetSizer( sb_credentials );
|
||||
this->SetSizer( m_sb_credentials );
|
||||
this->Layout();
|
||||
m_timer_own.SetOwner( this, wxID_ANY );
|
||||
m_timer_storage.SetOwner( this, wxID_ANY );
|
||||
|
||||
// Connect Events
|
||||
this->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( wxEAPCredentialsConfigPanelBase::OnUpdateUI ) );
|
||||
m_own_clear->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxEAPCredentialsConfigPanelBase::OnClearOwn ), NULL, this );
|
||||
m_own_set->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxEAPCredentialsConfigPanelBase::OnSetOwn ), NULL, this );
|
||||
m_preshared_set->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxEAPCredentialsConfigPanelBase::OnSetPreshared ), NULL, this );
|
||||
this->Connect( wxID_ANY, wxEVT_TIMER, wxTimerEventHandler( wxEAPCredentialsConfigPanelBase::OnTimerOwn ) );
|
||||
m_storage_clear->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxEAPCredentialsConfigPanelBase::OnClearStorage ), NULL, this );
|
||||
m_storage_set->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxEAPCredentialsConfigPanelBase::OnSetStorage ), NULL, this );
|
||||
m_config_set->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxEAPCredentialsConfigPanelBase::OnSetConfig ), NULL, this );
|
||||
this->Connect( wxID_ANY, wxEVT_TIMER, wxTimerEventHandler( wxEAPCredentialsConfigPanelBase::OnTimerStorage ) );
|
||||
}
|
||||
|
||||
wxEAPCredentialsConfigPanelBase::~wxEAPCredentialsConfigPanelBase()
|
||||
{
|
||||
// Disconnect Events
|
||||
this->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( wxEAPCredentialsConfigPanelBase::OnUpdateUI ) );
|
||||
m_own_clear->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxEAPCredentialsConfigPanelBase::OnClearOwn ), NULL, this );
|
||||
m_own_set->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxEAPCredentialsConfigPanelBase::OnSetOwn ), NULL, this );
|
||||
m_preshared_set->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxEAPCredentialsConfigPanelBase::OnSetPreshared ), NULL, this );
|
||||
this->Disconnect( wxID_ANY, wxEVT_TIMER, wxTimerEventHandler( wxEAPCredentialsConfigPanelBase::OnTimerOwn ) );
|
||||
m_storage_clear->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxEAPCredentialsConfigPanelBase::OnClearStorage ), NULL, this );
|
||||
m_storage_set->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxEAPCredentialsConfigPanelBase::OnSetStorage ), NULL, this );
|
||||
m_config_set->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxEAPCredentialsConfigPanelBase::OnSetConfig ), NULL, this );
|
||||
this->Disconnect( wxID_ANY, wxEVT_TIMER, wxTimerEventHandler( wxEAPCredentialsConfigPanelBase::OnTimerStorage ) );
|
||||
|
||||
}
|
||||
|
||||
wxEAPCredentialsPassPanelBase::wxEAPCredentialsPassPanelBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxEAPCredentialsPanelBase( parent, id, pos, size, style )
|
||||
wxPasswordCredentialsPanelBase::wxPasswordCredentialsPanelBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxEAPCredentialsPanelBase( parent, id, pos, size, style )
|
||||
{
|
||||
wxStaticBoxSizer* sb_credentials;
|
||||
sb_credentials = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Client Credentials") ), wxVERTICAL );
|
||||
m_sb_credentials = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("User ID and Password") ), wxVERTICAL );
|
||||
|
||||
wxBoxSizer* sb_credentials_horiz;
|
||||
sb_credentials_horiz = new wxBoxSizer( wxHORIZONTAL );
|
||||
|
||||
m_credentials_icon = new wxStaticBitmap( sb_credentials->GetStaticBox(), wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_credentials_icon = new wxStaticBitmap( m_sb_credentials->GetStaticBox(), wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
sb_credentials_horiz->Add( m_credentials_icon, 0, wxALL, 5 );
|
||||
|
||||
wxBoxSizer* sb_credentials_vert;
|
||||
sb_credentials_vert = new wxBoxSizer( wxVERTICAL );
|
||||
m_sb_credentials_vert = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
m_credentials_label = new wxStaticText( sb_credentials->GetStaticBox(), wxID_ANY, _("Please provide your user ID and password."), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_credentials_label = new wxStaticText( m_sb_credentials->GetStaticBox(), wxID_ANY, _("Please provide your user ID and password."), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_credentials_label->Wrap( 440 );
|
||||
sb_credentials_vert->Add( m_credentials_label, 0, wxALL|wxEXPAND, 5 );
|
||||
m_sb_credentials_vert->Add( m_credentials_label, 0, wxALL|wxEXPAND, 5 );
|
||||
|
||||
wxFlexGridSizer* sb_credentials_tbl;
|
||||
sb_credentials_tbl = new wxFlexGridSizer( 0, 2, 5, 5 );
|
||||
@@ -373,45 +352,46 @@ wxEAPCredentialsPassPanelBase::wxEAPCredentialsPassPanelBase( wxWindow* parent,
|
||||
sb_credentials_tbl->SetFlexibleDirection( wxBOTH );
|
||||
sb_credentials_tbl->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
||||
|
||||
m_identity_label = new wxStaticText( sb_credentials->GetStaticBox(), wxID_ANY, _("User ID:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_identity_label = new wxStaticText( m_sb_credentials->GetStaticBox(), wxID_ANY, _("User ID:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_identity_label->Wrap( -1 );
|
||||
sb_credentials_tbl->Add( m_identity_label, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
m_identity = new wxTextCtrl( sb_credentials->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_identity = new wxTextCtrl( m_sb_credentials->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_identity->SetToolTip( _("Enter your user name here (user@domain.org, DOMAIN\\User, etc.)") );
|
||||
|
||||
sb_credentials_tbl->Add( m_identity, 2, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
m_password_label = new wxStaticText( sb_credentials->GetStaticBox(), wxID_ANY, _("Password:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_password_label = new wxStaticText( m_sb_credentials->GetStaticBox(), wxID_ANY, _("Password:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_password_label->Wrap( -1 );
|
||||
sb_credentials_tbl->Add( m_password_label, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
m_password = new wxTextCtrl( sb_credentials->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PASSWORD );
|
||||
m_password = new wxTextCtrl( m_sb_credentials->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PASSWORD );
|
||||
m_password->SetToolTip( _("Enter your password here") );
|
||||
|
||||
sb_credentials_tbl->Add( m_password, 2, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
|
||||
sb_credentials_vert->Add( sb_credentials_tbl, 0, wxEXPAND|wxALL, 5 );
|
||||
|
||||
m_remember = new wxCheckBox( sb_credentials->GetStaticBox(), wxID_ANY, _("&Remember"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_remember->SetHelpText( _("Check if you would like to save username and password") );
|
||||
|
||||
sb_credentials_vert->Add( m_remember, 0, wxALL|wxEXPAND, 5 );
|
||||
m_sb_credentials_vert->Add( sb_credentials_tbl, 0, wxEXPAND|wxALL, 5 );
|
||||
|
||||
|
||||
sb_credentials_horiz->Add( sb_credentials_vert, 1, wxEXPAND, 5 );
|
||||
sb_credentials_horiz->Add( m_sb_credentials_vert, 1, wxEXPAND, 5 );
|
||||
|
||||
|
||||
sb_credentials->Add( sb_credentials_horiz, 0, wxEXPAND, 5 );
|
||||
m_sb_credentials->Add( sb_credentials_horiz, 0, wxEXPAND, 5 );
|
||||
|
||||
|
||||
this->SetSizer( sb_credentials );
|
||||
this->SetSizer( m_sb_credentials );
|
||||
this->Layout();
|
||||
|
||||
// Connect Events
|
||||
m_password->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( wxPasswordCredentialsPanelBase::OnPasswordText ), NULL, this );
|
||||
}
|
||||
|
||||
wxEAPCredentialsPassPanelBase::~wxEAPCredentialsPassPanelBase()
|
||||
wxPasswordCredentialsPanelBase::~wxPasswordCredentialsPanelBase()
|
||||
{
|
||||
// Disconnect Events
|
||||
m_password->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( wxPasswordCredentialsPanelBase::OnPasswordText ), NULL, this );
|
||||
|
||||
}
|
||||
|
||||
wxEAPProviderContactInfoPanelBase::wxEAPProviderContactInfoPanelBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style )
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -34,8 +34,8 @@ class wxEAPBannerPanel;
|
||||
#include <wx/textctrl.h>
|
||||
#include <wx/statbox.h>
|
||||
#include <wx/timer.h>
|
||||
#include <wx/checkbox.h>
|
||||
#include <wx/choice.h>
|
||||
#include <wx/checkbox.h>
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -165,23 +165,24 @@ class wxEAPCredentialsConfigPanelBase : public wxPanel
|
||||
private:
|
||||
|
||||
protected:
|
||||
wxStaticBoxSizer* m_sb_credentials;
|
||||
wxStaticBitmap* m_credentials_icon;
|
||||
wxStaticText* m_credentials_label;
|
||||
wxRadioButton* m_own;
|
||||
wxTextCtrl* m_own_identity;
|
||||
wxButton* m_own_clear;
|
||||
wxButton* m_own_set;
|
||||
wxRadioButton* m_preshared;
|
||||
wxTextCtrl* m_preshared_identity;
|
||||
wxButton* m_preshared_set;
|
||||
wxTimer m_timer_own;
|
||||
wxRadioButton* m_storage;
|
||||
wxTextCtrl* m_storage_identity;
|
||||
wxButton* m_storage_clear;
|
||||
wxButton* m_storage_set;
|
||||
wxRadioButton* m_config;
|
||||
wxTextCtrl* m_config_identity;
|
||||
wxButton* m_config_set;
|
||||
wxTimer m_timer_storage;
|
||||
|
||||
// Virtual event handlers, overide them in your derived class
|
||||
virtual void OnUpdateUI( wxUpdateUIEvent& event ) { event.Skip(); }
|
||||
virtual void OnClearOwn( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void OnSetOwn( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void OnSetPreshared( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void OnTimerOwn( wxTimerEvent& event ) { event.Skip(); }
|
||||
virtual void OnClearStorage( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void OnSetStorage( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void OnSetConfig( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void OnTimerStorage( wxTimerEvent& event ) { event.Skip(); }
|
||||
|
||||
|
||||
public:
|
||||
@@ -192,25 +193,30 @@ class wxEAPCredentialsConfigPanelBase : public wxPanel
|
||||
};
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
/// Class wxEAPCredentialsPassPanelBase
|
||||
/// Class wxPasswordCredentialsPanelBase
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
class wxEAPCredentialsPassPanelBase : public wxEAPCredentialsPanelBase
|
||||
class wxPasswordCredentialsPanelBase : public wxEAPCredentialsPanelBase
|
||||
{
|
||||
private:
|
||||
|
||||
protected:
|
||||
wxStaticBoxSizer* m_sb_credentials;
|
||||
wxStaticBitmap* m_credentials_icon;
|
||||
wxBoxSizer* m_sb_credentials_vert;
|
||||
wxStaticText* m_credentials_label;
|
||||
wxStaticText* m_identity_label;
|
||||
wxTextCtrl* m_identity;
|
||||
wxStaticText* m_password_label;
|
||||
wxTextCtrl* m_password;
|
||||
wxCheckBox* m_remember;
|
||||
|
||||
// Virtual event handlers, overide them in your derived class
|
||||
virtual void OnPasswordText( wxCommandEvent& event ) { event.Skip(); }
|
||||
|
||||
|
||||
public:
|
||||
|
||||
wxEAPCredentialsPassPanelBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 500,-1 ), long style = wxTAB_TRAVERSAL );
|
||||
~wxEAPCredentialsPassPanelBase();
|
||||
wxPasswordCredentialsPanelBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 500,-1 ), long style = wxTAB_TRAVERSAL );
|
||||
~wxPasswordCredentialsPanelBase();
|
||||
|
||||
};
|
||||
|
||||
|
@@ -27,7 +27,6 @@
|
||||
|
||||
wxEAPBannerPanel::wxEAPBannerPanel(wxWindow* parent) : wxEAPBannerPanelBase(parent)
|
||||
{
|
||||
m_title->SetLabelText(wxT(PRODUCT_NAME_STR));
|
||||
}
|
||||
|
||||
|
||||
|
Binary file not shown.
@@ -95,6 +95,11 @@
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\Events\build\Events.vcxproj">
|
||||
<Project>{d63f24bd-92a0-4d6b-8b69-ed947e4d2b1b}</Project>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
|
@@ -40,6 +40,8 @@ namespace eap
|
||||
{
|
||||
class method_mschapv2 : public method_noneap
|
||||
{
|
||||
WINSTD_NONCOPYABLE(method_mschapv2)
|
||||
|
||||
public:
|
||||
///
|
||||
/// Constructs an EAP method
|
||||
@@ -132,7 +134,7 @@ namespace eap
|
||||
static std::list<std::string> parse_response(_In_count_(count) const char *resp, _In_ size_t count);
|
||||
|
||||
protected:
|
||||
credentials_pass &m_cred; ///< EAP-TLS user credentials
|
||||
credentials_pass &m_cred; ///< Method user credentials
|
||||
winstd::crypt_prov m_cp; ///< Cryptography provider for general services
|
||||
|
||||
challenge_mschapv2 m_challenge_server; ///< MSCHAP server challenge
|
||||
|
@@ -30,7 +30,7 @@ using namespace winstd;
|
||||
|
||||
eap::config_method_mschapv2::config_method_mschapv2(_In_ module &mod, _In_ unsigned int level) : config_method_with_cred(mod, level)
|
||||
{
|
||||
m_preshared.reset(new credentials_pass(mod));
|
||||
m_cred.reset(new credentials_pass(mod));
|
||||
}
|
||||
|
||||
|
||||
|
@@ -24,7 +24,7 @@
|
||||
///
|
||||
/// MSCHAPv2 credential configuration panel
|
||||
///
|
||||
typedef wxEAPCredentialsConfigPanel<eap::credentials_pass, wxPasswordCredentialsPanel<eap::credentials_pass, wxEAPCredentialsPassPanelBase> > wxMSCHAPv2CredentialsConfigPanel;
|
||||
typedef wxEAPCredentialsConfigPanel<eap::credentials_pass, wxPasswordCredentialsPanel<eap::credentials_pass, wxPasswordCredentialsPanelBase> > wxMSCHAPv2CredentialsConfigPanel;
|
||||
|
||||
///
|
||||
/// MSCHAPv2 configuration panel
|
||||
@@ -34,7 +34,7 @@ class wxMSCHAPv2ConfigPanel;
|
||||
///
|
||||
/// MSCHAPv2 credential entry panel
|
||||
///
|
||||
typedef wxPasswordCredentialsPanel<eap::credentials_pass, wxEAPCredentialsPassPanelBase> wxMSCHAPv2CredentialsPanel;
|
||||
typedef wxPasswordCredentialsPanel<eap::credentials_pass, wxPasswordCredentialsPanelBase> wxMSCHAPv2CredentialsPanel;
|
||||
|
||||
#pragma once
|
||||
|
||||
|
@@ -30,7 +30,7 @@ wxMSCHAPv2ConfigPanel::wxMSCHAPv2ConfigPanel(const eap::config_provider &prov, e
|
||||
wxBoxSizer* sb_content;
|
||||
sb_content = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
m_credentials = new wxMSCHAPv2CredentialsConfigPanel(prov, cfg, this);
|
||||
m_credentials = new wxMSCHAPv2CredentialsConfigPanel(prov, cfg, this, _("MSCHAPv2 User ID and Password"));
|
||||
sb_content->Add(m_credentials, 0, wxEXPAND, 5);
|
||||
|
||||
this->SetSizer(sb_content);
|
||||
|
@@ -93,6 +93,11 @@
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\Events\build\Events.vcxproj">
|
||||
<Project>{d63f24bd-92a0-4d6b-8b69-ed947e4d2b1b}</Project>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
|
@@ -38,6 +38,8 @@ namespace eap
|
||||
{
|
||||
class method_pap : public method_noneap
|
||||
{
|
||||
WINSTD_NONCOPYABLE(method_pap)
|
||||
|
||||
public:
|
||||
///
|
||||
/// Constructs an EAP method
|
||||
@@ -91,7 +93,7 @@ namespace eap
|
||||
/// @}
|
||||
|
||||
protected:
|
||||
credentials_pass &m_cred; ///< EAP-TLS user credentials
|
||||
credentials_pass &m_cred; ///< Method user credentials
|
||||
|
||||
enum {
|
||||
phase_unknown = -1, ///< Unknown phase
|
||||
|
@@ -30,7 +30,7 @@ using namespace winstd;
|
||||
|
||||
eap::config_method_pap::config_method_pap(_In_ module &mod, _In_ unsigned int level) : config_method_with_cred(mod, level)
|
||||
{
|
||||
m_preshared.reset(new credentials_pass(mod));
|
||||
m_cred.reset(new credentials_pass(mod));
|
||||
}
|
||||
|
||||
|
||||
|
@@ -74,6 +74,7 @@ void eap::method_pap::process_request_packet(
|
||||
_In_ DWORD dwReceivedPacketSize,
|
||||
_Inout_ EapPeerMethodOutput *pEapOutput)
|
||||
{
|
||||
UNREFERENCED_PARAMETER(pReceivedPacket);
|
||||
assert(pReceivedPacket || dwReceivedPacketSize == 0);
|
||||
assert(pEapOutput);
|
||||
|
||||
|
@@ -24,7 +24,7 @@
|
||||
///
|
||||
/// PAP credential configuration panel
|
||||
///
|
||||
typedef wxEAPCredentialsConfigPanel<eap::credentials_pass, wxPasswordCredentialsPanel<eap::credentials_pass, wxEAPCredentialsPassPanelBase> > wxPAPCredentialsConfigPanel;
|
||||
typedef wxEAPCredentialsConfigPanel<eap::credentials_pass, wxPasswordCredentialsPanel<eap::credentials_pass, wxPasswordCredentialsPanelBase> > wxPAPCredentialsConfigPanel;
|
||||
|
||||
///
|
||||
/// PAP configuration panel
|
||||
@@ -34,7 +34,7 @@ class wxPAPConfigPanel;
|
||||
///
|
||||
/// PAP credential entry panel
|
||||
///
|
||||
typedef wxPasswordCredentialsPanel<eap::credentials_pass, wxEAPCredentialsPassPanelBase> wxPAPCredentialsPanel;
|
||||
typedef wxPasswordCredentialsPanel<eap::credentials_pass, wxPasswordCredentialsPanelBase> wxPAPCredentialsPanel;
|
||||
|
||||
#pragma once
|
||||
|
||||
|
@@ -30,7 +30,7 @@ wxPAPConfigPanel::wxPAPConfigPanel(const eap::config_provider &prov, eap::config
|
||||
wxBoxSizer* sb_content;
|
||||
sb_content = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
m_credentials = new wxPAPCredentialsConfigPanel(prov, cfg, this);
|
||||
m_credentials = new wxPAPCredentialsConfigPanel(prov, cfg, this, _("PAP User ID and Password"));
|
||||
sb_content->Add(m_credentials, 0, wxEXPAND, 5);
|
||||
|
||||
this->SetSizer(sb_content);
|
||||
|
@@ -97,6 +97,11 @@
|
||||
<ClCompile Include="..\src\Credentials.cpp" />
|
||||
<ClCompile Include="..\src\TLS.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\Events\build\Events.vcxproj">
|
||||
<Project>{d63f24bd-92a0-4d6b-8b69-ed947e4d2b1b}</Project>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
|
@@ -194,9 +194,9 @@ namespace eap
|
||||
/// \param[in] pszTargetName The name in Windows Credential Manager to retrieve credentials from (optional, can be \c NULL)
|
||||
///
|
||||
/// \returns
|
||||
/// - \c source_cache Credentials were obtained from EapHost cache
|
||||
/// - \c source_preshared Credentials were set by method configuration
|
||||
/// - \c source_storage Credentials were loaded from Windows Credential Manager
|
||||
/// - \c source_cache Credentials were obtained from EapHost cache
|
||||
/// - \c source_config Credentials were set by method configuration
|
||||
/// - \c source_storage Credentials were loaded from Windows Credential Manager
|
||||
///
|
||||
virtual source_t combine(
|
||||
_In_ const credentials *cred_cached,
|
||||
|
@@ -46,6 +46,8 @@ namespace eap
|
||||
{
|
||||
class method_tls : public method
|
||||
{
|
||||
WINSTD_NONCOPYABLE(method_tls)
|
||||
|
||||
public:
|
||||
#pragma pack(push)
|
||||
#pragma pack(1)
|
||||
|
@@ -68,7 +68,7 @@ tstring eap::get_cert_title(PCCERT_CONTEXT cert)
|
||||
|
||||
eap::config_method_tls::config_method_tls(_In_ module &mod, _In_ unsigned int level) : config_method_with_cred(mod, level)
|
||||
{
|
||||
m_preshared.reset(new credentials_tls(mod));
|
||||
m_cred.reset(new credentials_tls(mod));
|
||||
}
|
||||
|
||||
|
||||
@@ -145,13 +145,13 @@ void eap::config_method_tls::save(_In_ IXMLDOMDocument *pDoc, _In_ IXMLDOMNode *
|
||||
|
||||
// <ServerSideCredential>
|
||||
com_obj<IXMLDOMElement> pXmlElServerSideCredential;
|
||||
if (FAILED(hr = eapxml::create_element(pDoc, pConfigRoot, bstr(L"eap-metadata:ServerSideCredential"), bstr(L"ServerSideCredential"), namespace_eapmetadata, &pXmlElServerSideCredential)))
|
||||
if (FAILED(hr = eapxml::create_element(pDoc, pConfigRoot, bstr(L"eap-metadata:ServerSideCredential"), bstr(L"ServerSideCredential"), namespace_eapmetadata, pXmlElServerSideCredential)))
|
||||
throw com_runtime_error(hr, __FUNCTION__ " Error creating <ServerSideCredential> element.");
|
||||
|
||||
for (list<cert_context>::const_iterator i = m_trusted_root_ca.begin(), i_end = m_trusted_root_ca.end(); i != i_end; ++i) {
|
||||
// <CA>
|
||||
com_obj<IXMLDOMElement> pXmlElCA;
|
||||
if (FAILED(hr = eapxml::create_element(pDoc, bstr(L"CA"), namespace_eapmetadata, &pXmlElCA)))
|
||||
if (FAILED(hr = eapxml::create_element(pDoc, bstr(L"CA"), namespace_eapmetadata, pXmlElCA)))
|
||||
throw com_runtime_error(hr, __FUNCTION__ " Error creating <CA> element.");
|
||||
|
||||
// <CA>/<format>
|
||||
@@ -188,19 +188,19 @@ void eap::config_method_tls::load(_In_ IXMLDOMNode *pConfigRoot)
|
||||
|
||||
// <ServerSideCredential>
|
||||
com_obj<IXMLDOMElement> pXmlElServerSideCredential;
|
||||
if (SUCCEEDED(eapxml::select_element(pConfigRoot, bstr(L"eap-metadata:ServerSideCredential"), &pXmlElServerSideCredential))) {
|
||||
if (SUCCEEDED(eapxml::select_element(pConfigRoot, bstr(L"eap-metadata:ServerSideCredential"), pXmlElServerSideCredential))) {
|
||||
std::wstring xpathServerSideCredential(xpath + L"/ServerSideCredential");
|
||||
|
||||
// <CA>
|
||||
com_obj<IXMLDOMNodeList> pXmlListCAs;
|
||||
long lCACount = 0;
|
||||
if (SUCCEEDED(eapxml::select_nodes(pXmlElServerSideCredential, bstr(L"eap-metadata:CA"), &pXmlListCAs)) && SUCCEEDED(pXmlListCAs->get_length(&lCACount))) {
|
||||
if (SUCCEEDED(eapxml::select_nodes(pXmlElServerSideCredential, bstr(L"eap-metadata:CA"), pXmlListCAs)) && SUCCEEDED(pXmlListCAs->get_length(&lCACount))) {
|
||||
for (long j = 0; j < lCACount; j++) {
|
||||
// Load CA certificate.
|
||||
com_obj<IXMLDOMNode> pXmlElCA;
|
||||
pXmlListCAs->get_item(j, &pXmlElCA);
|
||||
bstr bstrFormat;
|
||||
if (FAILED(eapxml::get_element_value(pXmlElCA, bstr(L"eap-metadata:format"), &bstrFormat))) {
|
||||
if (FAILED(eapxml::get_element_value(pXmlElCA, bstr(L"eap-metadata:format"), bstrFormat))) {
|
||||
// <format> not specified.
|
||||
continue;
|
||||
}
|
||||
@@ -229,7 +229,7 @@ void eap::config_method_tls::load(_In_ IXMLDOMNode *pConfigRoot)
|
||||
// <ServerName>
|
||||
com_obj<IXMLDOMNodeList> pXmlListServerIDs;
|
||||
long lServerIDCount = 0;
|
||||
if (SUCCEEDED(eapxml::select_nodes(pXmlElServerSideCredential, bstr(L"eap-metadata:ServerName"), &pXmlListServerIDs)) && SUCCEEDED(pXmlListServerIDs->get_length(&lServerIDCount))) {
|
||||
if (SUCCEEDED(eapxml::select_nodes(pXmlElServerSideCredential, bstr(L"eap-metadata:ServerName"), pXmlListServerIDs)) && SUCCEEDED(pXmlListServerIDs->get_length(&lServerIDCount))) {
|
||||
for (long j = 0; j < lServerIDCount; j++) {
|
||||
// Load server name (<ServerName>).
|
||||
com_obj<IXMLDOMNode> pXmlElServerID;
|
||||
|
@@ -99,7 +99,7 @@ void eap::credentials_tls::save(_In_ IXMLDOMDocument *pDoc, _In_ IXMLDOMNode *pC
|
||||
|
||||
// <ClientCertificate>
|
||||
com_obj<IXMLDOMElement> pXmlElClientCertificate;
|
||||
if (FAILED(hr = eapxml::create_element(pDoc, pConfigRoot, bstr(L"eap-metadata:ClientCertificate"), bstr(L"ClientCertificate"), namespace_eapmetadata, &pXmlElClientCertificate)))
|
||||
if (FAILED(hr = eapxml::create_element(pDoc, pConfigRoot, bstr(L"eap-metadata:ClientCertificate"), bstr(L"ClientCertificate"), namespace_eapmetadata, pXmlElClientCertificate)))
|
||||
throw com_runtime_error(hr, __FUNCTION__ " Error creating <ClientCertificate> element.");
|
||||
|
||||
if (m_cert) {
|
||||
@@ -127,12 +127,12 @@ void eap::credentials_tls::load(_In_ IXMLDOMNode *pConfigRoot)
|
||||
|
||||
// <ClientCertificate>
|
||||
com_obj<IXMLDOMElement> pXmlElClientCertificate;
|
||||
if (FAILED(hr = eapxml::select_element(pConfigRoot, bstr(L"eap-metadata:ClientCertificate"), &pXmlElClientCertificate)))
|
||||
if (FAILED(hr = eapxml::select_element(pConfigRoot, bstr(L"eap-metadata:ClientCertificate"), pXmlElClientCertificate)))
|
||||
throw com_runtime_error(hr, __FUNCTION__ " Error reading <ClientCertificate> element.");
|
||||
|
||||
// <ClientCertificate>/<format>
|
||||
bstr bstrFormat;
|
||||
if (SUCCEEDED(eapxml::get_element_value(pXmlElClientCertificate, bstr(L"eap-metadata:format"), &bstrFormat))) {
|
||||
if (SUCCEEDED(eapxml::get_element_value(pXmlElClientCertificate, bstr(L"eap-metadata:format"), bstrFormat))) {
|
||||
if (CompareStringEx(LOCALE_NAME_INVARIANT, NORM_IGNORECASE, bstrFormat, bstrFormat.length(), L"PEM", -1, NULL, NULL, 0) == CSTR_EQUAL) {
|
||||
// <ClientCertificate>/<cert-data>
|
||||
vector<unsigned char> aData;
|
||||
@@ -303,11 +303,11 @@ eap::credentials::source_t eap::credentials_tls::combine(
|
||||
return source_cache;
|
||||
}
|
||||
|
||||
if (cfg.m_use_preshared) {
|
||||
// Using preshared credentials.
|
||||
*this = *(credentials_tls*)cfg.m_preshared.get();
|
||||
m_module.log_event(&EAPMETHOD_TRACE_EVT_CRED_PRESHARED2, event_data((unsigned int)eap_type_tls), event_data(credentials_tls::get_name()), event_data(pszTargetName), event_data::blank);
|
||||
return source_preshared;
|
||||
if (cfg.m_use_cred) {
|
||||
// Using configured credentials.
|
||||
*this = *(credentials_tls*)cfg.m_cred.get();
|
||||
m_module.log_event(&EAPMETHOD_TRACE_EVT_CRED_CONFIG2, event_data((unsigned int)eap_type_tls), event_data(credentials_tls::get_name()), event_data(pszTargetName), event_data::blank);
|
||||
return source_config;
|
||||
}
|
||||
|
||||
if (pszTargetName) {
|
||||
|
@@ -223,7 +223,7 @@ void eap::method_tls::begin_session(
|
||||
}
|
||||
|
||||
// Prepare client credentials for Schannel.
|
||||
PCCERT_CONTEXT certs[] = { m_cred.m_cert ? m_cred.m_cert : NULL };
|
||||
PCCERT_CONTEXT certs[] = { m_cred.m_cert ? (PCCERT_CONTEXT)m_cred.m_cert : NULL };
|
||||
SCHANNEL_CRED cred = {
|
||||
SCHANNEL_CRED_VERSION, // dwVersion
|
||||
m_cred.m_cert ? 1 : 0, // cCreds
|
||||
|
@@ -258,7 +258,7 @@ public:
|
||||
/// \param[in] cfg Configuration data
|
||||
/// \param[inout] cred Credentials data
|
||||
/// \param[in] parent Parent window
|
||||
/// \param[in] is_config Is this panel used to pre-enter credentials? When \c true, the "Remember" checkbox is always selected and disabled.
|
||||
/// \param[in] is_config Is this panel used to config credentials?
|
||||
///
|
||||
wxTLSCredentialsPanel(const eap::config_provider &prov, const eap::config_method_with_cred &cfg, eap::credentials_tls &cred, wxWindow* parent, bool is_config = false);
|
||||
|
||||
@@ -271,7 +271,7 @@ protected:
|
||||
};
|
||||
|
||||
|
||||
class wxTLSServerTrustPanel : public wxEAPTLSServerTrustConfigPanelBase
|
||||
class wxTLSServerTrustPanel : public wxTLSServerTrustPanelBase
|
||||
{
|
||||
public:
|
||||
///
|
||||
@@ -330,8 +330,8 @@ protected:
|
||||
/// \endcond
|
||||
|
||||
protected:
|
||||
const eap::config_provider &m_prov; ///< EAP provider
|
||||
eap::config_method_tls &m_cfg; ///< TLS configuration
|
||||
wxTLSServerTrustPanel *m_server_trust; ///< Server trust configuration panel
|
||||
wxTLSCredentialsConfigPanel *m_credentials; ///< Credentials configuration panel
|
||||
const eap::config_provider &m_prov; ///< EAP provider
|
||||
eap::config_method_tls &m_cfg; ///< TLS configuration
|
||||
wxTLSServerTrustPanel *m_server_trust; ///< Server trust configuration panel
|
||||
wxTLSCredentialsConfigPanel *m_credentials; ///< Credentials configuration panel
|
||||
};
|
||||
|
@@ -11,7 +11,7 @@
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
wxEAPTLSServerTrustConfigPanelBase::wxEAPTLSServerTrustConfigPanelBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style )
|
||||
wxTLSServerTrustPanelBase::wxTLSServerTrustPanelBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style )
|
||||
{
|
||||
wxStaticBoxSizer* sb_server_trust;
|
||||
sb_server_trust = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Server Trust") ), wxVERTICAL );
|
||||
@@ -37,7 +37,7 @@ wxEAPTLSServerTrustConfigPanelBase::wxEAPTLSServerTrustConfigPanelBase( wxWindow
|
||||
sb_root_ca->Add( m_root_ca_lbl, 0, wxEXPAND|wxBOTTOM, 5 );
|
||||
|
||||
m_root_ca = new wxListBox( sb_server_trust->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_SORT );
|
||||
m_root_ca->SetToolTip( _("List of certificate authorities server's certificate must be issued by") );
|
||||
m_root_ca->SetToolTip( _("Server's certificate must be issued by one of certificate authorities listed here") );
|
||||
|
||||
sb_root_ca->Add( m_root_ca, 1, wxEXPAND|wxBOTTOM, 5 );
|
||||
|
||||
@@ -96,103 +96,70 @@ wxEAPTLSServerTrustConfigPanelBase::wxEAPTLSServerTrustConfigPanelBase( wxWindow
|
||||
this->Layout();
|
||||
|
||||
// Connect Events
|
||||
this->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( wxEAPTLSServerTrustConfigPanelBase::OnUpdateUI ) );
|
||||
m_root_ca->Connect( wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, wxCommandEventHandler( wxEAPTLSServerTrustConfigPanelBase::OnRootCADClick ), NULL, this );
|
||||
m_root_ca_add_store->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxEAPTLSServerTrustConfigPanelBase::OnRootCAAddStore ), NULL, this );
|
||||
m_root_ca_add_file->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxEAPTLSServerTrustConfigPanelBase::OnRootCAAddFile ), NULL, this );
|
||||
m_root_ca_remove->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxEAPTLSServerTrustConfigPanelBase::OnRootCARemove ), NULL, this );
|
||||
this->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( wxTLSServerTrustPanelBase::OnUpdateUI ) );
|
||||
m_root_ca->Connect( wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, wxCommandEventHandler( wxTLSServerTrustPanelBase::OnRootCADClick ), NULL, this );
|
||||
m_root_ca_add_store->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxTLSServerTrustPanelBase::OnRootCAAddStore ), NULL, this );
|
||||
m_root_ca_add_file->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxTLSServerTrustPanelBase::OnRootCAAddFile ), NULL, this );
|
||||
m_root_ca_remove->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxTLSServerTrustPanelBase::OnRootCARemove ), NULL, this );
|
||||
}
|
||||
|
||||
wxEAPTLSServerTrustConfigPanelBase::~wxEAPTLSServerTrustConfigPanelBase()
|
||||
wxTLSServerTrustPanelBase::~wxTLSServerTrustPanelBase()
|
||||
{
|
||||
// Disconnect Events
|
||||
this->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( wxEAPTLSServerTrustConfigPanelBase::OnUpdateUI ) );
|
||||
m_root_ca->Disconnect( wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, wxCommandEventHandler( wxEAPTLSServerTrustConfigPanelBase::OnRootCADClick ), NULL, this );
|
||||
m_root_ca_add_store->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxEAPTLSServerTrustConfigPanelBase::OnRootCAAddStore ), NULL, this );
|
||||
m_root_ca_add_file->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxEAPTLSServerTrustConfigPanelBase::OnRootCAAddFile ), NULL, this );
|
||||
m_root_ca_remove->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxEAPTLSServerTrustConfigPanelBase::OnRootCARemove ), NULL, this );
|
||||
this->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( wxTLSServerTrustPanelBase::OnUpdateUI ) );
|
||||
m_root_ca->Disconnect( wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, wxCommandEventHandler( wxTLSServerTrustPanelBase::OnRootCADClick ), NULL, this );
|
||||
m_root_ca_add_store->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxTLSServerTrustPanelBase::OnRootCAAddStore ), NULL, this );
|
||||
m_root_ca_add_file->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxTLSServerTrustPanelBase::OnRootCAAddFile ), NULL, this );
|
||||
m_root_ca_remove->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxTLSServerTrustPanelBase::OnRootCARemove ), NULL, this );
|
||||
|
||||
}
|
||||
|
||||
wxTLSCredentialsPanelBase::wxTLSCredentialsPanelBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style )
|
||||
wxTLSCredentialsPanelBase::wxTLSCredentialsPanelBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxEAPCredentialsPanelBase( parent, id, pos, size, style )
|
||||
{
|
||||
wxStaticBoxSizer* sb_credentials;
|
||||
sb_credentials = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("TLS Client Certificate") ), wxVERTICAL );
|
||||
m_sb_credentials = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("User Certificate") ), wxVERTICAL );
|
||||
|
||||
wxBoxSizer* sb_credentials_horiz;
|
||||
sb_credentials_horiz = new wxBoxSizer( wxHORIZONTAL );
|
||||
|
||||
m_credentials_icon = new wxStaticBitmap( sb_credentials->GetStaticBox(), wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_credentials_icon = new wxStaticBitmap( m_sb_credentials->GetStaticBox(), wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
sb_credentials_horiz->Add( m_credentials_icon, 0, wxALL, 5 );
|
||||
|
||||
wxBoxSizer* sb_credentials_vert;
|
||||
sb_credentials_vert = new wxBoxSizer( wxVERTICAL );
|
||||
m_sb_credentials_vert = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
m_credentials_label = new wxStaticText( sb_credentials->GetStaticBox(), wxID_ANY, _("Please select your client certificate to use for authentication."), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_credentials_label->Wrap( 440 );
|
||||
sb_credentials_vert->Add( m_credentials_label, 0, wxALL|wxEXPAND, 5 );
|
||||
m_certificate_label = new wxStaticText( m_sb_credentials->GetStaticBox(), wxID_ANY, _("Please select your &certificate to use for authentication."), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_certificate_label->Wrap( 440 );
|
||||
m_sb_credentials_vert->Add( m_certificate_label, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
wxBoxSizer* sb_cert_radio;
|
||||
sb_cert_radio = new wxBoxSizer( wxVERTICAL );
|
||||
wxArrayString m_certificateChoices;
|
||||
m_certificate = new wxChoice( m_sb_credentials->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_certificateChoices, wxCB_SORT );
|
||||
m_certificate->SetSelection( 0 );
|
||||
m_certificate->SetToolTip( _("Client certificate to use for authentication") );
|
||||
|
||||
m_cert_none = new wxRadioButton( sb_credentials->GetStaticBox(), wxID_ANY, _("Co&nnect without providing a client certificate"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
|
||||
m_cert_none->SetToolTip( _("Select if your server does not require you to provide a client certificate") );
|
||||
|
||||
sb_cert_radio->Add( m_cert_none, 1, wxEXPAND, 5 );
|
||||
|
||||
wxBoxSizer* sb_cert_select;
|
||||
sb_cert_select = new wxBoxSizer( wxHORIZONTAL );
|
||||
|
||||
m_cert_select = new wxRadioButton( sb_credentials->GetStaticBox(), wxID_ANY, _("Use the following &certificate:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_cert_select->SetToolTip( _("Select if you need to provide a client certificate when connecting") );
|
||||
|
||||
sb_cert_select->Add( m_cert_select, 0, wxEXPAND, 5 );
|
||||
|
||||
wxArrayString m_cert_select_valChoices;
|
||||
m_cert_select_val = new wxChoice( sb_credentials->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_cert_select_valChoices, wxCB_SORT );
|
||||
m_cert_select_val->SetSelection( 0 );
|
||||
m_cert_select_val->SetToolTip( _("Client certificate to use for authentication") );
|
||||
|
||||
sb_cert_select->Add( m_cert_select_val, 1, wxEXPAND, 5 );
|
||||
|
||||
|
||||
sb_cert_radio->Add( sb_cert_select, 1, wxEXPAND, 5 );
|
||||
|
||||
|
||||
sb_credentials_vert->Add( sb_cert_radio, 0, wxEXPAND|wxALL, 5 );
|
||||
m_sb_credentials_vert->Add( m_certificate, 0, wxEXPAND|wxALL, 5 );
|
||||
|
||||
wxBoxSizer* sb_identity;
|
||||
sb_identity = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
m_identity_label = new wxStaticText( sb_credentials->GetStaticBox(), wxID_ANY, _("Custom &identity:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_identity_label = new wxStaticText( m_sb_credentials->GetStaticBox(), wxID_ANY, _("Custom &identity:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_identity_label->Wrap( -1 );
|
||||
sb_identity->Add( m_identity_label, 0, wxBOTTOM, 5 );
|
||||
|
||||
m_identity = new wxTextCtrl( sb_credentials->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_identity = new wxTextCtrl( m_sb_credentials->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_identity->SetToolTip( _("Your identity (username@domain) to override one from certificate; or blank to use one provided in certificate") );
|
||||
|
||||
sb_identity->Add( m_identity, 0, wxEXPAND|wxBOTTOM, 5 );
|
||||
|
||||
m_identity_note = new wxStaticText( sb_credentials->GetStaticBox(), wxID_ANY, _("(Example: user@contoso.com)"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_identity_note->Wrap( -1 );
|
||||
sb_identity->Add( m_identity_note, 0, wxALIGN_RIGHT, 5 );
|
||||
sb_identity->Add( m_identity, 0, wxEXPAND, 5 );
|
||||
|
||||
|
||||
sb_credentials_vert->Add( sb_identity, 1, wxEXPAND|wxALL, 5 );
|
||||
|
||||
m_remember = new wxCheckBox( sb_credentials->GetStaticBox(), wxID_ANY, _("&Remember"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_remember->SetHelpText( _("Check if you would like to save certificate selection") );
|
||||
|
||||
sb_credentials_vert->Add( m_remember, 0, wxALL|wxEXPAND, 5 );
|
||||
m_sb_credentials_vert->Add( sb_identity, 0, wxEXPAND|wxALL, 5 );
|
||||
|
||||
|
||||
sb_credentials_horiz->Add( sb_credentials_vert, 1, wxEXPAND, 5 );
|
||||
sb_credentials_horiz->Add( m_sb_credentials_vert, 1, wxEXPAND, 5 );
|
||||
|
||||
|
||||
sb_credentials->Add( sb_credentials_horiz, 0, wxEXPAND, 5 );
|
||||
m_sb_credentials->Add( sb_credentials_horiz, 0, wxEXPAND, 5 );
|
||||
|
||||
|
||||
this->SetSizer( sb_credentials );
|
||||
this->SetSizer( m_sb_credentials );
|
||||
this->Layout();
|
||||
|
||||
// Connect Events
|
||||
|
@@ -40,7 +40,7 @@
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="name">wxEAPTLSServerTrustConfigPanelBase</property>
|
||||
<property name="name">wxTLSServerTrustPanelBase</property>
|
||||
<property name="pos"></property>
|
||||
<property name="size">500,-1</property>
|
||||
<property name="subclass"></property>
|
||||
@@ -413,7 +413,7 @@
|
||||
<property name="style">wxLB_SORT</property>
|
||||
<property name="subclass"></property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip">List of certificate authorities server's certificate must be issued by</property>
|
||||
<property name="tooltip">Server's certificate must be issued by one of certificate authorities listed here</property>
|
||||
<property name="validator_data_type"></property>
|
||||
<property name="validator_style">wxFILTER_NONE</property>
|
||||
<property name="validator_type">wxDefaultValidator</property>
|
||||
@@ -1016,7 +1016,7 @@
|
||||
<property name="name">wxTLSCredentialsPanelBase</property>
|
||||
<property name="pos"></property>
|
||||
<property name="size">500,-1</property>
|
||||
<property name="subclass"></property>
|
||||
<property name="subclass">wxEAPCredentialsPanelBase; ../../EAPBase_UI/include/wxEAP_UIBase.h</property>
|
||||
<property name="tooltip"></property>
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
@@ -1053,11 +1053,11 @@
|
||||
<event name="OnUpdateUI">OnUpdateUI</event>
|
||||
<object class="wxStaticBoxSizer" expanded="1">
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="label">TLS Client Certificate</property>
|
||||
<property name="label">User Certificate</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="name">sb_credentials</property>
|
||||
<property name="name">m_sb_credentials</property>
|
||||
<property name="orient">wxVERTICAL</property>
|
||||
<property name="permission">none</property>
|
||||
<property name="permission">protected</property>
|
||||
<event name="OnUpdateUI"></event>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
@@ -1155,12 +1155,12 @@
|
||||
<property name="proportion">1</property>
|
||||
<object class="wxBoxSizer" expanded="1">
|
||||
<property name="minimum_size"></property>
|
||||
<property name="name">sb_credentials_vert</property>
|
||||
<property name="name">m_sb_credentials_vert</property>
|
||||
<property name="orient">wxVERTICAL</property>
|
||||
<property name="permission">none</property>
|
||||
<property name="permission">protected</property>
|
||||
<object class="sizeritem" expanded="0">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxALL|wxEXPAND</property>
|
||||
<property name="flag">wxEXPAND|wxTOP|wxRIGHT|wxLEFT</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxStaticText" expanded="0">
|
||||
<property name="BottomDockable">1</property>
|
||||
@@ -1190,7 +1190,7 @@
|
||||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="label">Please select your client certificate to use for authentication.</property>
|
||||
<property name="label">Please select your &certificate to use for authentication.</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
@@ -1198,7 +1198,7 @@
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">m_credentials_label</property>
|
||||
<property name="name">m_certificate_label</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
@@ -1245,292 +1245,94 @@
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxEXPAND|wxALL</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxBoxSizer" expanded="1">
|
||||
<object class="wxChoice" expanded="1">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer"></property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position"></property>
|
||||
<property name="aui_row"></property>
|
||||
<property name="best_size"></property>
|
||||
<property name="bg"></property>
|
||||
<property name="caption"></property>
|
||||
<property name="caption_visible">1</property>
|
||||
<property name="center_pane">0</property>
|
||||
<property name="choices"></property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="enabled">1</property>
|
||||
<property name="fg"></property>
|
||||
<property name="floatable">1</property>
|
||||
<property name="font"></property>
|
||||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="name">sb_cert_radio</property>
|
||||
<property name="orient">wxVERTICAL</property>
|
||||
<property name="permission">none</property>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxEXPAND</property>
|
||||
<property name="proportion">1</property>
|
||||
<object class="wxRadioButton" expanded="1">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer"></property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position"></property>
|
||||
<property name="aui_row"></property>
|
||||
<property name="best_size"></property>
|
||||
<property name="bg"></property>
|
||||
<property name="caption"></property>
|
||||
<property name="caption_visible">1</property>
|
||||
<property name="center_pane">0</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="enabled">1</property>
|
||||
<property name="fg"></property>
|
||||
<property name="floatable">1</property>
|
||||
<property name="font"></property>
|
||||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="label">Co&nnect without providing a client certificate</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">m_cert_none</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
<property name="permission">protected</property>
|
||||
<property name="pin_button">1</property>
|
||||
<property name="pos"></property>
|
||||
<property name="resize">Resizable</property>
|
||||
<property name="show">1</property>
|
||||
<property name="size"></property>
|
||||
<property name="style">wxRB_GROUP</property>
|
||||
<property name="subclass"></property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip">Select if your server does not require you to provide a client certificate</property>
|
||||
<property name="validator_data_type"></property>
|
||||
<property name="validator_style">wxFILTER_NONE</property>
|
||||
<property name="validator_type">wxDefaultValidator</property>
|
||||
<property name="validator_variable"></property>
|
||||
<property name="value">0</property>
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
<event name="OnChar"></event>
|
||||
<event name="OnEnterWindow"></event>
|
||||
<event name="OnEraseBackground"></event>
|
||||
<event name="OnKeyDown"></event>
|
||||
<event name="OnKeyUp"></event>
|
||||
<event name="OnKillFocus"></event>
|
||||
<event name="OnLeaveWindow"></event>
|
||||
<event name="OnLeftDClick"></event>
|
||||
<event name="OnLeftDown"></event>
|
||||
<event name="OnLeftUp"></event>
|
||||
<event name="OnMiddleDClick"></event>
|
||||
<event name="OnMiddleDown"></event>
|
||||
<event name="OnMiddleUp"></event>
|
||||
<event name="OnMotion"></event>
|
||||
<event name="OnMouseEvents"></event>
|
||||
<event name="OnMouseWheel"></event>
|
||||
<event name="OnPaint"></event>
|
||||
<event name="OnRadioButton"></event>
|
||||
<event name="OnRightDClick"></event>
|
||||
<event name="OnRightDown"></event>
|
||||
<event name="OnRightUp"></event>
|
||||
<event name="OnSetFocus"></event>
|
||||
<event name="OnSize"></event>
|
||||
<event name="OnUpdateUI"></event>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxEXPAND</property>
|
||||
<property name="proportion">1</property>
|
||||
<object class="wxBoxSizer" expanded="1">
|
||||
<property name="minimum_size"></property>
|
||||
<property name="name">sb_cert_select</property>
|
||||
<property name="orient">wxHORIZONTAL</property>
|
||||
<property name="permission">none</property>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxEXPAND</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxRadioButton" expanded="1">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer"></property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position"></property>
|
||||
<property name="aui_row"></property>
|
||||
<property name="best_size"></property>
|
||||
<property name="bg"></property>
|
||||
<property name="caption"></property>
|
||||
<property name="caption_visible">1</property>
|
||||
<property name="center_pane">0</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="enabled">1</property>
|
||||
<property name="fg"></property>
|
||||
<property name="floatable">1</property>
|
||||
<property name="font"></property>
|
||||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="label">Use the following &certificate:</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">m_cert_select</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
<property name="permission">protected</property>
|
||||
<property name="pin_button">1</property>
|
||||
<property name="pos"></property>
|
||||
<property name="resize">Resizable</property>
|
||||
<property name="show">1</property>
|
||||
<property name="size"></property>
|
||||
<property name="style"></property>
|
||||
<property name="subclass"></property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip">Select if you need to provide a client certificate when connecting</property>
|
||||
<property name="validator_data_type"></property>
|
||||
<property name="validator_style">wxFILTER_NONE</property>
|
||||
<property name="validator_type">wxDefaultValidator</property>
|
||||
<property name="validator_variable"></property>
|
||||
<property name="value">0</property>
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
<event name="OnChar"></event>
|
||||
<event name="OnEnterWindow"></event>
|
||||
<event name="OnEraseBackground"></event>
|
||||
<event name="OnKeyDown"></event>
|
||||
<event name="OnKeyUp"></event>
|
||||
<event name="OnKillFocus"></event>
|
||||
<event name="OnLeaveWindow"></event>
|
||||
<event name="OnLeftDClick"></event>
|
||||
<event name="OnLeftDown"></event>
|
||||
<event name="OnLeftUp"></event>
|
||||
<event name="OnMiddleDClick"></event>
|
||||
<event name="OnMiddleDown"></event>
|
||||
<event name="OnMiddleUp"></event>
|
||||
<event name="OnMotion"></event>
|
||||
<event name="OnMouseEvents"></event>
|
||||
<event name="OnMouseWheel"></event>
|
||||
<event name="OnPaint"></event>
|
||||
<event name="OnRadioButton"></event>
|
||||
<event name="OnRightDClick"></event>
|
||||
<event name="OnRightDown"></event>
|
||||
<event name="OnRightUp"></event>
|
||||
<event name="OnSetFocus"></event>
|
||||
<event name="OnSize"></event>
|
||||
<event name="OnUpdateUI"></event>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxEXPAND</property>
|
||||
<property name="proportion">1</property>
|
||||
<object class="wxChoice" expanded="1">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer"></property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position"></property>
|
||||
<property name="aui_row"></property>
|
||||
<property name="best_size"></property>
|
||||
<property name="bg"></property>
|
||||
<property name="caption"></property>
|
||||
<property name="caption_visible">1</property>
|
||||
<property name="center_pane">0</property>
|
||||
<property name="choices"></property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="enabled">1</property>
|
||||
<property name="fg"></property>
|
||||
<property name="floatable">1</property>
|
||||
<property name="font"></property>
|
||||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">m_cert_select_val</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
<property name="permission">protected</property>
|
||||
<property name="pin_button">1</property>
|
||||
<property name="pos"></property>
|
||||
<property name="resize">Resizable</property>
|
||||
<property name="selection">0</property>
|
||||
<property name="show">1</property>
|
||||
<property name="size"></property>
|
||||
<property name="style">wxCB_SORT</property>
|
||||
<property name="subclass">; </property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip">Client certificate to use for authentication</property>
|
||||
<property name="validator_data_type"></property>
|
||||
<property name="validator_style">wxFILTER_NONE</property>
|
||||
<property name="validator_type">wxDefaultValidator</property>
|
||||
<property name="validator_variable"></property>
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
<event name="OnChar"></event>
|
||||
<event name="OnChoice"></event>
|
||||
<event name="OnEnterWindow"></event>
|
||||
<event name="OnEraseBackground"></event>
|
||||
<event name="OnKeyDown"></event>
|
||||
<event name="OnKeyUp"></event>
|
||||
<event name="OnKillFocus"></event>
|
||||
<event name="OnLeaveWindow"></event>
|
||||
<event name="OnLeftDClick"></event>
|
||||
<event name="OnLeftDown"></event>
|
||||
<event name="OnLeftUp"></event>
|
||||
<event name="OnMiddleDClick"></event>
|
||||
<event name="OnMiddleDown"></event>
|
||||
<event name="OnMiddleUp"></event>
|
||||
<event name="OnMotion"></event>
|
||||
<event name="OnMouseEvents"></event>
|
||||
<event name="OnMouseWheel"></event>
|
||||
<event name="OnPaint"></event>
|
||||
<event name="OnRightDClick"></event>
|
||||
<event name="OnRightDown"></event>
|
||||
<event name="OnRightUp"></event>
|
||||
<event name="OnSetFocus"></event>
|
||||
<event name="OnSize"></event>
|
||||
<event name="OnUpdateUI"></event>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">m_certificate</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
<property name="permission">protected</property>
|
||||
<property name="pin_button">1</property>
|
||||
<property name="pos"></property>
|
||||
<property name="resize">Resizable</property>
|
||||
<property name="selection">0</property>
|
||||
<property name="show">1</property>
|
||||
<property name="size"></property>
|
||||
<property name="style">wxCB_SORT</property>
|
||||
<property name="subclass"></property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip">Client certificate to use for authentication</property>
|
||||
<property name="validator_data_type"></property>
|
||||
<property name="validator_style">wxFILTER_NONE</property>
|
||||
<property name="validator_type">wxDefaultValidator</property>
|
||||
<property name="validator_variable"></property>
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
<event name="OnChar"></event>
|
||||
<event name="OnChoice"></event>
|
||||
<event name="OnEnterWindow"></event>
|
||||
<event name="OnEraseBackground"></event>
|
||||
<event name="OnKeyDown"></event>
|
||||
<event name="OnKeyUp"></event>
|
||||
<event name="OnKillFocus"></event>
|
||||
<event name="OnLeaveWindow"></event>
|
||||
<event name="OnLeftDClick"></event>
|
||||
<event name="OnLeftDown"></event>
|
||||
<event name="OnLeftUp"></event>
|
||||
<event name="OnMiddleDClick"></event>
|
||||
<event name="OnMiddleDown"></event>
|
||||
<event name="OnMiddleUp"></event>
|
||||
<event name="OnMotion"></event>
|
||||
<event name="OnMouseEvents"></event>
|
||||
<event name="OnMouseWheel"></event>
|
||||
<event name="OnPaint"></event>
|
||||
<event name="OnRightDClick"></event>
|
||||
<event name="OnRightDown"></event>
|
||||
<event name="OnRightUp"></event>
|
||||
<event name="OnSetFocus"></event>
|
||||
<event name="OnSize"></event>
|
||||
<event name="OnUpdateUI"></event>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxEXPAND|wxALL</property>
|
||||
<property name="proportion">1</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxBoxSizer" expanded="1">
|
||||
<property name="minimum_size"></property>
|
||||
<property name="name">sb_identity</property>
|
||||
@@ -1621,7 +1423,7 @@
|
||||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxEXPAND|wxBOTTOM</property>
|
||||
<property name="flag">wxEXPAND</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxTextCtrl" expanded="1">
|
||||
<property name="BottomDockable">1</property>
|
||||
@@ -1710,177 +1512,6 @@
|
||||
<event name="OnUpdateUI"></event>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxALIGN_RIGHT</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxStaticText" expanded="1">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer"></property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position"></property>
|
||||
<property name="aui_row"></property>
|
||||
<property name="best_size"></property>
|
||||
<property name="bg"></property>
|
||||
<property name="caption"></property>
|
||||
<property name="caption_visible">1</property>
|
||||
<property name="center_pane">0</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="enabled">1</property>
|
||||
<property name="fg"></property>
|
||||
<property name="floatable">1</property>
|
||||
<property name="font"></property>
|
||||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="label">(Example: user@contoso.com)</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">m_identity_note</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
<property name="permission">protected</property>
|
||||
<property name="pin_button">1</property>
|
||||
<property name="pos"></property>
|
||||
<property name="resize">Resizable</property>
|
||||
<property name="show">1</property>
|
||||
<property name="size"></property>
|
||||
<property name="style"></property>
|
||||
<property name="subclass"></property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip"></property>
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
<property name="wrap">-1</property>
|
||||
<event name="OnChar"></event>
|
||||
<event name="OnEnterWindow"></event>
|
||||
<event name="OnEraseBackground"></event>
|
||||
<event name="OnKeyDown"></event>
|
||||
<event name="OnKeyUp"></event>
|
||||
<event name="OnKillFocus"></event>
|
||||
<event name="OnLeaveWindow"></event>
|
||||
<event name="OnLeftDClick"></event>
|
||||
<event name="OnLeftDown"></event>
|
||||
<event name="OnLeftUp"></event>
|
||||
<event name="OnMiddleDClick"></event>
|
||||
<event name="OnMiddleDown"></event>
|
||||
<event name="OnMiddleUp"></event>
|
||||
<event name="OnMotion"></event>
|
||||
<event name="OnMouseEvents"></event>
|
||||
<event name="OnMouseWheel"></event>
|
||||
<event name="OnPaint"></event>
|
||||
<event name="OnRightDClick"></event>
|
||||
<event name="OnRightDown"></event>
|
||||
<event name="OnRightUp"></event>
|
||||
<event name="OnSetFocus"></event>
|
||||
<event name="OnSize"></event>
|
||||
<event name="OnUpdateUI"></event>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxALL|wxEXPAND</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxCheckBox" expanded="1">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer"></property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position"></property>
|
||||
<property name="aui_row"></property>
|
||||
<property name="best_size"></property>
|
||||
<property name="bg"></property>
|
||||
<property name="caption"></property>
|
||||
<property name="caption_visible">1</property>
|
||||
<property name="center_pane">0</property>
|
||||
<property name="checked">0</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help">Check if you would like to save certificate selection</property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="enabled">1</property>
|
||||
<property name="fg"></property>
|
||||
<property name="floatable">1</property>
|
||||
<property name="font"></property>
|
||||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="label">&Remember</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">m_remember</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
<property name="permission">protected</property>
|
||||
<property name="pin_button">1</property>
|
||||
<property name="pos"></property>
|
||||
<property name="resize">Resizable</property>
|
||||
<property name="show">1</property>
|
||||
<property name="size"></property>
|
||||
<property name="style"></property>
|
||||
<property name="subclass"></property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip"></property>
|
||||
<property name="validator_data_type"></property>
|
||||
<property name="validator_style">wxFILTER_NONE</property>
|
||||
<property name="validator_type">wxDefaultValidator</property>
|
||||
<property name="validator_variable"></property>
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
<event name="OnChar"></event>
|
||||
<event name="OnCheckBox"></event>
|
||||
<event name="OnEnterWindow"></event>
|
||||
<event name="OnEraseBackground"></event>
|
||||
<event name="OnKeyDown"></event>
|
||||
<event name="OnKeyUp"></event>
|
||||
<event name="OnKillFocus"></event>
|
||||
<event name="OnLeaveWindow"></event>
|
||||
<event name="OnLeftDClick"></event>
|
||||
<event name="OnLeftDown"></event>
|
||||
<event name="OnLeftUp"></event>
|
||||
<event name="OnMiddleDClick"></event>
|
||||
<event name="OnMiddleDown"></event>
|
||||
<event name="OnMiddleUp"></event>
|
||||
<event name="OnMotion"></event>
|
||||
<event name="OnMouseEvents"></event>
|
||||
<event name="OnMouseWheel"></event>
|
||||
<event name="OnPaint"></event>
|
||||
<event name="OnRightDClick"></event>
|
||||
<event name="OnRightDown"></event>
|
||||
<event name="OnRightUp"></event>
|
||||
<event name="OnSetFocus"></event>
|
||||
<event name="OnSize"></event>
|
||||
<event name="OnUpdateUI"></event>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
|
@@ -11,6 +11,9 @@
|
||||
#include <wx/artprov.h>
|
||||
#include <wx/xrc/xmlres.h>
|
||||
#include <wx/intl.h>
|
||||
class wxEAPCredentialsPanelBase;
|
||||
|
||||
#include "../../EAPBase_UI/include/wxEAP_UIBase.h"
|
||||
#include <wx/bitmap.h>
|
||||
#include <wx/image.h>
|
||||
#include <wx/icon.h>
|
||||
@@ -27,16 +30,14 @@
|
||||
#include <wx/textctrl.h>
|
||||
#include <wx/statbox.h>
|
||||
#include <wx/panel.h>
|
||||
#include <wx/radiobut.h>
|
||||
#include <wx/choice.h>
|
||||
#include <wx/checkbox.h>
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
/// Class wxEAPTLSServerTrustConfigPanelBase
|
||||
/// Class wxTLSServerTrustPanelBase
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
class wxEAPTLSServerTrustConfigPanelBase : public wxPanel
|
||||
class wxTLSServerTrustPanelBase : public wxPanel
|
||||
{
|
||||
private:
|
||||
|
||||
@@ -62,28 +63,26 @@ class wxEAPTLSServerTrustConfigPanelBase : public wxPanel
|
||||
|
||||
public:
|
||||
|
||||
wxEAPTLSServerTrustConfigPanelBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 500,-1 ), long style = wxTAB_TRAVERSAL );
|
||||
~wxEAPTLSServerTrustConfigPanelBase();
|
||||
wxTLSServerTrustPanelBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 500,-1 ), long style = wxTAB_TRAVERSAL );
|
||||
~wxTLSServerTrustPanelBase();
|
||||
|
||||
};
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
/// Class wxTLSCredentialsPanelBase
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
class wxTLSCredentialsPanelBase : public wxPanel
|
||||
class wxTLSCredentialsPanelBase : public wxEAPCredentialsPanelBase
|
||||
{
|
||||
private:
|
||||
|
||||
protected:
|
||||
wxStaticBoxSizer* m_sb_credentials;
|
||||
wxStaticBitmap* m_credentials_icon;
|
||||
wxStaticText* m_credentials_label;
|
||||
wxRadioButton* m_cert_none;
|
||||
wxRadioButton* m_cert_select;
|
||||
wxChoice* m_cert_select_val;
|
||||
wxBoxSizer* m_sb_credentials_vert;
|
||||
wxStaticText* m_certificate_label;
|
||||
wxChoice* m_certificate;
|
||||
wxStaticText* m_identity_label;
|
||||
wxTextCtrl* m_identity;
|
||||
wxStaticText* m_identity_note;
|
||||
wxCheckBox* m_remember;
|
||||
|
||||
// Virtual event handlers, overide them in your derived class
|
||||
virtual void OnUpdateUI( wxUpdateUIEvent& event ) { event.Skip(); }
|
||||
|
@@ -108,7 +108,7 @@ bool wxHostNameValidator::Parse(const wxString &val_in, size_t i_start, size_t i
|
||||
// End of host name found.
|
||||
if (val_out) val_out->assign(val_in.c_str() + i_start, i - i_start);
|
||||
return true;
|
||||
} else if (buf[i] == _T('-') || buf[i] == _T('_') || _istalnum(buf[i])) {
|
||||
} else if (buf[i] == _T('-') || buf[i] == _T('_') || buf[i] == _T('*') || _istalnum(buf[i])) {
|
||||
// Valid character found.
|
||||
i++;
|
||||
} else {
|
||||
@@ -316,14 +316,15 @@ wxTLSCredentialsPanel::wxTLSCredentialsPanel(const eap::config_provider &prov, c
|
||||
{
|
||||
// Load and set icon.
|
||||
winstd::library lib_shell32;
|
||||
if (lib_shell32.load(_T("shell32.dll"), NULL, LOAD_LIBRARY_AS_DATAFILE | LOAD_LIBRARY_AS_IMAGE_RESOURCE))
|
||||
m_credentials_icon->SetIcon(wxLoadIconFromResource(lib_shell32, MAKEINTRESOURCE(269)));
|
||||
if (lib_shell32.load(_T("certmgr.dll"), NULL, LOAD_LIBRARY_AS_DATAFILE | LOAD_LIBRARY_AS_IMAGE_RESOURCE))
|
||||
m_credentials_icon->SetIcon(wxLoadIconFromResource(lib_shell32, MAKEINTRESOURCE(6170)));
|
||||
}
|
||||
|
||||
|
||||
bool wxTLSCredentialsPanel::TransferDataToWindow()
|
||||
{
|
||||
// Populate certificate list.
|
||||
m_certificate->Append(_("<empty>"), (wxCertificateClientData*)NULL);
|
||||
bool is_found = false;
|
||||
winstd::cert_store store;
|
||||
if (store.create(CERT_STORE_PROV_SYSTEM, X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, (HCRYPTPROV)NULL, CERT_SYSTEM_STORE_CURRENT_USER, _T("My"))) {
|
||||
@@ -343,21 +344,16 @@ bool wxTLSCredentialsPanel::TransferDataToWindow()
|
||||
m_cred.m_cert->cbCertEncoded == data->m_cert->cbCertEncoded &&
|
||||
memcmp(m_cred.m_cert->pbCertEncoded, data->m_cert->pbCertEncoded, m_cred.m_cert->cbCertEncoded) == 0;
|
||||
winstd::tstring name(std::move(eap::get_cert_title(cert)));
|
||||
int i = m_cert_select_val->Append(name, data.release());
|
||||
int i = m_certificate->Append(name, data.release());
|
||||
if (is_selected) {
|
||||
m_cert_select_val->SetSelection(i);
|
||||
m_certificate->SetSelection(i);
|
||||
is_found = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (is_found) {
|
||||
m_cert_select->SetValue(true);
|
||||
} else {
|
||||
m_cert_none->SetValue(true);
|
||||
if (!m_cert_select_val->IsEmpty())
|
||||
m_cert_select_val->SetSelection(0);
|
||||
}
|
||||
if (!is_found)
|
||||
m_certificate->SetSelection(0);
|
||||
|
||||
m_identity->SetValue(m_cred.m_identity);
|
||||
|
||||
@@ -367,15 +363,16 @@ bool wxTLSCredentialsPanel::TransferDataToWindow()
|
||||
|
||||
bool wxTLSCredentialsPanel::TransferDataFromWindow()
|
||||
{
|
||||
if (m_cert_none->GetValue())
|
||||
// Check if m_certificate control has selected item, and has client object data (at least one user certificate on the list). Then try to get the data from selected item.
|
||||
int sel = m_certificate->GetSelection();
|
||||
const wxCertificateClientData *data =
|
||||
sel != wxNOT_FOUND && m_certificate->HasClientObjectData() ?
|
||||
dynamic_cast<const wxCertificateClientData*>(m_certificate->GetClientObject(sel)) :
|
||||
NULL;
|
||||
if (data)
|
||||
m_cred.m_cert.attach_duplicated(data->m_cert);
|
||||
else
|
||||
m_cred.m_cert.free();
|
||||
else {
|
||||
const wxCertificateClientData *data = dynamic_cast<const wxCertificateClientData*>(m_cert_select_val->GetClientObject(m_cert_select_val->GetSelection()));
|
||||
if (data)
|
||||
m_cred.m_cert.attach_duplicated(data->m_cert);
|
||||
else
|
||||
m_cred.m_cert.free();
|
||||
}
|
||||
|
||||
m_cred.m_identity = m_identity->GetValue();
|
||||
|
||||
@@ -387,22 +384,14 @@ bool wxTLSCredentialsPanel::TransferDataFromWindow()
|
||||
|
||||
void wxTLSCredentialsPanel::OnUpdateUI(wxUpdateUIEvent& /*event*/)
|
||||
{
|
||||
if (!m_is_config && m_cfg.m_use_preshared) {
|
||||
// Credential prompt mode & Using pre-shared credentials
|
||||
// To avoid run-away selection of radio buttons, disable the selected one last.
|
||||
if (m_cert_none->GetValue()) {
|
||||
m_cert_select->Enable(false);
|
||||
m_cert_none ->Enable(false);
|
||||
} else {
|
||||
m_cert_none ->Enable(false);
|
||||
m_cert_select->Enable(false);
|
||||
}
|
||||
m_cert_select_val->Enable(false);
|
||||
m_identity->Enable(false);
|
||||
if (!m_is_config && m_cfg.m_use_cred) {
|
||||
// Credential prompt mode & Using configured credentials
|
||||
m_certificate->Enable(false);
|
||||
m_identity ->Enable(false);
|
||||
} else {
|
||||
// Configuration mode or using own credentials. Selectively enable/disable controls.
|
||||
m_cert_select_val->Enable(m_cert_select->GetValue());
|
||||
m_identity->Enable(true);
|
||||
// Configuration mode or using stored credentials. Enable controls.
|
||||
m_certificate->Enable(true);
|
||||
m_identity ->Enable(true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -414,12 +403,12 @@ void wxTLSCredentialsPanel::OnUpdateUI(wxUpdateUIEvent& /*event*/)
|
||||
wxTLSServerTrustPanel::wxTLSServerTrustPanel(const eap::config_provider &prov, eap::config_method_tls &cfg, wxWindow* parent) :
|
||||
m_prov(prov),
|
||||
m_cfg(cfg),
|
||||
wxEAPTLSServerTrustConfigPanelBase(parent)
|
||||
wxTLSServerTrustPanelBase(parent)
|
||||
{
|
||||
// Load and set icon.
|
||||
winstd::library lib_certmgr;
|
||||
if (lib_certmgr.load(_T("certmgr.dll"), NULL, LOAD_LIBRARY_AS_DATAFILE | LOAD_LIBRARY_AS_IMAGE_RESOURCE))
|
||||
m_server_trust_icon->SetIcon(wxLoadIconFromResource(lib_certmgr, MAKEINTRESOURCE(218)));
|
||||
m_server_trust_icon->SetIcon(wxLoadIconFromResource(lib_certmgr, MAKEINTRESOURCE(379)));
|
||||
|
||||
// Do not use cfg.m_server_names directly, so we can decide not to store the value in case of provider-locked configuration.
|
||||
// Never rely on control disabled state alone, as they can be enabled using external tool like Spy++.
|
||||
@@ -436,13 +425,13 @@ bool wxTLSServerTrustPanel::TransferDataToWindow()
|
||||
// Set server acceptable names. The edit control will get populated by validator.
|
||||
m_server_names_val = m_cfg.m_server_names;
|
||||
|
||||
return wxEAPTLSServerTrustConfigPanelBase::TransferDataToWindow();
|
||||
return wxTLSServerTrustPanelBase::TransferDataToWindow();
|
||||
}
|
||||
|
||||
|
||||
bool wxTLSServerTrustPanel::TransferDataFromWindow()
|
||||
{
|
||||
wxCHECK(wxEAPTLSServerTrustConfigPanelBase::TransferDataFromWindow(), false);
|
||||
wxCHECK(wxTLSServerTrustPanelBase::TransferDataFromWindow(), false);
|
||||
|
||||
if (!m_prov.m_read_only) {
|
||||
// This is not a provider-locked configuration. Save the data.
|
||||
@@ -579,7 +568,7 @@ wxTLSConfigPanel::wxTLSConfigPanel(const eap::config_provider &prov, eap::config
|
||||
m_server_trust = new wxTLSServerTrustPanel(prov, cfg, this);
|
||||
sb_content->Add(m_server_trust, 0, wxDOWN|wxEXPAND, 5);
|
||||
|
||||
m_credentials = new wxTLSCredentialsConfigPanel(prov, cfg, this);
|
||||
m_credentials = new wxTLSCredentialsConfigPanel(prov, cfg, this, _("User Certificate"));
|
||||
sb_content->Add(m_credentials, 0, wxUP|wxEXPAND, 5);
|
||||
|
||||
this->SetSizer(sb_content);
|
||||
|
@@ -180,9 +180,9 @@ namespace eap
|
||||
/// \param[in] pszTargetName The name in Windows Credential Manager to retrieve credentials from (optional, can be \c NULL)
|
||||
///
|
||||
/// \returns
|
||||
/// - \c source_cache Credentials were obtained from EapHost cache
|
||||
/// - \c source_preshared Credentials were set by method configuration
|
||||
/// - \c source_storage Credentials were loaded from Windows Credential Manager
|
||||
/// - \c source_cache Credentials were obtained from EapHost cache
|
||||
/// - \c source_config Credentials were set by method configuration
|
||||
/// - \c source_storage Credentials were loaded from Windows Credential Manager
|
||||
///
|
||||
virtual source_t combine(
|
||||
_In_ const credentials *cred_cached,
|
||||
|
@@ -40,6 +40,8 @@ namespace eap
|
||||
{
|
||||
class method_ttls : public method_tls
|
||||
{
|
||||
WINSTD_NONCOPYABLE(method_ttls)
|
||||
|
||||
public:
|
||||
///
|
||||
/// Constructs an EAP method
|
||||
|
@@ -37,6 +37,8 @@ namespace eap
|
||||
{
|
||||
class peer_ttls : public peer
|
||||
{
|
||||
WINSTD_NONCOPYABLE(peer_ttls)
|
||||
|
||||
public:
|
||||
///
|
||||
/// Constructs a EAP TTLS peer module
|
||||
|
@@ -32,8 +32,8 @@ eap::config_method_ttls::config_method_ttls(_In_ module &mod, _In_ unsigned int
|
||||
m_inner(new config_method_pap(mod, level + 1)),
|
||||
config_method_tls(mod, level)
|
||||
{
|
||||
// TTLS is using blank pre-shared credentials per default.
|
||||
m_use_preshared = true;
|
||||
// TTLS is using blank configured credentials per default.
|
||||
m_use_cred = true;
|
||||
}
|
||||
|
||||
|
||||
@@ -94,7 +94,7 @@ void eap::config_method_ttls::save(_In_ IXMLDOMDocument *pDoc, _In_ IXMLDOMNode
|
||||
|
||||
// <ClientSideCredential>
|
||||
com_obj<IXMLDOMElement> pXmlElClientSideCredential;
|
||||
if (FAILED(hr = eapxml::create_element(pDoc, pConfigRoot, bstr(L"eap-metadata:ClientSideCredential"), bstr(L"ClientSideCredential"), namespace_eapmetadata, &pXmlElClientSideCredential)))
|
||||
if (FAILED(hr = eapxml::create_element(pDoc, pConfigRoot, bstr(L"eap-metadata:ClientSideCredential"), bstr(L"ClientSideCredential"), namespace_eapmetadata, pXmlElClientSideCredential)))
|
||||
throw com_runtime_error(hr, __FUNCTION__ " Error creating <ClientSideCredential> element.");
|
||||
|
||||
// <ClientSideCredential>/<AnonymousIdentity>
|
||||
@@ -104,7 +104,7 @@ void eap::config_method_ttls::save(_In_ IXMLDOMDocument *pDoc, _In_ IXMLDOMNode
|
||||
|
||||
// <InnerAuthenticationMethod>
|
||||
com_obj<IXMLDOMElement> pXmlElInnerAuthenticationMethod;
|
||||
if (FAILED(hr = eapxml::create_element(pDoc, pConfigRoot, bstr(L"eap-metadata:InnerAuthenticationMethod"), bstr(L"InnerAuthenticationMethod"), namespace_eapmetadata, &pXmlElInnerAuthenticationMethod)))
|
||||
if (FAILED(hr = eapxml::create_element(pDoc, pConfigRoot, bstr(L"eap-metadata:InnerAuthenticationMethod"), bstr(L"InnerAuthenticationMethod"), namespace_eapmetadata, pXmlElInnerAuthenticationMethod)))
|
||||
throw com_runtime_error(hr, __FUNCTION__ " Error creating <InnerAuthenticationMethod> element.");
|
||||
|
||||
eap_type_t eap_type = m_inner->get_method_id();
|
||||
@@ -123,20 +123,20 @@ void eap::config_method_ttls::save(_In_ IXMLDOMDocument *pDoc, _In_ IXMLDOMNode
|
||||
|
||||
{
|
||||
com_obj<IXMLDOMNode> pXmlElClientSideCredential;
|
||||
if (SUCCEEDED(hr = eapxml::select_node(pConfigRoot, bstr(L"eap-metadata:ClientSideCredential"), &pXmlElClientSideCredential))) {
|
||||
// Fix 1: Pre-shared outer credentials in draft-winter-opsawg-eap-metadata has some bizarre presence/absence/blank logic for EAP-TTLS methods only.
|
||||
if (SUCCEEDED(hr = eapxml::select_node(pConfigRoot, bstr(L"eap-metadata:ClientSideCredential"), pXmlElClientSideCredential))) {
|
||||
// Fix 1: Configured outer credentials in draft-winter-opsawg-eap-metadata has some bizarre presence/absence/blank logic for EAP-TTLS methods only.
|
||||
// To keep our code clean, we do some post-processing, to make draft compliant XML on output, while keeping things simple on the inside.
|
||||
if (m_use_preshared && m_preshared->empty()) {
|
||||
// For empty pre-shared client certificate <ClientCertificate/> must not be present.
|
||||
if (m_use_cred && m_cred->empty()) {
|
||||
// For empty configured client certificate <ClientCertificate/> must not be present.
|
||||
com_obj<IXMLDOMNode> pXmlElClientCertificate;
|
||||
if (SUCCEEDED(hr = eapxml::select_node(pXmlElClientSideCredential, bstr(L"eap-metadata:ClientCertificate"), &pXmlElClientCertificate))) {
|
||||
if (SUCCEEDED(hr = eapxml::select_node(pXmlElClientSideCredential, bstr(L"eap-metadata:ClientCertificate"), pXmlElClientCertificate))) {
|
||||
com_obj<IXMLDOMNode> pXmlElClientCertificateOld;
|
||||
hr = pXmlElClientSideCredential->removeChild(pXmlElClientCertificate, &pXmlElClientCertificateOld);
|
||||
}
|
||||
} else if (!m_use_preshared) {
|
||||
// When not using pre-shared (user must supply one), add empty <ClientCertificate/>.
|
||||
} else if (!m_use_cred) {
|
||||
// When not using configured client certificate (user must supply one), add empty <ClientCertificate/>.
|
||||
com_obj<IXMLDOMElement> pXmlElClientCertificate;
|
||||
hr = eapxml::create_element(pDoc, pXmlElClientSideCredential, bstr(L"eap-metadata:ClientCertificate"), bstr(L"ClientCertificate"), namespace_eapmetadata, &pXmlElClientCertificate);
|
||||
hr = eapxml::create_element(pDoc, pXmlElClientSideCredential, bstr(L"eap-metadata:ClientCertificate"), bstr(L"ClientCertificate"), namespace_eapmetadata, pXmlElClientCertificate);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -150,23 +150,23 @@ void eap::config_method_ttls::load(_In_ IXMLDOMNode *pConfigRoot)
|
||||
|
||||
{
|
||||
com_obj<IXMLDOMNode> pXmlElClientSideCredential;
|
||||
if (SUCCEEDED(hr = eapxml::select_node(pConfigRoot, bstr(L"eap-metadata:ClientSideCredential"), &pXmlElClientSideCredential))) {
|
||||
if (SUCCEEDED(hr = eapxml::select_node(pConfigRoot, bstr(L"eap-metadata:ClientSideCredential"), pXmlElClientSideCredential))) {
|
||||
com_obj<IXMLDOMDocument> pDoc;
|
||||
if (SUCCEEDED(hr = pXmlElClientSideCredential->get_ownerDocument(&pDoc))) {
|
||||
// Fix 1: Pre-shared outer credentials in draft-winter-opsawg-eap-metadata has some bizarre presence/absence/blank logic for EAP-TTLS methods only.
|
||||
// Fix 1: Configured outer credentials in draft-winter-opsawg-eap-metadata has some bizarre presence/absence/blank logic for EAP-TTLS methods only.
|
||||
// To keep our code clean, we do some pre-processing, to accept draft compliant XML on input, while keeping things simple on the inside.
|
||||
com_obj<IXMLDOMNode> pXmlElClientCertificate;
|
||||
if (SUCCEEDED(hr = eapxml::select_node(pXmlElClientSideCredential, bstr(L"eap-metadata:ClientCertificate"), &pXmlElClientCertificate))) {
|
||||
if (SUCCEEDED(hr = eapxml::select_node(pXmlElClientSideCredential, bstr(L"eap-metadata:ClientCertificate"), pXmlElClientCertificate))) {
|
||||
VARIANT_BOOL has_children;
|
||||
if (SUCCEEDED(hr = pXmlElClientCertificate->hasChildNodes(&has_children)) && !has_children) {
|
||||
// Empty <ClientCertificate/> means: do not use pre-shared credentials.
|
||||
// Empty <ClientCertificate/> means: do not use configured credentials.
|
||||
com_obj<IXMLDOMNode> pXmlElClientCertificateOld;
|
||||
hr = pXmlElClientSideCredential->removeChild(pXmlElClientCertificate, &pXmlElClientCertificateOld);
|
||||
}
|
||||
} else {
|
||||
// Nonexisting <ClientSideCredential> means: use blank pre-shared credentials.
|
||||
// Nonexisting <ClientSideCredential> means: use blank configured credentials.
|
||||
com_obj<IXMLDOMElement> pXmlElClientCertificate;
|
||||
hr = eapxml::create_element(pDoc, pXmlElClientSideCredential, bstr(L"eap-metadata:ClientCertificate"), bstr(L"ClientCertificate"), namespace_eapmetadata, &pXmlElClientCertificate);
|
||||
hr = eapxml::create_element(pDoc, pXmlElClientSideCredential, bstr(L"eap-metadata:ClientCertificate"), bstr(L"ClientCertificate"), namespace_eapmetadata, pXmlElClientCertificate);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -180,7 +180,7 @@ void eap::config_method_ttls::load(_In_ IXMLDOMNode *pConfigRoot)
|
||||
|
||||
// <ClientSideCredential>
|
||||
com_obj<IXMLDOMElement> pXmlElClientSideCredential;
|
||||
if (SUCCEEDED(eapxml::select_element(pConfigRoot, bstr(L"eap-metadata:ClientSideCredential"), &pXmlElClientSideCredential))) {
|
||||
if (SUCCEEDED(eapxml::select_element(pConfigRoot, bstr(L"eap-metadata:ClientSideCredential"), pXmlElClientSideCredential))) {
|
||||
wstring xpathClientSideCredential(xpath + L"/ClientSideCredential");
|
||||
|
||||
// <AnonymousIdentity>
|
||||
@@ -190,18 +190,18 @@ void eap::config_method_ttls::load(_In_ IXMLDOMNode *pConfigRoot)
|
||||
|
||||
// <InnerAuthenticationMethod>
|
||||
com_obj<IXMLDOMElement> pXmlElInnerAuthenticationMethod;
|
||||
if (FAILED(hr = eapxml::select_element(pConfigRoot, bstr(L"eap-metadata:InnerAuthenticationMethod"), &pXmlElInnerAuthenticationMethod)))
|
||||
if (FAILED(hr = eapxml::select_element(pConfigRoot, bstr(L"eap-metadata:InnerAuthenticationMethod"), pXmlElInnerAuthenticationMethod)))
|
||||
throw com_runtime_error(hr, __FUNCTION__ " Error selecting <InnerAuthenticationMethod> element.");
|
||||
|
||||
// Determine inner authentication type (<EAPMethod> and <NonEAPAuthMethod>).
|
||||
DWORD dwMethod;
|
||||
bstr bstrMethod;
|
||||
if (SUCCEEDED(eapxml::get_element_value(pXmlElInnerAuthenticationMethod, bstr(L"eap-metadata:EAPMethod"), &dwMethod)) &&
|
||||
if (SUCCEEDED(eapxml::get_element_value(pXmlElInnerAuthenticationMethod, bstr(L"eap-metadata:EAPMethod"), dwMethod)) &&
|
||||
eap_type_start <= dwMethod && dwMethod < eap_type_end)
|
||||
{
|
||||
m_inner.reset(make_config_method((eap_type_t)dwMethod));
|
||||
m_module.log_config((xpath + L"/EAPMethod").c_str(), m_inner->get_method_str());
|
||||
} else if (SUCCEEDED(eapxml::get_element_value(pXmlElInnerAuthenticationMethod, bstr(L"eap-metadata:NonEAPAuthMethod"), &bstrMethod))) {
|
||||
} else if (SUCCEEDED(eapxml::get_element_value(pXmlElInnerAuthenticationMethod, bstr(L"eap-metadata:NonEAPAuthMethod"), bstrMethod))) {
|
||||
m_inner.reset(make_config_method(bstrMethod));
|
||||
m_module.log_config((xpath + L"/NonEAPAuthMethod").c_str(), m_inner->get_method_str());
|
||||
} else
|
||||
|
@@ -100,7 +100,7 @@ void eap::credentials_ttls::save(_In_ IXMLDOMDocument *pDoc, _In_ IXMLDOMNode *p
|
||||
|
||||
// <InnerAuthenticationMethod>
|
||||
com_obj<IXMLDOMElement> pXmlElInnerAuthenticationMethod;
|
||||
if (FAILED(hr = eapxml::create_element(pDoc, pConfigRoot, bstr(L"eap-metadata:InnerAuthenticationMethod"), bstr(L"InnerAuthenticationMethod"), namespace_eapmetadata, &pXmlElInnerAuthenticationMethod)))
|
||||
if (FAILED(hr = eapxml::create_element(pDoc, pConfigRoot, bstr(L"eap-metadata:InnerAuthenticationMethod"), bstr(L"InnerAuthenticationMethod"), namespace_eapmetadata, pXmlElInnerAuthenticationMethod)))
|
||||
throw com_runtime_error(hr, __FUNCTION__ " Error creating <InnerAuthenticationMethod> element.");
|
||||
|
||||
// <InnerAuthenticationMethod>/...
|
||||
@@ -117,7 +117,7 @@ void eap::credentials_ttls::load(_In_ IXMLDOMNode *pConfigRoot)
|
||||
|
||||
// Load inner credentials.
|
||||
com_obj<IXMLDOMNode> pXmlElInnerAuthenticationMethod;
|
||||
if (SUCCEEDED(hr = eapxml::select_node(pConfigRoot, bstr(L"eap-metadata:InnerAuthenticationMethod"), &pXmlElInnerAuthenticationMethod)))
|
||||
if (SUCCEEDED(hr = eapxml::select_node(pConfigRoot, bstr(L"eap-metadata:InnerAuthenticationMethod"), pXmlElInnerAuthenticationMethod)))
|
||||
m_inner->load(pXmlElInnerAuthenticationMethod);
|
||||
else
|
||||
m_inner->clear();
|
||||
|
@@ -18,6 +18,11 @@
|
||||
along with GÉANTLink. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
///
|
||||
/// TTLS credential panel
|
||||
///
|
||||
class wxTTLSCredentialsPanel;
|
||||
|
||||
///
|
||||
/// TTLS configuration panel
|
||||
///
|
||||
@@ -28,11 +33,6 @@ class wxTTLSConfigPanel;
|
||||
///
|
||||
class wxTTLSConfigWindow;
|
||||
|
||||
///
|
||||
/// TTLS credential panel
|
||||
///
|
||||
class wxTTLSCredentialsPanel;
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "../res/wxTTLS_UI.h"
|
||||
@@ -52,6 +52,42 @@ class wxTTLSCredentialsPanel;
|
||||
#include <Windows.h>
|
||||
|
||||
|
||||
class wxTTLSCredentialsPanel : public wxPanel
|
||||
{
|
||||
public:
|
||||
///
|
||||
/// Constructs a configuration panel
|
||||
///
|
||||
/// \param[in] prov Provider configuration data
|
||||
/// \param[in] cfg Configuration data
|
||||
/// \param[inout] cred Credentials data
|
||||
/// \param[in] parent Parent window
|
||||
/// \param[in] is_config Is this panel used to config credentials?
|
||||
///
|
||||
wxTTLSCredentialsPanel(const eap::config_provider &prov, const eap::config_method_ttls &cfg, eap::credentials_ttls &cred, wxWindow* parent, bool is_config = false);
|
||||
|
||||
///
|
||||
/// Destructs the configuration panel
|
||||
///
|
||||
virtual ~wxTTLSCredentialsPanel();
|
||||
|
||||
protected:
|
||||
/// \cond internal
|
||||
virtual void OnInitDialog(wxInitDialogEvent& event);
|
||||
/// \endcond
|
||||
|
||||
public:
|
||||
wxTLSCredentialsPanel *m_outer_cred; ///< Outer credentials panel
|
||||
wxEAPCredentialsPanelBase *m_inner_cred; ///< Inner credentials panel
|
||||
|
||||
protected:
|
||||
const eap::config_provider &m_prov; ///< EAP provider
|
||||
const eap::config_method_ttls &m_cfg; ///< TTLS configuration
|
||||
wxStaticText *m_outer_title; ///< Outer authentication title
|
||||
wxStaticText *m_inner_title; ///< Inner authentication title
|
||||
};
|
||||
|
||||
|
||||
class wxTTLSConfigPanel : public wxTTLSConfigPanelBase
|
||||
{
|
||||
public:
|
||||
@@ -110,39 +146,3 @@ protected:
|
||||
eap::config_method_pap m_cfg_pap; ///< PAP configuration
|
||||
eap::config_method_mschapv2 m_cfg_mschapv2; ///< MSCHAPv2 configuration
|
||||
};
|
||||
|
||||
|
||||
class wxTTLSCredentialsPanel : public wxPanel
|
||||
{
|
||||
public:
|
||||
///
|
||||
/// Constructs a configuration panel
|
||||
///
|
||||
/// \param[in] prov Provider configuration data
|
||||
/// \param[in] cfg Configuration data
|
||||
/// \param[inout] cred Credentials data
|
||||
/// \param[in] parent Parent window
|
||||
/// \param[in] is_config Is this panel used to pre-enter credentials? When \c true, the "Remember" checkbox is always selected and disabled.
|
||||
///
|
||||
wxTTLSCredentialsPanel(const eap::config_provider &prov, const eap::config_method &cfg, eap::credentials &cred, wxWindow* parent, bool is_config = false);
|
||||
|
||||
///
|
||||
/// Destructs the configuration panel
|
||||
///
|
||||
virtual ~wxTTLSCredentialsPanel();
|
||||
|
||||
protected:
|
||||
/// \cond internal
|
||||
virtual void OnInitDialog(wxInitDialogEvent& event);
|
||||
/// \endcond
|
||||
|
||||
public:
|
||||
wxTLSCredentialsPanel *m_outer_cred; ///< Outer credentials panel
|
||||
wxEAPCredentialsPanelBase *m_inner_cred; ///< Inner credentials panel
|
||||
|
||||
protected:
|
||||
const eap::config_provider &m_prov; ///< EAP provider
|
||||
const eap::config_method_ttls &m_cfg; ///< TTLS configuration
|
||||
wxStaticText *m_outer_title; ///< Outer authentication title
|
||||
wxStaticText *m_inner_title; ///< Inner authentication title
|
||||
};
|
||||
|
@@ -21,6 +21,79 @@
|
||||
#include "StdAfx.h"
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
// wxTTLSCredentialsPanel
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
wxTTLSCredentialsPanel::wxTTLSCredentialsPanel(const eap::config_provider &prov, const eap::config_method_ttls &cfg, eap::credentials_ttls &cred, wxWindow* parent, bool is_config) :
|
||||
m_prov(prov),
|
||||
m_cfg(cfg),
|
||||
wxPanel(parent, wxID_ANY, wxDefaultPosition, wxDefaultSize)
|
||||
{
|
||||
wxBoxSizer* sb_content;
|
||||
sb_content = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
m_inner_title = new wxStaticText(this, wxID_ANY, _("Inner Authentication"), wxDefaultPosition, wxDefaultSize, 0);
|
||||
m_inner_title->SetFont(wxFont(18, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString));
|
||||
m_inner_title->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_INACTIVECAPTION ) );
|
||||
sb_content->Add(m_inner_title, 0, wxALL|wxALIGN_RIGHT, 5);
|
||||
|
||||
assert(m_cfg.m_inner);
|
||||
|
||||
if (eap::config_method_with_cred::status_cred_begin <= m_cfg.m_inner->m_last_status && m_cfg.m_inner->m_last_status < eap::config_method_with_cred::status_cred_end)
|
||||
sb_content->Add(new wxEAPCredentialWarningPanel(m_prov, m_cfg.m_inner->m_last_status, this), 0, wxALL|wxEXPAND, 5);
|
||||
|
||||
const eap::config_method_pap *cfg_inner_pap;
|
||||
const eap::config_method_mschapv2 *cfg_inner_mschapv2;
|
||||
if ((cfg_inner_pap = dynamic_cast<const eap::config_method_pap*>(m_cfg.m_inner.get())) != NULL) {
|
||||
if (!cred.m_inner) cred.m_inner.reset(new eap::credentials_pass(cred.m_module));
|
||||
m_inner_cred = new wxPAPCredentialsPanel(m_prov, *cfg_inner_pap, *(eap::credentials_pass*)cred.m_inner.get(), this, is_config);
|
||||
sb_content->Add(m_inner_cred, 0, wxALL|wxEXPAND, 5);
|
||||
} else if ((cfg_inner_mschapv2 = dynamic_cast<const eap::config_method_mschapv2*>(m_cfg.m_inner.get())) != NULL) {
|
||||
if (!cred.m_inner) cred.m_inner.reset(new eap::credentials_pass(cred.m_module));
|
||||
m_inner_cred = new wxMSCHAPv2CredentialsPanel(m_prov, *cfg_inner_mschapv2, *(eap::credentials_pass*)cred.m_inner.get(), this, is_config);
|
||||
sb_content->Add(m_inner_cred, 0, wxALL|wxEXPAND, 5);
|
||||
} else
|
||||
assert(0); // Unsupported inner authentication method type.
|
||||
|
||||
sb_content->Add(20, 20, 1, wxALL|wxEXPAND, 5);
|
||||
|
||||
m_outer_title = new wxStaticText(this, wxID_ANY, _("Outer Authentication"), wxDefaultPosition, wxDefaultSize, 0);
|
||||
m_outer_title->SetFont(wxFont(18, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString));
|
||||
m_outer_title->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_INACTIVECAPTION ) );
|
||||
sb_content->Add(m_outer_title, 0, wxALL|wxALIGN_RIGHT, 5);
|
||||
|
||||
if (eap::config_method_with_cred::status_cred_begin <= m_cfg.m_last_status && m_cfg.m_last_status < eap::config_method_with_cred::status_cred_end)
|
||||
sb_content->Add(new wxEAPCredentialWarningPanel(m_prov, m_cfg.m_last_status, this), 0, wxALL|wxEXPAND, 5);
|
||||
|
||||
m_outer_cred = new wxTLSCredentialsPanel(m_prov, m_cfg, cred, this, is_config);
|
||||
sb_content->Add(m_outer_cred, 0, wxALL|wxEXPAND, 5);
|
||||
|
||||
this->SetSizer(sb_content);
|
||||
this->Layout();
|
||||
|
||||
m_inner_cred->SetFocusFromKbd();
|
||||
|
||||
// Connect Events
|
||||
this->Connect(wxEVT_INIT_DIALOG, wxInitDialogEventHandler(wxTTLSCredentialsPanel::OnInitDialog));
|
||||
}
|
||||
|
||||
|
||||
wxTTLSCredentialsPanel::~wxTTLSCredentialsPanel()
|
||||
{
|
||||
// Disconnect Events
|
||||
this->Disconnect(wxEVT_INIT_DIALOG, wxInitDialogEventHandler(wxTTLSCredentialsPanel::OnInitDialog));
|
||||
}
|
||||
|
||||
|
||||
void wxTTLSCredentialsPanel::OnInitDialog(wxInitDialogEvent& event)
|
||||
{
|
||||
// Forward the event to child panels.
|
||||
m_outer_cred->GetEventHandler()->ProcessEvent(event);
|
||||
m_inner_cred->GetEventHandler()->ProcessEvent(event);
|
||||
}
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
// wxTTLSConfigPanel
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
@@ -218,78 +291,3 @@ void wxTTLSConfigWindow::OnUpdateUI(wxUpdateUIEvent& /*event*/)
|
||||
{
|
||||
m_inner_type->GetChoiceCtrl()->Enable(!m_prov.m_read_only);
|
||||
}
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
// wxTTLSCredentialsPanel
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
wxTTLSCredentialsPanel::wxTTLSCredentialsPanel(const eap::config_provider &prov, const eap::config_method &cfg, eap::credentials &cred, wxWindow* parent, bool is_config) :
|
||||
m_prov(prov),
|
||||
m_cfg((eap::config_method_ttls&)cfg),
|
||||
wxPanel(parent, wxID_ANY, wxDefaultPosition, wxDefaultSize)
|
||||
{
|
||||
wxBoxSizer* sb_content;
|
||||
sb_content = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
m_inner_title = new wxStaticText(this, wxID_ANY, _("Inner Authentication"), wxDefaultPosition, wxDefaultSize, 0);
|
||||
m_inner_title->SetFont(wxFont(18, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString));
|
||||
m_inner_title->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_INACTIVECAPTION ) );
|
||||
sb_content->Add(m_inner_title, 0, wxALL|wxALIGN_RIGHT, 5);
|
||||
|
||||
assert(m_cfg.m_inner);
|
||||
|
||||
if (eap::config_method_with_cred::status_cred_begin <= m_cfg.m_inner->m_last_status && m_cfg.m_inner->m_last_status < eap::config_method_with_cred::status_cred_end)
|
||||
sb_content->Add(new wxEAPCredentialWarningPanel(m_prov, m_cfg.m_inner->m_last_status, this), 0, wxALL|wxEXPAND, 5);
|
||||
|
||||
const eap::config_method_pap *cfg_inner_pap;
|
||||
const eap::config_method_mschapv2 *cfg_inner_mschapv2;
|
||||
if ((cfg_inner_pap = dynamic_cast<const eap::config_method_pap*>(m_cfg.m_inner.get())) != NULL) {
|
||||
eap::credentials_ttls &cred_ttls = (eap::credentials_ttls&)cred;
|
||||
if (!cred_ttls.m_inner) cred_ttls.m_inner.reset(new eap::credentials_pass(cred.m_module));
|
||||
m_inner_cred = new wxPAPCredentialsPanel(m_prov, *cfg_inner_pap, *(eap::credentials_pass*)cred_ttls.m_inner.get(), this, is_config);
|
||||
sb_content->Add(m_inner_cred, 0, wxALL|wxEXPAND, 5);
|
||||
} else if ((cfg_inner_mschapv2 = dynamic_cast<const eap::config_method_mschapv2*>(m_cfg.m_inner.get())) != NULL) {
|
||||
eap::credentials_ttls &cred_ttls = (eap::credentials_ttls&)cred;
|
||||
if (!cred_ttls.m_inner) cred_ttls.m_inner.reset(new eap::credentials_pass(cred.m_module));
|
||||
m_inner_cred = new wxMSCHAPv2CredentialsPanel(m_prov, *cfg_inner_mschapv2, *(eap::credentials_pass*)cred_ttls.m_inner.get(), this, is_config);
|
||||
sb_content->Add(m_inner_cred, 0, wxALL|wxEXPAND, 5);
|
||||
} else
|
||||
assert(0); // Unsupported inner authentication method type.
|
||||
|
||||
sb_content->Add(20, 20, 1, wxALL|wxEXPAND, 5);
|
||||
|
||||
m_outer_title = new wxStaticText(this, wxID_ANY, _("Outer Authentication"), wxDefaultPosition, wxDefaultSize, 0);
|
||||
m_outer_title->SetFont(wxFont(18, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString));
|
||||
m_outer_title->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_INACTIVECAPTION ) );
|
||||
sb_content->Add(m_outer_title, 0, wxALL|wxALIGN_RIGHT, 5);
|
||||
|
||||
if (eap::config_method_with_cred::status_cred_begin <= m_cfg.m_last_status && m_cfg.m_last_status < eap::config_method_with_cred::status_cred_end)
|
||||
sb_content->Add(new wxEAPCredentialWarningPanel(m_prov, m_cfg.m_last_status, this), 0, wxALL|wxEXPAND, 5);
|
||||
|
||||
m_outer_cred = new wxTLSCredentialsPanel(m_prov, (const eap::config_method_tls&)m_cfg, (eap::credentials_tls&)cred, this, is_config);
|
||||
sb_content->Add(m_outer_cred, 0, wxALL|wxEXPAND, 5);
|
||||
|
||||
this->SetSizer(sb_content);
|
||||
this->Layout();
|
||||
|
||||
m_inner_cred->SetFocusFromKbd();
|
||||
|
||||
// Connect Events
|
||||
this->Connect(wxEVT_INIT_DIALOG, wxInitDialogEventHandler(wxTTLSCredentialsPanel::OnInitDialog));
|
||||
}
|
||||
|
||||
|
||||
wxTTLSCredentialsPanel::~wxTTLSCredentialsPanel()
|
||||
{
|
||||
// Disconnect Events
|
||||
this->Disconnect(wxEVT_INIT_DIALOG, wxInitDialogEventHandler(wxTTLSCredentialsPanel::OnInitDialog));
|
||||
}
|
||||
|
||||
|
||||
void wxTTLSCredentialsPanel::OnInitDialog(wxInitDialogEvent& event)
|
||||
{
|
||||
// Forward the event to child panels.
|
||||
m_outer_cred->GetEventHandler()->ProcessEvent(event);
|
||||
m_inner_cred->GetEventHandler()->ProcessEvent(event);
|
||||
}
|
||||
|
Submodule lib/WinStd updated: c6969fc2cf...c2ba38a524
Submodule lib/wxExtend updated: 22e381af0c...e9dd2b7ae5
Reference in New Issue
Block a user