Compare commits
102 Commits
Author | SHA1 | Date | |
---|---|---|---|
bb74e0e980 | |||
04a8eaa462 | |||
461d857cab | |||
25a05b256f | |||
239a391093 | |||
4ae70c8575 | |||
c8c54e5d54 | |||
e40f9f7e63 | |||
8d4a07860d | |||
a5b7a9c4cc | |||
41f6fc625d | |||
f36094922f | |||
bba0054615 | |||
6a7a6827b2 | |||
3c2441e1c6 | |||
67257bf9ca | |||
57249b0196 | |||
9d84831d9b | |||
5ef1d72e42 | |||
6a034ca669 | |||
0575ace070 | |||
2c761e4aae | |||
a652406dc9 | |||
214a003177 | |||
5613ba6f35 | |||
bd1cf156bc | |||
09b35b14c3 | |||
9d29353fed | |||
283fd08d51 | |||
09bf94b377 | |||
9ce58c3e15 | |||
7ed4eda8ea | |||
e0b9c4d95a | |||
303a060f28 | |||
6264741a62 | |||
28f5710e47 | |||
cf6e3e7c25 | |||
a1485a78f6 | |||
06d39f0561 | |||
0efe4d52c3 | |||
5efadaa8c2 | |||
4937550746 | |||
4b5ffdf9a1 | |||
ffa74466a4 | |||
f4e27d2151 | |||
7f20906cf7 | |||
30b96082bd | |||
0abae8fe0e | |||
6df6eeaa0a | |||
4ac3643ef7 | |||
3fa838aba1 | |||
2557861065 | |||
212e319011 | |||
e5acaee698 | |||
fe85347c31 | |||
e0572524aa | |||
decf8d0860 | |||
f5530b4ca9 | |||
9b174b7855 | |||
33e5bc90a5 | |||
391fc796d7 | |||
946db58d3e | |||
d1a6d02e67 | |||
d695ded8e7 | |||
c4bc78cb47 | |||
3a7d26c68e | |||
9a71fe64c6 | |||
8d64acfab9 | |||
eab7def72e | |||
07dbb7618a | |||
cc7bc07efe | |||
4b7c697385 | |||
8e81ece9e3 | |||
5214afe17e | |||
281c8a7119 | |||
1162ccae3f | |||
4804214231 | |||
130bab1391 | |||
ba609ba469 | |||
6fef48848d | |||
bdc1ffd9f1 | |||
0ac18d6961 | |||
09c08aa301 | |||
d95803c672 | |||
9a74e982ab | |||
c603008cd4 | |||
51eb485440 | |||
e75d31dd9b | |||
0b4e4571b6 | |||
435157955e | |||
f155b93ac2 | |||
0865318278 | |||
271e062be2 | |||
ebe12e5157 | |||
f197c0c937 | |||
29d5769060 | |||
0afbdadea7 | |||
cebcf7506e | |||
3fb92a0c30 | |||
0c5a145ad8 | |||
cc069d0442 | |||
060aada133 |
3
.gitmodules
vendored
3
.gitmodules
vendored
@ -7,6 +7,3 @@
|
|||||||
[submodule "lib/wxExtend"]
|
[submodule "lib/wxExtend"]
|
||||||
path = lib/wxExtend
|
path = lib/wxExtend
|
||||||
url = https://github.com/Amebis/wxExtend.git
|
url = https://github.com/Amebis/wxExtend.git
|
||||||
[submodule "lib/stdex"]
|
|
||||||
path = lib/stdex
|
|
||||||
url = https://github.com/Amebis/stdex.git
|
|
||||||
|
14
CredWrite/CredWrite.props
Normal file
14
CredWrite/CredWrite.props
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ImportGroup Label="PropertySheets" />
|
||||||
|
<PropertyGroup Label="UserMacros" />
|
||||||
|
<PropertyGroup>
|
||||||
|
<OutDir>..\output\$(Platform).$(Configuration)\</OutDir>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemDefinitionGroup>
|
||||||
|
<ClCompile>
|
||||||
|
<AdditionalIncludeDirectories>..\lib\Events\build\temp\Events.$(Platform).$(Configuration).$(PlatformToolset);..\lib\WinStd\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
</ClCompile>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemGroup />
|
||||||
|
</Project>
|
Binary file not shown.
@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|ARM64">
|
<ProjectConfiguration Include="Debug|ARM64">
|
||||||
@ -28,46 +28,116 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
<ProjectGuid>{2D3CE079-7EB1-4F47-B79E-F0310671ECCB}</ProjectGuid>
|
<ProjectGuid>{2D3CE079-7EB1-4F47-B79E-F0310671ECCB}</ProjectGuid>
|
||||||
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>CredWrite</RootNamespace>
|
<RootNamespace>CredWrite</RootNamespace>
|
||||||
|
<WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Label="Configuration" Condition="'$(Configuration)'=='Debug'">
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Label="Configuration" Condition="'$(Configuration)'=='Release'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
|
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Label="Configuration" Condition="'$(Platform)'=='ARM64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
|
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings" />
|
<ImportGroup Label="ExtensionSettings">
|
||||||
<ImportGroup Label="PropertySheets">
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
<Import Project="..\include\$(Platform).props" />
|
<Import Project="..\include\$(Platform).props" />
|
||||||
<Import Project="..\include\$(Configuration).props" />
|
<Import Project="..\include\$(Configuration).props" />
|
||||||
|
<Import Project="CredWrite.props" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
<Import Project="..\include\$(Platform).props" />
|
||||||
|
<Import Project="..\include\$(Configuration).props" />
|
||||||
|
<Import Project="CredWrite.props" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="PropertySheets">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
<Import Project="..\include\$(Platform).props" />
|
||||||
|
<Import Project="..\include\$(Configuration).props" />
|
||||||
|
<Import Project="CredWrite.props" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
<Import Project="..\include\$(Platform).props" />
|
||||||
|
<Import Project="..\include\$(Configuration).props" />
|
||||||
|
<Import Project="CredWrite.props" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
<Import Project="..\include\$(Platform).props" />
|
||||||
|
<Import Project="..\include\$(Configuration).props" />
|
||||||
|
<Import Project="CredWrite.props" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="PropertySheets">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
<Import Project="..\include\$(Platform).props" />
|
||||||
|
<Import Project="..\include\$(Configuration).props" />
|
||||||
|
<Import Project="CredWrite.props" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<PropertyGroup Label="UserMacros" />
|
<PropertyGroup Label="UserMacros" />
|
||||||
<PropertyGroup>
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||||
<OutDir>..\output\$(Platform).$(Configuration)\</OutDir>
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
|
||||||
</PropertyGroup>
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" />
|
||||||
<ItemDefinitionGroup>
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||||
<ClCompile>
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
|
||||||
<AdditionalIncludeDirectories>..\lib\Events\build\temp\Events.$(Platform).$(Configuration).$(PlatformToolset);..\lib\WinStd\include;..\lib\stdex\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" />
|
||||||
</ClCompile>
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||||
</ItemDefinitionGroup>
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" />
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" />
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="PCH.h" />
|
<ClInclude Include="StdAfx.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="Main.cpp" />
|
<ClCompile Include="Main.cpp" />
|
||||||
<ClCompile Include="PCH.cpp">
|
<ClCompile Include="StdAfx.cpp">
|
||||||
<PrecompiledHeader>Create</PrecompiledHeader>
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
|
||||||
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
|
||||||
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
|
||||||
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">Create</PrecompiledHeader>
|
||||||
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
|
||||||
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">Create</PrecompiledHeader>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@ -86,10 +156,14 @@
|
|||||||
<ProjectReference Include="..\lib\TLS\build\TLS.vcxproj">
|
<ProjectReference Include="..\lib\TLS\build\TLS.vcxproj">
|
||||||
<Project>{4d40cb8a-812e-4f12-b23a-31af743878e8}</Project>
|
<Project>{4d40cb8a-812e-4f12-b23a-31af743878e8}</Project>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\lib\WinStd\build\WinStd-15.0.vcxproj">
|
||||||
|
<Project>{47399d91-7eb9-41de-b521-514ba5db0c43}</Project>
|
||||||
|
</ProjectReference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="README.md" />
|
<None Include="README.md" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
<ImportGroup Label="ExtensionTargets" />
|
<ImportGroup Label="ExtensionTargets">
|
||||||
|
</ImportGroup>
|
||||||
</Project>
|
</Project>
|
@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Filter Include="Source Files">
|
<Filter Include="Source Files">
|
||||||
@ -15,12 +15,12 @@
|
|||||||
</Filter>
|
</Filter>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="PCH.h">
|
<ClInclude Include="StdAfx.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="PCH.cpp">
|
<ClCompile Include="StdAfx.cpp">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="Main.cpp">
|
<ClCompile Include="Main.cpp">
|
||||||
|
@ -1,18 +1,29 @@
|
|||||||
/*
|
/*
|
||||||
SPDX-License-Identifier: GPL-3.0-or-later
|
Copyright 2015-2016 Amebis
|
||||||
Copyright © 2015-2022 Amebis
|
Copyright 2016 GÉANT
|
||||||
Copyright © 2016 GÉANT
|
|
||||||
|
This file is part of GÉANTLink.
|
||||||
|
|
||||||
|
GÉANTLink is free software: you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
GÉANTLink is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with GÉANTLink. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "PCH.h"
|
#include "StdAfx.h"
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace stdex;
|
|
||||||
using namespace winstd;
|
using namespace winstd;
|
||||||
|
|
||||||
class module_dummy : public eap::module {
|
eap::module g_module;
|
||||||
virtual eap::config_method* make_config() { return nullptr; }
|
|
||||||
} g_module;
|
|
||||||
|
|
||||||
|
|
||||||
static int CredWrite()
|
static int CredWrite()
|
||||||
@ -105,16 +116,15 @@ static int CredWrite()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
_Use_decl_annotations_
|
int CALLBACK WinMain(_In_ HINSTANCE hInstance, _In_ HINSTANCE hPrevInstance, _In_ LPSTR lpCmdLine, _In_ int nCmdShow)
|
||||||
int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
|
|
||||||
{
|
{
|
||||||
UNREFERENCED_PARAMETER(hPrevInstance);
|
UNREFERENCED_PARAMETER(hPrevInstance);
|
||||||
UNREFERENCED_PARAMETER(lpCmdLine);
|
UNREFERENCED_PARAMETER(lpCmdLine);
|
||||||
UNREFERENCED_PARAMETER(nCmdShow);
|
UNREFERENCED_PARAMETER(nCmdShow);
|
||||||
|
|
||||||
_CrtSetDbgFlag(_crtDbgFlag | _CRTDBG_ALLOC_MEM_DF | _CRTDBG_CHECK_ALWAYS_DF | _CRTDBG_CHECK_CRT_DF | _CRTDBG_LEAK_CHECK_DF);
|
|
||||||
g_module.m_instance = hInstance;
|
g_module.m_instance = hInstance;
|
||||||
|
|
||||||
int res = CredWrite();
|
int res = CredWrite();
|
||||||
|
assert(!_CrtDumpMemoryLeaks());
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
@ -1,7 +0,0 @@
|
|||||||
/*
|
|
||||||
SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
Copyright © 2015-2022 Amebis
|
|
||||||
Copyright © 2016 GÉANT
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "PCH.h"
|
|
@ -1,22 +0,0 @@
|
|||||||
/*
|
|
||||||
SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
Copyright © 2015-2022 Amebis
|
|
||||||
Copyright © 2016 GÉANT
|
|
||||||
*/
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "../lib/EAPBase/include/Config.h"
|
|
||||||
#include "../lib/EAPBase/include/Credentials.h"
|
|
||||||
#include "../lib/EAPBase/include/Module.h"
|
|
||||||
|
|
||||||
#include <WinStd/Common.h>
|
|
||||||
#include <WinStd/Win.h>
|
|
||||||
#include <stdex/base64.hpp>
|
|
||||||
|
|
||||||
#include <Windows.h>
|
|
||||||
#include <eaptypes.h> // Must include after <Windows.h>
|
|
||||||
#include <shellapi.h>
|
|
||||||
#include <tchar.h>
|
|
||||||
|
|
||||||
#include <memory>
|
|
@ -1,9 +1,7 @@
|
|||||||
# CredWrite
|
#CredWrite
|
||||||
|
Imports given credentials to Windows Credential Manager for GÉANTLink use
|
||||||
Imports given credentials to Windows Credential Manager for GÉANTLink use
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
|
##Usage
|
||||||
```
|
```
|
||||||
CredWrite <username> <password> [<realm> [level]]
|
CredWrite <username> <password> [<realm> [level]]
|
||||||
```
|
```
|
||||||
@ -15,15 +13,8 @@ CredWrite <username> <password> [<realm> [level]]
|
|||||||
|
|
||||||
The credentials are stored to Windows Credential Manager in invoking user's roaming profile.
|
The credentials are stored to Windows Credential Manager in invoking user's roaming profile.
|
||||||
|
|
||||||
### Return codes
|
Return codes:
|
||||||
|
|
||||||
- -1 = Invalid parameters
|
- -1 = Invalid parameters
|
||||||
- 0 = Success
|
- 0 = Success
|
||||||
- 1 = Error parsing command line
|
- 1 = Error parsing command line
|
||||||
- 2 = Error encrypting password or writing credentials
|
- 2 = Error encrypting password or writing credentials
|
||||||
|
|
||||||
### Example
|
|
||||||
|
|
||||||
```
|
|
||||||
CredWrite dXNlckBjb250b3NvLmNvbQ== cGFzc3dvcmQxMjM= urn:RFC4282:realm:contoso.com 1
|
|
||||||
```
|
|
||||||
|
21
CredWrite/StdAfx.cpp
Normal file
21
CredWrite/StdAfx.cpp
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2015-2016 Amebis
|
||||||
|
Copyright 2016 GÉANT
|
||||||
|
|
||||||
|
This file is part of GÉANTLink.
|
||||||
|
|
||||||
|
GÉANTLink is free software: you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
GÉANTLink is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with GÉANTLink. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "StdAfx.h"
|
34
CredWrite/StdAfx.h
Normal file
34
CredWrite/StdAfx.h
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2015-2016 Amebis
|
||||||
|
Copyright 2016 GÉANT
|
||||||
|
|
||||||
|
This file is part of GÉANTLink.
|
||||||
|
|
||||||
|
GÉANTLink is free software: you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
GÉANTLink is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with GÉANTLink. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "../lib/EAPBase/include/Credentials.h"
|
||||||
|
#include "../lib/EAPBase/include/Module.h"
|
||||||
|
|
||||||
|
#include <WinStd/Common.h>
|
||||||
|
#include <WinStd/Base64.h>
|
||||||
|
#include <WinStd/Win.h>
|
||||||
|
|
||||||
|
#include <Windows.h>
|
||||||
|
#include <eaptypes.h> // Must include after <Windows.h>
|
||||||
|
#include <tchar.h>
|
||||||
|
|
||||||
|
#include <memory>
|
5
Doxyfile
5
Doxyfile
@ -1,4 +1,4 @@
|
|||||||
# Doxyfile 1.8.7
|
# Doxyfile 1.8.7
|
||||||
|
|
||||||
# This file describes the settings to be used by the documentation system
|
# This file describes the settings to be used by the documentation system
|
||||||
# doxygen (www.doxygen.org) for a project.
|
# doxygen (www.doxygen.org) for a project.
|
||||||
@ -44,7 +44,7 @@ PROJECT_NUMBER =
|
|||||||
# for a project that appears at the top of each page and should give viewer a
|
# for a project that appears at the top of each page and should give viewer a
|
||||||
# quick idea about the purpose of the project. Keep the description short.
|
# quick idea about the purpose of the project. Keep the description short.
|
||||||
|
|
||||||
PROJECT_BRIEF = "Suite of EAP supplicants for Microsoft Windows - IEEE 802.1X clients for enterprise network authentication"
|
PROJECT_BRIEF = "EAP Supplicant for Windows"
|
||||||
|
|
||||||
# With the PROJECT_LOGO tag one can specify an logo or icon that is included in
|
# With the PROJECT_LOGO tag one can specify an logo or icon that is included in
|
||||||
# the documentation. The maximum height of the logo should not exceed 55 pixels
|
# the documentation. The maximum height of the logo should not exceed 55 pixels
|
||||||
@ -794,7 +794,6 @@ EXCLUDE = \
|
|||||||
EventMonitor\res \
|
EventMonitor\res \
|
||||||
lib\EAPBase_UI\res \
|
lib\EAPBase_UI\res \
|
||||||
lib\EapHost_UI\res \
|
lib\EapHost_UI\res \
|
||||||
lib\GTC_UI\res \
|
|
||||||
lib\TLS_UI\res \
|
lib\TLS_UI\res \
|
||||||
lib\TTLS_UI\res \
|
lib\TTLS_UI\res \
|
||||||
lib\WinStd \
|
lib\WinStd \
|
||||||
|
@ -1,24 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ImportGroup Label="PropertySheets">
|
|
||||||
<Import Project="..\include\$(Platform).props" />
|
|
||||||
<Import Project="..\include\$(Configuration).props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<_PropertySheetDisplayName>EAP Method Common</_PropertySheetDisplayName>
|
|
||||||
<OutDir>..\output\$(Platform).$(Configuration)\</OutDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup>
|
|
||||||
<ClCompile>
|
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir);..\lib\Events\build\temp\Events.$(Platform).$(Configuration).$(PlatformToolset);..\lib\WinStd\include;..\lib\stdex\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
</ClCompile>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\lib\EAPBase\build\EAPBase.vcxproj">
|
|
||||||
<Project>{ad6816a0-9600-4e01-8c49-39d03d1e791f}</Project>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\lib\Events\build\Events.vcxproj">
|
|
||||||
<Project>{d63f24bd-92a0-4d6b-8b69-ed947e4d2b1b}</Project>
|
|
||||||
</ProjectReference>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
@ -1,85 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
|
||||||
<ProjectConfiguration Include="Debug|ARM64">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>ARM64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Debug|x64">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|ARM64">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>ARM64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|x64">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
</ItemGroup>
|
|
||||||
<PropertyGroup Label="Globals">
|
|
||||||
<ProjectGuid>{331B6077-E3E2-4867-B93E-9D3F57280DE7}</ProjectGuid>
|
|
||||||
<RootNamespace>EAP-TTLS</RootNamespace>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
|
||||||
<PropertyGroup Label="Configuration">
|
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Label="Configuration" Condition="'$(Configuration)'=='Debug'">
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Label="Configuration" Condition="'$(Configuration)'=='Release'">
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Label="Configuration" Condition="'$(Platform)'=='ARM64'">
|
|
||||||
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
|
||||||
<ImportGroup Label="ExtensionSettings" />
|
|
||||||
<ImportGroup Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
<Import Project="EAPMethod.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<ItemDefinitionGroup>
|
|
||||||
<ClCompile>
|
|
||||||
<PreprocessorDefinitions>EAPMETHOD_TYPE=21;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
</ClCompile>
|
|
||||||
<ResourceCompile>
|
|
||||||
<PreprocessorDefinitions>EAPMETHOD_TYPE=21;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
</ResourceCompile>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\lib\EapHost\build\EapHost.vcxproj">
|
|
||||||
<Project>{b385ec2b-c3f4-48bb-9bac-8b996de7f754}</Project>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\lib\GTC\build\GTC.vcxproj">
|
|
||||||
<Project>{114a70bb-8698-4a0c-8c90-58f22edd8129}</Project>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\lib\MSCHAPv2\build\MSCHAPv2.vcxproj">
|
|
||||||
<Project>{86a6d6a0-4b7d-4134-be81-a5755c77584d}</Project>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\lib\PAP\build\PAP.vcxproj">
|
|
||||||
<Project>{36b0cf8a-7794-46c3-8099-825ba962b4c7}</Project>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\lib\TLS\build\TLS.vcxproj">
|
|
||||||
<Project>{4d40cb8a-812e-4f12-b23a-31af743878e8}</Project>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\lib\TTLS\build\TTLS.vcxproj">
|
|
||||||
<Project>{ee0ef0d9-a475-4038-8637-5754724f65b0}</Project>
|
|
||||||
</ProjectReference>
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
|
||||||
<ImportGroup Label="ExtensionTargets" />
|
|
||||||
</Project>
|
|
@ -1,105 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
|
||||||
<ProjectConfiguration Include="Debug|ARM64">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>ARM64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Debug|x64">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|ARM64">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>ARM64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|x64">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
</ItemGroup>
|
|
||||||
<PropertyGroup Label="Globals">
|
|
||||||
<ProjectGuid>{DD7A97CA-F18E-43B7-95C4-D06E6A291624}</ProjectGuid>
|
|
||||||
<RootNamespace>EAP-TTLS_UI</RootNamespace>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
|
||||||
<PropertyGroup Label="Configuration">
|
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Label="Configuration" Condition="'$(Configuration)'=='Debug'">
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Label="Configuration" Condition="'$(Configuration)'=='Release'">
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Label="Configuration" Condition="'$(Platform)'=='ARM64'">
|
|
||||||
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
|
||||||
<ImportGroup Label="ExtensionSettings" />
|
|
||||||
<ImportGroup Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
<Import Project="EAPMethod_UI.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<ItemDefinitionGroup>
|
|
||||||
<ClCompile>
|
|
||||||
<PreprocessorDefinitions>EAPMETHOD_TYPE=21;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
</ClCompile>
|
|
||||||
<ResourceCompile>
|
|
||||||
<PreprocessorDefinitions>EAPMETHOD_TYPE=21;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
</ResourceCompile>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\lib\EapHost\build\EapHost.vcxproj">
|
|
||||||
<Project>{b385ec2b-c3f4-48bb-9bac-8b996de7f754}</Project>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\lib\EapHost_UI\build\EapHost_UI.vcxproj">
|
|
||||||
<Project>{13d2d8b5-f6aa-459d-b5f7-29b95dd9d583}</Project>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\lib\GTC\build\GTC.vcxproj">
|
|
||||||
<Project>{114a70bb-8698-4a0c-8c90-58f22edd8129}</Project>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\lib\GTC_UI\build\GTC_UI.vcxproj">
|
|
||||||
<Project>{34680813-3a52-46fb-b5a8-1e4bbf770855}</Project>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\lib\MSCHAPv2\build\MSCHAPv2.vcxproj">
|
|
||||||
<Project>{86a6d6a0-4b7d-4134-be81-a5755c77584d}</Project>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\lib\MSCHAPv2_UI\build\MSCHAPv2_UI.vcxproj">
|
|
||||||
<Project>{7af5b922-7c17-428a-97e0-09e3b41a684d}</Project>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\lib\PAP\build\PAP.vcxproj">
|
|
||||||
<Project>{36b0cf8a-7794-46c3-8099-825ba962b4c7}</Project>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\lib\PAP_UI\build\PAP_UI.vcxproj">
|
|
||||||
<Project>{3d309c2e-64ab-4bc4-a16d-468571a2bc1a}</Project>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\lib\TLS\build\TLS.vcxproj">
|
|
||||||
<Project>{4d40cb8a-812e-4f12-b23a-31af743878e8}</Project>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\lib\TLS_UI\build\TLS_UI.vcxproj">
|
|
||||||
<Project>{9a25c261-8ade-4938-8393-e857ef0e37e9}</Project>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\lib\TTLS\build\TTLS.vcxproj">
|
|
||||||
<Project>{ee0ef0d9-a475-4038-8637-5754724f65b0}</Project>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\lib\TTLS_UI\build\TTLS_UI.vcxproj">
|
|
||||||
<Project>{42f0f0f4-c928-4860-a4e4-94991c2c3d90}</Project>
|
|
||||||
</ProjectReference>
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
|
||||||
<ImportGroup Label="ExtensionTargets">
|
|
||||||
<Import Project="..\include\xgettext.targets" />
|
|
||||||
</ImportGroup>
|
|
||||||
</Project>
|
|
Binary file not shown.
@ -1,27 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ImportGroup Label="PropertySheets">
|
|
||||||
<Import Project="Common.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ItemDefinitionGroup>
|
|
||||||
<Link>
|
|
||||||
<ModuleDefinitionFile>EAPMethod.def</ModuleDefinitionFile>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="PCH.h" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="Main.cpp" />
|
|
||||||
<ClCompile Include="PCH.cpp">
|
|
||||||
<PrecompiledHeader>Create</PrecompiledHeader>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="Register.cpp" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<None Include="EAPMethod.def" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ResourceCompile Include="res\EAPMethod.rc" />
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
Binary file not shown.
@ -1,72 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ImportGroup Label="PropertySheets">
|
|
||||||
<Import Project="Common.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ItemDefinitionGroup>
|
|
||||||
<ClCompile>
|
|
||||||
<PrecompiledHeaderFile>PCH_UI.h</PrecompiledHeaderFile>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<ModuleDefinitionFile>EAPMethod_UI.def</ModuleDefinitionFile>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="PCH_UI.h" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="Main_UI.cpp" />
|
|
||||||
<ClCompile Include="PCH_UI.cpp">
|
|
||||||
<PrecompiledHeader>Create</PrecompiledHeader>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="Register_UI.cpp" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<None Include="EAPMethod_UI.def" />
|
|
||||||
<None Include="locale\EAPMethods.pot" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<POCompile Include="locale\bg_BG.po" />
|
|
||||||
<POCompile Include="locale\ca_ES.po" />
|
|
||||||
<POCompile Include="locale\cs_CZ.po" />
|
|
||||||
<POCompile Include="locale\cy_UK.po" />
|
|
||||||
<POCompile Include="locale\de_DE.po" />
|
|
||||||
<POCompile Include="locale\el_GR.po" />
|
|
||||||
<POCompile Include="locale\es_ES.po" />
|
|
||||||
<POCompile Include="locale\et_EE.po" />
|
|
||||||
<POCompile Include="locale\eu_ES.po" />
|
|
||||||
<POCompile Include="locale\fi_FI.po" />
|
|
||||||
<POCompile Include="locale\fr_CA.po" />
|
|
||||||
<POCompile Include="locale\fr_FR.po" />
|
|
||||||
<POCompile Include="locale\gl_ES.po" />
|
|
||||||
<POCompile Include="locale\hr_HR.po" />
|
|
||||||
<POCompile Include="locale\hu_HU.po" />
|
|
||||||
<POCompile Include="locale\is_IS.po" />
|
|
||||||
<POCompile Include="locale\it_IT.po" />
|
|
||||||
<POCompile Include="locale\ko_KR.po" />
|
|
||||||
<POCompile Include="locale\lt_LT.po" />
|
|
||||||
<POCompile Include="locale\nb_NO.po" />
|
|
||||||
<POCompile Include="locale\nl_NL.po" />
|
|
||||||
<POCompile Include="locale\pl_PL.po" />
|
|
||||||
<POCompile Include="locale\pt_PT.po" />
|
|
||||||
<POCompile Include="locale\ru_RU.po" />
|
|
||||||
<POCompile Include="locale\sk_SK.po" />
|
|
||||||
<POCompile Include="locale\ro_RO.po" />
|
|
||||||
<POCompile Include="locale\sl_SI.po" />
|
|
||||||
<POCompile Include="locale\sr_RS.po" />
|
|
||||||
<POCompile Include="locale\sv_SE.po" />
|
|
||||||
<POCompile Include="locale\tr_TR.po" />
|
|
||||||
<POCompile Include="locale\vi_VN.po" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ResourceCompile Include="res\EAPMethod_UI.rc" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\lib\EAPBase_UI\build\EAPBase_UI.vcxproj">
|
|
||||||
<Project>{d4b54856-be1f-4937-a8f7-495125be76be}</Project>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\lib\wxExtend\build\wxExtendLib.vcxproj">
|
|
||||||
<Project>{d3e29951-d9f5-486d-a167-20ae8e90b1fa}</Project>
|
|
||||||
</ProjectReference>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
17
EAPMethods/EAPTTLS/EAPTTLS.props
Normal file
17
EAPMethods/EAPTTLS/EAPTTLS.props
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ImportGroup Label="PropertySheets">
|
||||||
|
<Import Project="..\build\Common.props" />
|
||||||
|
</ImportGroup>
|
||||||
|
<PropertyGroup Label="UserMacros" />
|
||||||
|
<PropertyGroup />
|
||||||
|
<ItemDefinitionGroup>
|
||||||
|
<ClCompile>
|
||||||
|
<PreprocessorDefinitions>EAPMETHOD_TYPE=21;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<ModuleDefinitionFile>..\build\EAPMethod.def</ModuleDefinitionFile>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemGroup />
|
||||||
|
</Project>
|
Binary file not shown.
169
EAPMethods/EAPTTLS/EAPTTLS.vcxproj
Normal file
169
EAPMethods/EAPTTLS/EAPTTLS.vcxproj
Normal file
@ -0,0 +1,169 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
|
<ProjectConfiguration Include="Debug|ARM64">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>ARM64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Debug|x64">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>x64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|ARM64">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>ARM64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|x64">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>x64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
</ItemGroup>
|
||||||
|
<PropertyGroup Label="Globals">
|
||||||
|
<ProjectGuid>{331B6077-E3E2-4867-B93E-9D3F57280DE7}</ProjectGuid>
|
||||||
|
<RootNamespace>EAPTTLS</RootNamespace>
|
||||||
|
<WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
|
||||||
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
|
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||||
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
|
||||||
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
|
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
<Import Project="..\..\include\$(Platform).props" />
|
||||||
|
<Import Project="..\..\include\$(Configuration).props" />
|
||||||
|
<Import Project="EAPTTLS.props" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
<Import Project="..\..\include\$(Platform).props" />
|
||||||
|
<Import Project="..\..\include\$(Configuration).props" />
|
||||||
|
<Import Project="EAPTTLS.props" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="PropertySheets">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
<Import Project="..\..\include\$(Platform).props" />
|
||||||
|
<Import Project="..\..\include\$(Configuration).props" />
|
||||||
|
<Import Project="EAPTTLS.props" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
<Import Project="..\..\include\$(Platform).props" />
|
||||||
|
<Import Project="..\..\include\$(Configuration).props" />
|
||||||
|
<Import Project="EAPTTLS.props" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
<Import Project="..\..\include\$(Platform).props" />
|
||||||
|
<Import Project="..\..\include\$(Configuration).props" />
|
||||||
|
<Import Project="EAPTTLS.props" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="PropertySheets">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
<Import Project="..\..\include\$(Platform).props" />
|
||||||
|
<Import Project="..\..\include\$(Configuration).props" />
|
||||||
|
<Import Project="EAPTTLS.props" />
|
||||||
|
</ImportGroup>
|
||||||
|
<PropertyGroup Label="UserMacros" />
|
||||||
|
<PropertyGroup />
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" />
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" />
|
||||||
|
<ItemGroup>
|
||||||
|
<ClInclude Include="StdAfx.h" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="..\src\Main.cpp" />
|
||||||
|
<ClCompile Include="StdAfx.cpp">
|
||||||
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
|
||||||
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
|
||||||
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
|
||||||
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">Create</PrecompiledHeader>
|
||||||
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
|
||||||
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">Create</PrecompiledHeader>
|
||||||
|
</ClCompile>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ResourceCompile Include="EAPTTLS.rc" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\..\lib\EAPBase\build\EAPBase.vcxproj">
|
||||||
|
<Project>{ad6816a0-9600-4e01-8c49-39d03d1e791f}</Project>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\lib\Events\build\Events.vcxproj">
|
||||||
|
<Project>{d63f24bd-92a0-4d6b-8b69-ed947e4d2b1b}</Project>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\lib\MSCHAPv2\build\MSCHAPv2.vcxproj">
|
||||||
|
<Project>{86a6d6a0-4b7d-4134-be81-a5755c77584d}</Project>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\lib\PAP\build\PAP.vcxproj">
|
||||||
|
<Project>{36b0cf8a-7794-46c3-8099-825ba962b4c7}</Project>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\lib\TLS\build\TLS.vcxproj">
|
||||||
|
<Project>{4d40cb8a-812e-4f12-b23a-31af743878e8}</Project>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\lib\TTLS\build\TTLS.vcxproj">
|
||||||
|
<Project>{ee0ef0d9-a475-4038-8637-5754724f65b0}</Project>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\lib\WinStd\build\WinStd-15.0.vcxproj">
|
||||||
|
<Project>{47399d91-7eb9-41de-b521-514ba5db0c43}</Project>
|
||||||
|
</ProjectReference>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="..\build\EAPMethod.def" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
|
<ImportGroup Label="ExtensionTargets">
|
||||||
|
</ImportGroup>
|
||||||
|
</Project>
|
@ -1,43 +1,40 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Filter Include="Source Files">
|
<Filter Include="Source Files">
|
||||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter Include="Header Files">
|
<Filter Include="Header Files">
|
||||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter Include="Resource Files">
|
<Filter Include="Resource Files">
|
||||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||||
</Filter>
|
</Filter>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="PCH.h">
|
<ClInclude Include="StdAfx.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="PCH.cpp">
|
<ClCompile Include="StdAfx.cpp">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="Main.cpp">
|
<ClCompile Include="..\src\Main.cpp">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="Register.cpp">
|
</ItemGroup>
|
||||||
<Filter>Source Files</Filter>
|
<ItemGroup>
|
||||||
</ClCompile>
|
<ResourceCompile Include="EAPTTLS.rc">
|
||||||
</ItemGroup>
|
<Filter>Resource Files</Filter>
|
||||||
<ItemGroup>
|
</ResourceCompile>
|
||||||
<ResourceCompile Include="res\EAPMethod.rc">
|
</ItemGroup>
|
||||||
<Filter>Resource Files</Filter>
|
<ItemGroup>
|
||||||
</ResourceCompile>
|
<None Include="..\build\EAPMethod.def">
|
||||||
</ItemGroup>
|
<Filter>Source Files</Filter>
|
||||||
<ItemGroup>
|
</None>
|
||||||
<None Include="EAPMethod.def">
|
</ItemGroup>
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</None>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
</Project>
|
21
EAPMethods/EAPTTLS/StdAfx.cpp
Normal file
21
EAPMethods/EAPTTLS/StdAfx.cpp
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2015-2016 Amebis
|
||||||
|
Copyright 2016 GÉANT
|
||||||
|
|
||||||
|
This file is part of GÉANTLink.
|
||||||
|
|
||||||
|
GÉANTLink is free software: you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
GÉANTLink is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with GÉANTLink. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "StdAfx.h"
|
24
EAPMethods/EAPTTLS/StdAfx.h
Normal file
24
EAPMethods/EAPTTLS/StdAfx.h
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2015-2016 Amebis
|
||||||
|
Copyright 2016 GÉANT
|
||||||
|
|
||||||
|
This file is part of GÉANTLink.
|
||||||
|
|
||||||
|
GÉANTLink is free software: you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
GÉANTLink is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with GÉANTLink. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "../../lib/TTLS/include/Method.h"
|
||||||
|
#include "../../lib/TTLS/include/Module.h"
|
17
EAPMethods/EAPTTLSUI/EAPTTLSUI.props
Normal file
17
EAPMethods/EAPTTLSUI/EAPTTLSUI.props
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ImportGroup Label="PropertySheets">
|
||||||
|
<Import Project="..\build\Common.props" />
|
||||||
|
</ImportGroup>
|
||||||
|
<PropertyGroup Label="UserMacros" />
|
||||||
|
<PropertyGroup />
|
||||||
|
<ItemDefinitionGroup>
|
||||||
|
<ClCompile>
|
||||||
|
<PreprocessorDefinitions>EAPMETHOD_TYPE=21;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<ModuleDefinitionFile>..\build\EAPMethodUI.def</ModuleDefinitionFile>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemGroup />
|
||||||
|
</Project>
|
Binary file not shown.
220
EAPMethods/EAPTTLSUI/EAPTTLSUI.vcxproj
Normal file
220
EAPMethods/EAPTTLSUI/EAPTTLSUI.vcxproj
Normal file
@ -0,0 +1,220 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
|
<ProjectConfiguration Include="Debug|ARM64">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>ARM64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Debug|x64">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>x64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|ARM64">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>ARM64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|x64">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>x64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
</ItemGroup>
|
||||||
|
<PropertyGroup Label="Globals">
|
||||||
|
<ProjectGuid>{DD7A97CA-F18E-43B7-95C4-D06E6A291624}</ProjectGuid>
|
||||||
|
<RootNamespace>EAPTTLSUI</RootNamespace>
|
||||||
|
<WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
|
||||||
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
|
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||||
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
|
||||||
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
|
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
<Import Project="..\..\include\$(Platform).props" />
|
||||||
|
<Import Project="..\..\include\$(Configuration).props" />
|
||||||
|
<Import Project="EAPTTLSUI.props" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
<Import Project="..\..\include\$(Platform).props" />
|
||||||
|
<Import Project="..\..\include\$(Configuration).props" />
|
||||||
|
<Import Project="EAPTTLSUI.props" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="PropertySheets">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
<Import Project="..\..\include\$(Platform).props" />
|
||||||
|
<Import Project="..\..\include\$(Configuration).props" />
|
||||||
|
<Import Project="EAPTTLSUI.props" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
<Import Project="..\..\include\$(Platform).props" />
|
||||||
|
<Import Project="..\..\include\$(Configuration).props" />
|
||||||
|
<Import Project="EAPTTLSUI.props" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
<Import Project="..\..\include\$(Platform).props" />
|
||||||
|
<Import Project="..\..\include\$(Configuration).props" />
|
||||||
|
<Import Project="EAPTTLSUI.props" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="PropertySheets">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
<Import Project="..\..\include\$(Platform).props" />
|
||||||
|
<Import Project="..\..\include\$(Configuration).props" />
|
||||||
|
<Import Project="EAPTTLSUI.props" />
|
||||||
|
</ImportGroup>
|
||||||
|
<PropertyGroup Label="UserMacros" />
|
||||||
|
<PropertyGroup />
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" />
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" />
|
||||||
|
<ItemGroup>
|
||||||
|
<ClInclude Include="StdAfx.h" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="..\src\Main_UI.cpp" />
|
||||||
|
<ClCompile Include="StdAfx.cpp">
|
||||||
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
|
||||||
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
|
||||||
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
|
||||||
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">Create</PrecompiledHeader>
|
||||||
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
|
||||||
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">Create</PrecompiledHeader>
|
||||||
|
</ClCompile>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ResourceCompile Include="EAPTTLSUI.rc" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\..\lib\EAPBase\build\EAPBase.vcxproj">
|
||||||
|
<Project>{ad6816a0-9600-4e01-8c49-39d03d1e791f}</Project>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\lib\EAPBase_UI\build\EAPBase_UI.vcxproj">
|
||||||
|
<Project>{d4b54856-be1f-4937-a8f7-495125be76be}</Project>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\lib\Events\build\Events.vcxproj">
|
||||||
|
<Project>{d63f24bd-92a0-4d6b-8b69-ed947e4d2b1b}</Project>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\lib\MSCHAPv2\build\MSCHAPv2.vcxproj">
|
||||||
|
<Project>{86a6d6a0-4b7d-4134-be81-a5755c77584d}</Project>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\lib\MSCHAPv2_UI\build\MSCHAPv2_UI.vcxproj">
|
||||||
|
<Project>{7af5b922-7c17-428a-97e0-09e3b41a684d}</Project>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\lib\PAP\build\PAP.vcxproj">
|
||||||
|
<Project>{36b0cf8a-7794-46c3-8099-825ba962b4c7}</Project>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\lib\PAP_UI\build\PAP_UI.vcxproj">
|
||||||
|
<Project>{3d309c2e-64ab-4bc4-a16d-468571a2bc1a}</Project>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\lib\TLS\build\TLS.vcxproj">
|
||||||
|
<Project>{4d40cb8a-812e-4f12-b23a-31af743878e8}</Project>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\lib\TLS_UI\build\TLS_UI.vcxproj">
|
||||||
|
<Project>{9a25c261-8ade-4938-8393-e857ef0e37e9}</Project>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\lib\TTLS\build\TTLS.vcxproj">
|
||||||
|
<Project>{ee0ef0d9-a475-4038-8637-5754724f65b0}</Project>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\lib\TTLS_UI\build\TTLS_UI.vcxproj">
|
||||||
|
<Project>{42f0f0f4-c928-4860-a4e4-94991c2c3d90}</Project>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\lib\WinStd\build\WinStd-15.0.vcxproj">
|
||||||
|
<Project>{47399d91-7eb9-41de-b521-514ba5db0c43}</Project>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\lib\wxExtend\build\wxExtendLib-15.0.vcxproj">
|
||||||
|
<Project>{d3e29951-d9f5-486d-a167-20ae8e90b1fa}</Project>
|
||||||
|
</ProjectReference>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="..\build\EAPMethodUI.def" />
|
||||||
|
<None Include="..\locale\EAPMethods.pot" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<POCompile Include="..\locale\bg_BG.po" />
|
||||||
|
<POCompile Include="..\locale\ca_ES.po" />
|
||||||
|
<POCompile Include="..\locale\cs_CZ.po" />
|
||||||
|
<POCompile Include="..\locale\cy_UK.po" />
|
||||||
|
<POCompile Include="..\locale\de_DE.po" />
|
||||||
|
<POCompile Include="..\locale\el_GR.po" />
|
||||||
|
<POCompile Include="..\locale\es_ES.po" />
|
||||||
|
<POCompile Include="..\locale\eu_ES.po" />
|
||||||
|
<POCompile Include="..\locale\fi_FI.po" />
|
||||||
|
<POCompile Include="..\locale\fr_CA.po" />
|
||||||
|
<POCompile Include="..\locale\fr_FR.po" />
|
||||||
|
<POCompile Include="..\locale\gl_ES.po" />
|
||||||
|
<POCompile Include="..\locale\hr_HR.po" />
|
||||||
|
<POCompile Include="..\locale\hu_HU.po" />
|
||||||
|
<POCompile Include="..\locale\is_IS.po" />
|
||||||
|
<POCompile Include="..\locale\it_IT.po" />
|
||||||
|
<POCompile Include="..\locale\ko_KR.po" />
|
||||||
|
<POCompile Include="..\locale\lt_LT.po" />
|
||||||
|
<POCompile Include="..\locale\nb_NO.po" />
|
||||||
|
<POCompile Include="..\locale\nl_NL.po" />
|
||||||
|
<POCompile Include="..\locale\pl_PL.po" />
|
||||||
|
<POCompile Include="..\locale\pt_PT.po" />
|
||||||
|
<POCompile Include="..\locale\ru_RU.po" />
|
||||||
|
<POCompile Include="..\locale\sk_SK.po" />
|
||||||
|
<POCompile Include="..\locale\sl_SI.po" />
|
||||||
|
<POCompile Include="..\locale\sr_RS.po" />
|
||||||
|
<POCompile Include="..\locale\sv_SE.po" />
|
||||||
|
<POCompile Include="..\locale\tr_TR.po" />
|
||||||
|
<POCompile Include="..\locale\vi_VN.po" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
|
<ImportGroup Label="ExtensionTargets">
|
||||||
|
<Import Project="..\..\include\xgettext.targets" />
|
||||||
|
</ImportGroup>
|
||||||
|
</Project>
|
@ -1,145 +1,136 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Filter Include="Source Files">
|
<Filter Include="Source Files">
|
||||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter Include="Header Files">
|
<Filter Include="Header Files">
|
||||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter Include="Resource Files">
|
<Filter Include="Resource Files">
|
||||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter Include="Resource Files\Localization">
|
<Filter Include="Resource Files\Localization">
|
||||||
<UniqueIdentifier>{e43059ae-37ac-4b28-84fb-18d1b3972b30}</UniqueIdentifier>
|
<UniqueIdentifier>{e43059ae-37ac-4b28-84fb-18d1b3972b30}</UniqueIdentifier>
|
||||||
<Extensions>po;pot</Extensions>
|
<Extensions>po;pot</Extensions>
|
||||||
</Filter>
|
</Filter>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="PCH_UI.h">
|
<ClInclude Include="StdAfx.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="PCH_UI.cpp">
|
<ClCompile Include="StdAfx.cpp">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="Main_UI.cpp">
|
<ClCompile Include="..\src\Main_UI.cpp">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="Register_UI.cpp">
|
</ItemGroup>
|
||||||
<Filter>Source Files</Filter>
|
<ItemGroup>
|
||||||
</ClCompile>
|
<ResourceCompile Include="EAPTTLSUI.rc">
|
||||||
</ItemGroup>
|
<Filter>Resource Files</Filter>
|
||||||
<ItemGroup>
|
</ResourceCompile>
|
||||||
<ResourceCompile Include="res\EAPMethod_UI.rc">
|
</ItemGroup>
|
||||||
<Filter>Resource Files</Filter>
|
<ItemGroup>
|
||||||
</ResourceCompile>
|
<None Include="..\build\EAPMethodUI.def">
|
||||||
</ItemGroup>
|
<Filter>Source Files</Filter>
|
||||||
<ItemGroup>
|
</None>
|
||||||
<None Include="EAPMethod_UI.def">
|
<None Include="..\locale\EAPMethods.pot">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Resource Files\Localization</Filter>
|
||||||
</None>
|
</None>
|
||||||
<None Include="locale\EAPMethods.pot">
|
</ItemGroup>
|
||||||
<Filter>Resource Files\Localization</Filter>
|
<ItemGroup>
|
||||||
</None>
|
<POCompile Include="..\locale\sl_SI.po">
|
||||||
</ItemGroup>
|
<Filter>Resource Files\Localization</Filter>
|
||||||
<ItemGroup>
|
</POCompile>
|
||||||
<POCompile Include="locale\ro_RO.po">
|
<POCompile Include="..\locale\bg_BG.po">
|
||||||
<Filter>Resource Files\Localization</Filter>
|
<Filter>Resource Files\Localization</Filter>
|
||||||
</POCompile>
|
</POCompile>
|
||||||
<POCompile Include="locale\sl_SI.po">
|
<POCompile Include="..\locale\ca_ES.po">
|
||||||
<Filter>Resource Files\Localization</Filter>
|
<Filter>Resource Files\Localization</Filter>
|
||||||
</POCompile>
|
</POCompile>
|
||||||
<POCompile Include="locale\bg_BG.po">
|
<POCompile Include="..\locale\cs_CZ.po">
|
||||||
<Filter>Resource Files\Localization</Filter>
|
<Filter>Resource Files\Localization</Filter>
|
||||||
</POCompile>
|
</POCompile>
|
||||||
<POCompile Include="locale\ca_ES.po">
|
<POCompile Include="..\locale\cy_UK.po">
|
||||||
<Filter>Resource Files\Localization</Filter>
|
<Filter>Resource Files\Localization</Filter>
|
||||||
</POCompile>
|
</POCompile>
|
||||||
<POCompile Include="locale\cs_CZ.po">
|
<POCompile Include="..\locale\de_DE.po">
|
||||||
<Filter>Resource Files\Localization</Filter>
|
<Filter>Resource Files\Localization</Filter>
|
||||||
</POCompile>
|
</POCompile>
|
||||||
<POCompile Include="locale\cy_UK.po">
|
<POCompile Include="..\locale\el_GR.po">
|
||||||
<Filter>Resource Files\Localization</Filter>
|
<Filter>Resource Files\Localization</Filter>
|
||||||
</POCompile>
|
</POCompile>
|
||||||
<POCompile Include="locale\de_DE.po">
|
<POCompile Include="..\locale\es_ES.po">
|
||||||
<Filter>Resource Files\Localization</Filter>
|
<Filter>Resource Files\Localization</Filter>
|
||||||
</POCompile>
|
</POCompile>
|
||||||
<POCompile Include="locale\el_GR.po">
|
<POCompile Include="..\locale\eu_ES.po">
|
||||||
<Filter>Resource Files\Localization</Filter>
|
<Filter>Resource Files\Localization</Filter>
|
||||||
</POCompile>
|
</POCompile>
|
||||||
<POCompile Include="locale\es_ES.po">
|
<POCompile Include="..\locale\fi_FI.po">
|
||||||
<Filter>Resource Files\Localization</Filter>
|
<Filter>Resource Files\Localization</Filter>
|
||||||
</POCompile>
|
</POCompile>
|
||||||
<POCompile Include="locale\eu_ES.po">
|
<POCompile Include="..\locale\fr_CA.po">
|
||||||
<Filter>Resource Files\Localization</Filter>
|
<Filter>Resource Files\Localization</Filter>
|
||||||
</POCompile>
|
</POCompile>
|
||||||
<POCompile Include="locale\fi_FI.po">
|
<POCompile Include="..\locale\fr_FR.po">
|
||||||
<Filter>Resource Files\Localization</Filter>
|
<Filter>Resource Files\Localization</Filter>
|
||||||
</POCompile>
|
</POCompile>
|
||||||
<POCompile Include="locale\fr_CA.po">
|
<POCompile Include="..\locale\gl_ES.po">
|
||||||
<Filter>Resource Files\Localization</Filter>
|
<Filter>Resource Files\Localization</Filter>
|
||||||
</POCompile>
|
</POCompile>
|
||||||
<POCompile Include="locale\fr_FR.po">
|
<POCompile Include="..\locale\hr_HR.po">
|
||||||
<Filter>Resource Files\Localization</Filter>
|
<Filter>Resource Files\Localization</Filter>
|
||||||
</POCompile>
|
</POCompile>
|
||||||
<POCompile Include="locale\gl_ES.po">
|
<POCompile Include="..\locale\hu_HU.po">
|
||||||
<Filter>Resource Files\Localization</Filter>
|
<Filter>Resource Files\Localization</Filter>
|
||||||
</POCompile>
|
</POCompile>
|
||||||
<POCompile Include="locale\hr_HR.po">
|
<POCompile Include="..\locale\is_IS.po">
|
||||||
<Filter>Resource Files\Localization</Filter>
|
<Filter>Resource Files\Localization</Filter>
|
||||||
</POCompile>
|
</POCompile>
|
||||||
<POCompile Include="locale\hu_HU.po">
|
<POCompile Include="..\locale\it_IT.po">
|
||||||
<Filter>Resource Files\Localization</Filter>
|
<Filter>Resource Files\Localization</Filter>
|
||||||
</POCompile>
|
</POCompile>
|
||||||
<POCompile Include="locale\is_IS.po">
|
<POCompile Include="..\locale\lt_LT.po">
|
||||||
<Filter>Resource Files\Localization</Filter>
|
<Filter>Resource Files\Localization</Filter>
|
||||||
</POCompile>
|
</POCompile>
|
||||||
<POCompile Include="locale\it_IT.po">
|
<POCompile Include="..\locale\nb_NO.po">
|
||||||
<Filter>Resource Files\Localization</Filter>
|
<Filter>Resource Files\Localization</Filter>
|
||||||
</POCompile>
|
</POCompile>
|
||||||
<POCompile Include="locale\lt_LT.po">
|
<POCompile Include="..\locale\nl_NL.po">
|
||||||
<Filter>Resource Files\Localization</Filter>
|
<Filter>Resource Files\Localization</Filter>
|
||||||
</POCompile>
|
</POCompile>
|
||||||
<POCompile Include="locale\nb_NO.po">
|
<POCompile Include="..\locale\pl_PL.po">
|
||||||
<Filter>Resource Files\Localization</Filter>
|
<Filter>Resource Files\Localization</Filter>
|
||||||
</POCompile>
|
</POCompile>
|
||||||
<POCompile Include="locale\nl_NL.po">
|
<POCompile Include="..\locale\pt_PT.po">
|
||||||
<Filter>Resource Files\Localization</Filter>
|
<Filter>Resource Files\Localization</Filter>
|
||||||
</POCompile>
|
</POCompile>
|
||||||
<POCompile Include="locale\pl_PL.po">
|
<POCompile Include="..\locale\ru_RU.po">
|
||||||
<Filter>Resource Files\Localization</Filter>
|
<Filter>Resource Files\Localization</Filter>
|
||||||
</POCompile>
|
</POCompile>
|
||||||
<POCompile Include="locale\pt_PT.po">
|
<POCompile Include="..\locale\sk_SK.po">
|
||||||
<Filter>Resource Files\Localization</Filter>
|
<Filter>Resource Files\Localization</Filter>
|
||||||
</POCompile>
|
</POCompile>
|
||||||
<POCompile Include="locale\ru_RU.po">
|
<POCompile Include="..\locale\sr_RS.po">
|
||||||
<Filter>Resource Files\Localization</Filter>
|
<Filter>Resource Files\Localization</Filter>
|
||||||
</POCompile>
|
</POCompile>
|
||||||
<POCompile Include="locale\sk_SK.po">
|
<POCompile Include="..\locale\sv_SE.po">
|
||||||
<Filter>Resource Files\Localization</Filter>
|
<Filter>Resource Files\Localization</Filter>
|
||||||
</POCompile>
|
</POCompile>
|
||||||
<POCompile Include="locale\sr_RS.po">
|
<POCompile Include="..\locale\tr_TR.po">
|
||||||
<Filter>Resource Files\Localization</Filter>
|
<Filter>Resource Files\Localization</Filter>
|
||||||
</POCompile>
|
</POCompile>
|
||||||
<POCompile Include="locale\sv_SE.po">
|
<POCompile Include="..\locale\vi_VN.po">
|
||||||
<Filter>Resource Files\Localization</Filter>
|
<Filter>Resource Files\Localization</Filter>
|
||||||
</POCompile>
|
</POCompile>
|
||||||
<POCompile Include="locale\tr_TR.po">
|
<POCompile Include="..\locale\ko_KR.po">
|
||||||
<Filter>Resource Files\Localization</Filter>
|
<Filter>Resource Files\Localization</Filter>
|
||||||
</POCompile>
|
</POCompile>
|
||||||
<POCompile Include="locale\vi_VN.po">
|
</ItemGroup>
|
||||||
<Filter>Resource Files\Localization</Filter>
|
|
||||||
</POCompile>
|
|
||||||
<POCompile Include="locale\ko_KR.po">
|
|
||||||
<Filter>Resource Files\Localization</Filter>
|
|
||||||
</POCompile>
|
|
||||||
<POCompile Include="locale\et_EE.po">
|
|
||||||
<Filter>Resource Files\Localization</Filter>
|
|
||||||
</POCompile>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
</Project>
|
21
EAPMethods/EAPTTLSUI/StdAfx.cpp
Normal file
21
EAPMethods/EAPTTLSUI/StdAfx.cpp
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2015-2016 Amebis
|
||||||
|
Copyright 2016 GÉANT
|
||||||
|
|
||||||
|
This file is part of GÉANTLink.
|
||||||
|
|
||||||
|
GÉANTLink is free software: you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
GÉANTLink is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with GÉANTLink. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "StdAfx.h"
|
23
EAPMethods/EAPTTLSUI/StdAfx.h
Normal file
23
EAPMethods/EAPTTLSUI/StdAfx.h
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2015-2016 Amebis
|
||||||
|
Copyright 2016 GÉANT
|
||||||
|
|
||||||
|
This file is part of GÉANTLink.
|
||||||
|
|
||||||
|
GÉANTLink is free software: you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
GÉANTLink is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with GÉANTLink. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "../../lib/TTLS_UI/include/Module.h"
|
9
EAPMethods/MSIBuild.EAP-TTLS/.gitignore
vendored
9
EAPMethods/MSIBuild.EAP-TTLS/.gitignore
vendored
@ -1,9 +0,0 @@
|
|||||||
/*-1.idt
|
|
||||||
/*-2.idt
|
|
||||||
/*-2.idtx
|
|
||||||
/*.Binary-1
|
|
||||||
/*.Binary-2
|
|
||||||
/*.Icon-1
|
|
||||||
/*.Icon-2
|
|
||||||
/*.lst
|
|
||||||
/*.msm
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,895 +0,0 @@
|
|||||||
/*
|
|
||||||
SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
Copyright © 2015-2022 Amebis
|
|
||||||
Copyright © 2016 GÉANT
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "PCH.h"
|
|
||||||
|
|
||||||
#pragma comment(lib, "Ws2_32.lib")
|
|
||||||
|
|
||||||
using namespace std;
|
|
||||||
using namespace winstd;
|
|
||||||
|
|
||||||
|
|
||||||
EAPMETHOD_PEER g_peer;
|
|
||||||
|
|
||||||
|
|
||||||
///
|
|
||||||
/// DLL main entry point
|
|
||||||
///
|
|
||||||
/// \sa [DllMain entry point](https://msdn.microsoft.com/en-us/library/windows/desktop/ms682583.aspx)
|
|
||||||
///
|
|
||||||
BOOL WINAPI DllMain(_In_ HINSTANCE hinstDLL, _In_ DWORD fdwReason, _In_ LPVOID lpvReserved)
|
|
||||||
{
|
|
||||||
UNREFERENCED_PARAMETER(lpvReserved);
|
|
||||||
|
|
||||||
if (fdwReason == DLL_PROCESS_ATTACH) {
|
|
||||||
#ifdef _DEBUG
|
|
||||||
//Sleep(10000);
|
|
||||||
_CrtSetDbgFlag(_crtDbgFlag | _CRTDBG_ALLOC_MEM_DF | _CRTDBG_CHECK_ALWAYS_DF | _CRTDBG_CHECK_CRT_DF | _CRTDBG_LEAK_CHECK_DF);
|
|
||||||
#endif
|
|
||||||
g_peer.m_instance = hinstDLL;
|
|
||||||
}
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Releases all memory associated with an opaque user interface context data buffer.
|
|
||||||
///
|
|
||||||
/// \sa [EapPeerFreeMemory function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363606.aspx)
|
|
||||||
///
|
|
||||||
_Use_decl_annotations_
|
|
||||||
VOID WINAPI EapPeerFreeMemory(void *pUIContextData)
|
|
||||||
{
|
|
||||||
event_fn_auto event_auto(g_peer.get_event_fn_auto(__FUNCTION__));
|
|
||||||
|
|
||||||
if (pUIContextData)
|
|
||||||
g_peer.free_memory((BYTE*)pUIContextData);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Releases error-specific memory allocated by the EAP peer method.
|
|
||||||
///
|
|
||||||
/// \sa [EapPeerFreeErrorMemory function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363605.aspx)
|
|
||||||
///
|
|
||||||
_Use_decl_annotations_
|
|
||||||
VOID WINAPI EapPeerFreeErrorMemory(EAP_ERROR *ppEapError)
|
|
||||||
{
|
|
||||||
event_fn_auto event_auto(g_peer.get_event_fn_auto(__FUNCTION__));
|
|
||||||
|
|
||||||
if (ppEapError)
|
|
||||||
g_peer.free_error_memory(ppEapError);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Obtains a set of function pointers for an implementation of the EAP peer method currently loaded on the EapHost service.
|
|
||||||
///
|
|
||||||
/// \sa [EapPeerGetInfo function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363608.aspx)
|
|
||||||
///
|
|
||||||
_Use_decl_annotations_
|
|
||||||
DWORD WINAPI EapPeerGetInfo(EAP_TYPE* pEapType, EAP_PEER_METHOD_ROUTINES* pEapPeerMethodRoutines, EAP_ERROR **ppEapError)
|
|
||||||
{
|
|
||||||
DWORD dwResult = ERROR_SUCCESS;
|
|
||||||
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
|
||||||
#ifdef _DEBUG
|
|
||||||
//Sleep(10000);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Initialize output parameters.
|
|
||||||
if (pEapPeerMethodRoutines)
|
|
||||||
memset(pEapPeerMethodRoutines, 0, sizeof(*pEapPeerMethodRoutines));
|
|
||||||
if (ppEapError)
|
|
||||||
*ppEapError = NULL;
|
|
||||||
|
|
||||||
// Parameter check
|
|
||||||
if (!pEapType || !pEapPeerMethodRoutines)
|
|
||||||
return dwResult = ERROR_INVALID_PARAMETER;
|
|
||||||
if (pEapType->type != EAPMETHOD_TYPE)
|
|
||||||
return dwResult = ERROR_NOT_SUPPORTED;
|
|
||||||
|
|
||||||
pEapPeerMethodRoutines->dwVersion =
|
|
||||||
((PRODUCT_VERSION_MAJ & 0xff) << 24) |
|
|
||||||
((PRODUCT_VERSION_MIN & 0xff) << 16) |
|
|
||||||
((PRODUCT_VERSION_REV & 0xff) << 8) |
|
|
||||||
(PRODUCT_VERSION_BUILD & 0xff);
|
|
||||||
pEapPeerMethodRoutines->pEapType = NULL;
|
|
||||||
|
|
||||||
pEapPeerMethodRoutines->EapPeerInitialize = EapPeerInitialize;
|
|
||||||
pEapPeerMethodRoutines->EapPeerShutdown = EapPeerShutdown;
|
|
||||||
pEapPeerMethodRoutines->EapPeerBeginSession = EapPeerBeginSession;
|
|
||||||
pEapPeerMethodRoutines->EapPeerEndSession = EapPeerEndSession;
|
|
||||||
pEapPeerMethodRoutines->EapPeerSetCredentials = NULL; // Always NULL unless we want to use generic credential UI
|
|
||||||
pEapPeerMethodRoutines->EapPeerGetIdentity = EapPeerGetIdentity;
|
|
||||||
pEapPeerMethodRoutines->EapPeerProcessRequestPacket = EapPeerProcessRequestPacket;
|
|
||||||
pEapPeerMethodRoutines->EapPeerGetResponsePacket = EapPeerGetResponsePacket;
|
|
||||||
pEapPeerMethodRoutines->EapPeerGetResult = EapPeerGetResult;
|
|
||||||
pEapPeerMethodRoutines->EapPeerGetUIContext = EapPeerGetUIContext;
|
|
||||||
pEapPeerMethodRoutines->EapPeerSetUIContext = EapPeerSetUIContext;
|
|
||||||
pEapPeerMethodRoutines->EapPeerGetResponseAttributes = EapPeerGetResponseAttributes;
|
|
||||||
pEapPeerMethodRoutines->EapPeerSetResponseAttributes = EapPeerSetResponseAttributes;
|
|
||||||
|
|
||||||
return dwResult;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#pragma warning(push)
|
|
||||||
#pragma warning(disable: 4702) // Compiler is smart enough to find out the initialize() method is empty => never throws an exception.
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Initializes an EAP peer method for EapHost.
|
|
||||||
///
|
|
||||||
/// \sa [EapPeerInitialize function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363613.aspx)
|
|
||||||
///
|
|
||||||
//_Use_decl_annotations_
|
|
||||||
DWORD APIENTRY EapPeerInitialize(EAP_ERROR **ppEapError)
|
|
||||||
{
|
|
||||||
DWORD dwResult = ERROR_SUCCESS;
|
|
||||||
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
|
||||||
#ifdef _DEBUG
|
|
||||||
//Sleep(10000);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Initialize output parameters.
|
|
||||||
if (ppEapError)
|
|
||||||
*ppEapError = NULL;
|
|
||||||
|
|
||||||
try {
|
|
||||||
g_peer.initialize();
|
|
||||||
} catch (std::exception &err) {
|
|
||||||
dwResult = g_peer.log_error(ppEapError, err);
|
|
||||||
} catch (...) {
|
|
||||||
dwResult = ERROR_INVALID_DATA;
|
|
||||||
}
|
|
||||||
|
|
||||||
return dwResult;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma warning(pop)
|
|
||||||
|
|
||||||
|
|
||||||
#pragma warning(push)
|
|
||||||
#pragma warning(disable: 4702) // Compiler is smart enough to find out the shutdown() method is empty => never throws an exception.
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Shuts down the EAP method and prepares to unload its corresponding DLL.
|
|
||||||
///
|
|
||||||
/// \sa [EapPeerShutdown function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363627.aspx)
|
|
||||||
///
|
|
||||||
//_Use_decl_annotations_
|
|
||||||
DWORD APIENTRY EapPeerShutdown(EAP_ERROR **ppEapError)
|
|
||||||
{
|
|
||||||
DWORD dwResult = ERROR_SUCCESS;
|
|
||||||
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
|
||||||
#ifdef _DEBUG
|
|
||||||
//Sleep(10000);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Initialize output parameters.
|
|
||||||
if (ppEapError)
|
|
||||||
*ppEapError = NULL;
|
|
||||||
|
|
||||||
try {
|
|
||||||
g_peer.shutdown();
|
|
||||||
} catch (std::exception &err) {
|
|
||||||
dwResult = g_peer.log_error(ppEapError, err);
|
|
||||||
} catch (...) {
|
|
||||||
dwResult = ERROR_INVALID_DATA;
|
|
||||||
}
|
|
||||||
|
|
||||||
return dwResult;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma warning(pop)
|
|
||||||
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Returns the user data and user identity after being called by EapHost.
|
|
||||||
///
|
|
||||||
/// \sa [EapPeerGetIdentity function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363607.aspx)
|
|
||||||
///
|
|
||||||
_Use_decl_annotations_
|
|
||||||
DWORD APIENTRY EapPeerGetIdentity(
|
|
||||||
DWORD dwFlags,
|
|
||||||
DWORD dwConnectionDataSize,
|
|
||||||
const BYTE *pConnectionData,
|
|
||||||
DWORD dwUserDataSize,
|
|
||||||
const BYTE *pUserData,
|
|
||||||
HANDLE hTokenImpersonateUser,
|
|
||||||
BOOL *pfInvokeUI,
|
|
||||||
DWORD *pdwUserDataOutSize,
|
|
||||||
BYTE **ppUserDataOut,
|
|
||||||
WCHAR **ppwszIdentity,
|
|
||||||
EAP_ERROR **ppEapError)
|
|
||||||
{
|
|
||||||
DWORD dwResult = ERROR_SUCCESS;
|
|
||||||
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
|
||||||
#ifdef _DEBUG
|
|
||||||
//Sleep(10000);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Initialize output parameters.
|
|
||||||
if (pfInvokeUI)
|
|
||||||
*pfInvokeUI = FALSE;
|
|
||||||
if (pdwUserDataOutSize)
|
|
||||||
*pdwUserDataOutSize = 0;
|
|
||||||
if (ppUserDataOut)
|
|
||||||
*ppUserDataOut = NULL;
|
|
||||||
if (ppwszIdentity)
|
|
||||||
*ppwszIdentity = NULL;
|
|
||||||
if (ppEapError)
|
|
||||||
*ppEapError = NULL;
|
|
||||||
|
|
||||||
// Parameter check
|
|
||||||
if (!pConnectionData && dwConnectionDataSize || !pUserData && dwUserDataSize || !pfInvokeUI || !pdwUserDataOutSize || !ppUserDataOut || !ppwszIdentity)
|
|
||||||
return dwResult = ERROR_INVALID_PARAMETER;
|
|
||||||
|
|
||||||
try {
|
|
||||||
g_peer.get_identity(dwFlags, pConnectionData, dwConnectionDataSize, pUserData, dwUserDataSize, ppUserDataOut, pdwUserDataOutSize, hTokenImpersonateUser, pfInvokeUI, ppwszIdentity);
|
|
||||||
} catch (std::exception &err) {
|
|
||||||
dwResult = g_peer.log_error(ppEapError, err);
|
|
||||||
} catch (...) {
|
|
||||||
dwResult = ERROR_INVALID_DATA;
|
|
||||||
}
|
|
||||||
|
|
||||||
return dwResult;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Starts an EAP authentication session on the peer EapHost using the EAP method.
|
|
||||||
///
|
|
||||||
/// \sa [EapPeerBeginSession function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363600.aspx)
|
|
||||||
///
|
|
||||||
//_Use_decl_annotations_
|
|
||||||
DWORD APIENTRY EapPeerBeginSession(
|
|
||||||
DWORD dwFlags,
|
|
||||||
const EapAttributes *pAttributeArray,
|
|
||||||
HANDLE hTokenImpersonateUser,
|
|
||||||
DWORD dwConnectionDataSize,
|
|
||||||
/*const*/ BYTE *pConnectionData,
|
|
||||||
DWORD dwUserDataSize,
|
|
||||||
/*const*/ BYTE *pUserData,
|
|
||||||
DWORD dwMaxSendPacketSize,
|
|
||||||
EAP_SESSION_HANDLE *phSession,
|
|
||||||
EAP_ERROR **ppEapError)
|
|
||||||
{
|
|
||||||
DWORD dwResult = ERROR_SUCCESS;
|
|
||||||
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
|
||||||
#ifdef _DEBUG
|
|
||||||
//Sleep(10000);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Initialize output parameters.
|
|
||||||
if (phSession)
|
|
||||||
*phSession = NULL;
|
|
||||||
if (ppEapError)
|
|
||||||
*ppEapError = NULL;
|
|
||||||
|
|
||||||
// Parameter check
|
|
||||||
if (!pConnectionData && dwConnectionDataSize || !pUserData && dwUserDataSize || !phSession)
|
|
||||||
return dwResult = ERROR_INVALID_PARAMETER;
|
|
||||||
|
|
||||||
try {
|
|
||||||
*phSession = g_peer.begin_session(dwFlags, pAttributeArray, hTokenImpersonateUser, pConnectionData, dwConnectionDataSize, pUserData, dwUserDataSize, dwMaxSendPacketSize);
|
|
||||||
} catch (std::exception &err) {
|
|
||||||
dwResult = g_peer.log_error(ppEapError, err);
|
|
||||||
} catch (...) {
|
|
||||||
dwResult = ERROR_INVALID_DATA;
|
|
||||||
}
|
|
||||||
|
|
||||||
return dwResult;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Ends an EAP authentication session for the EAP method.
|
|
||||||
///
|
|
||||||
/// \sa [EapPeerEndSession function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363604.aspx)
|
|
||||||
///
|
|
||||||
//_Use_decl_annotations_
|
|
||||||
DWORD APIENTRY EapPeerEndSession(
|
|
||||||
EAP_SESSION_HANDLE hSession,
|
|
||||||
EAP_ERROR **ppEapError)
|
|
||||||
{
|
|
||||||
DWORD dwResult = ERROR_SUCCESS;
|
|
||||||
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
|
||||||
#ifdef _DEBUG
|
|
||||||
//Sleep(10000);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Initialize output parameters.
|
|
||||||
if (ppEapError)
|
|
||||||
*ppEapError = NULL;
|
|
||||||
|
|
||||||
// Parameter check
|
|
||||||
if (!hSession)
|
|
||||||
return dwResult = ERROR_INVALID_PARAMETER;
|
|
||||||
|
|
||||||
try {
|
|
||||||
g_peer.end_session(hSession);
|
|
||||||
} catch (std::exception &err) {
|
|
||||||
dwResult = g_peer.log_error(ppEapError, err);
|
|
||||||
} catch (...) {
|
|
||||||
dwResult = ERROR_INVALID_DATA;
|
|
||||||
}
|
|
||||||
|
|
||||||
return dwResult;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Processes a packet received by EapHost from a supplicant.
|
|
||||||
///
|
|
||||||
/// \sa [EapPeerProcessRequestPacket function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363621.aspx)
|
|
||||||
///
|
|
||||||
//_Use_decl_annotations_
|
|
||||||
DWORD APIENTRY EapPeerProcessRequestPacket(
|
|
||||||
EAP_SESSION_HANDLE hSession,
|
|
||||||
DWORD dwReceivedPacketSize,
|
|
||||||
/*const*/ EapPacket *pReceivedPacket,
|
|
||||||
EapPeerMethodOutput *pEapOutput,
|
|
||||||
EAP_ERROR **ppEapError)
|
|
||||||
{
|
|
||||||
DWORD dwResult = ERROR_SUCCESS;
|
|
||||||
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
|
||||||
#ifdef _DEBUG
|
|
||||||
//Sleep(10000);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Initialize output parameters.
|
|
||||||
if (pEapOutput)
|
|
||||||
memset(pEapOutput, 0, sizeof(*pEapOutput));
|
|
||||||
if (ppEapError)
|
|
||||||
*ppEapError = NULL;
|
|
||||||
|
|
||||||
// Parameter check
|
|
||||||
if (!hSession || !pReceivedPacket || dwReceivedPacketSize < sizeof(EapPacket) || pReceivedPacket->Data[0] != EAPMETHOD_TYPE || !pEapOutput)
|
|
||||||
return dwResult = ERROR_INVALID_PARAMETER;
|
|
||||||
|
|
||||||
try {
|
|
||||||
g_peer.process_request_packet(hSession, pReceivedPacket, dwReceivedPacketSize, pEapOutput);
|
|
||||||
} catch (std::exception &err) {
|
|
||||||
dwResult = g_peer.log_error(ppEapError, err);
|
|
||||||
} catch (...) {
|
|
||||||
dwResult = ERROR_INVALID_DATA;
|
|
||||||
}
|
|
||||||
|
|
||||||
return dwResult;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Obtains a response packet from the EAP method.
|
|
||||||
///
|
|
||||||
/// \sa [EapPeerGetResponsePacket function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363610.aspx)
|
|
||||||
///
|
|
||||||
//_Use_decl_annotations_
|
|
||||||
DWORD APIENTRY EapPeerGetResponsePacket(
|
|
||||||
EAP_SESSION_HANDLE hSession,
|
|
||||||
DWORD *pdwSendPacketSize,
|
|
||||||
EapPacket *pSendPacket,
|
|
||||||
EAP_ERROR **ppEapError)
|
|
||||||
{
|
|
||||||
DWORD dwResult = ERROR_SUCCESS;
|
|
||||||
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
|
||||||
#ifdef _DEBUG
|
|
||||||
//Sleep(10000);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Initialize output parameters.
|
|
||||||
if (ppEapError)
|
|
||||||
*ppEapError = NULL;
|
|
||||||
|
|
||||||
// Parameter check
|
|
||||||
if (!hSession || !pdwSendPacketSize || !pSendPacket && *pdwSendPacketSize)
|
|
||||||
return dwResult = ERROR_INVALID_PARAMETER;
|
|
||||||
|
|
||||||
try {
|
|
||||||
g_peer.get_response_packet(hSession, pSendPacket, pdwSendPacketSize);
|
|
||||||
} catch (std::exception &err) {
|
|
||||||
dwResult = g_peer.log_error(ppEapError, err);
|
|
||||||
} catch (...) {
|
|
||||||
dwResult = ERROR_INVALID_DATA;
|
|
||||||
}
|
|
||||||
|
|
||||||
return dwResult;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Obtains the result of an authentication session from the EAP method.
|
|
||||||
///
|
|
||||||
/// \sa [EapPeerGetResult function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363611.aspx)
|
|
||||||
///
|
|
||||||
//_Use_decl_annotations_
|
|
||||||
DWORD APIENTRY EapPeerGetResult(
|
|
||||||
EAP_SESSION_HANDLE hSession,
|
|
||||||
EapPeerMethodResultReason reason,
|
|
||||||
EapPeerMethodResult *pResult,
|
|
||||||
EAP_ERROR **ppEapError)
|
|
||||||
{
|
|
||||||
DWORD dwResult = ERROR_SUCCESS;
|
|
||||||
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
|
||||||
#ifdef _DEBUG
|
|
||||||
//Sleep(10000);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Initialize output parameters.
|
|
||||||
if (ppEapError)
|
|
||||||
*ppEapError = NULL;
|
|
||||||
|
|
||||||
// Parameter check
|
|
||||||
if (!hSession || !pResult)
|
|
||||||
return dwResult = ERROR_INVALID_PARAMETER;
|
|
||||||
|
|
||||||
try {
|
|
||||||
g_peer.get_result(hSession, reason, pResult);
|
|
||||||
} catch (std::exception &err) {
|
|
||||||
dwResult = g_peer.log_error(ppEapError, err);
|
|
||||||
} catch (...) {
|
|
||||||
dwResult = ERROR_INVALID_DATA;
|
|
||||||
}
|
|
||||||
|
|
||||||
return dwResult;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Obtains the user interface context from the EAP method.
|
|
||||||
///
|
|
||||||
/// \note This function is always followed by the `EapPeerInvokeInteractiveUI()` function, which is followed by the `EapPeerSetUIContext()` function.
|
|
||||||
///
|
|
||||||
/// \sa [EapPeerGetUIContext function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363612.aspx)
|
|
||||||
///
|
|
||||||
//_Use_decl_annotations_
|
|
||||||
DWORD APIENTRY EapPeerGetUIContext(
|
|
||||||
EAP_SESSION_HANDLE hSession,
|
|
||||||
DWORD *pdwUIContextDataSize,
|
|
||||||
BYTE **ppUIContextData,
|
|
||||||
EAP_ERROR **ppEapError)
|
|
||||||
{
|
|
||||||
DWORD dwResult = ERROR_SUCCESS;
|
|
||||||
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
|
||||||
#ifdef _DEBUG
|
|
||||||
//Sleep(10000);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Initialize output parameters.
|
|
||||||
if (pdwUIContextDataSize)
|
|
||||||
*pdwUIContextDataSize = 0;
|
|
||||||
if (ppUIContextData)
|
|
||||||
*ppUIContextData = NULL;
|
|
||||||
if (ppEapError)
|
|
||||||
*ppEapError = NULL;
|
|
||||||
|
|
||||||
// Parameter check
|
|
||||||
if (!hSession || !pdwUIContextDataSize || !ppUIContextData)
|
|
||||||
return dwResult = ERROR_INVALID_PARAMETER;
|
|
||||||
|
|
||||||
try {
|
|
||||||
g_peer.get_ui_context(hSession, ppUIContextData, pdwUIContextDataSize);
|
|
||||||
} catch (std::exception &err) {
|
|
||||||
dwResult = g_peer.log_error(ppEapError, err);
|
|
||||||
} catch (...) {
|
|
||||||
dwResult = ERROR_INVALID_DATA;
|
|
||||||
}
|
|
||||||
|
|
||||||
return dwResult;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Provides a user interface context to the EAP method.
|
|
||||||
///
|
|
||||||
/// \note This function is called after the UI has been raised through the `EapPeerGetUIContext()` function.
|
|
||||||
///
|
|
||||||
/// \sa [EapPeerSetUIContext function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363626.aspx)
|
|
||||||
///
|
|
||||||
//_Use_decl_annotations_
|
|
||||||
DWORD APIENTRY EapPeerSetUIContext(
|
|
||||||
EAP_SESSION_HANDLE hSession,
|
|
||||||
DWORD dwUIContextDataSize,
|
|
||||||
const BYTE *pUIContextData,
|
|
||||||
EapPeerMethodOutput *pEapOutput,
|
|
||||||
EAP_ERROR **ppEapError)
|
|
||||||
{
|
|
||||||
DWORD dwResult = ERROR_SUCCESS;
|
|
||||||
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
|
||||||
#ifdef _DEBUG
|
|
||||||
//Sleep(10000);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Initialize output parameters.
|
|
||||||
if (pEapOutput)
|
|
||||||
memset(pEapOutput, 0, sizeof(*pEapOutput));
|
|
||||||
if (ppEapError)
|
|
||||||
*ppEapError = NULL;
|
|
||||||
|
|
||||||
// Parameter check
|
|
||||||
if (!hSession || !pUIContextData && dwUIContextDataSize || !pEapOutput)
|
|
||||||
return dwResult = ERROR_INVALID_PARAMETER;
|
|
||||||
|
|
||||||
try {
|
|
||||||
g_peer.set_ui_context(hSession, pUIContextData, dwUIContextDataSize, pEapOutput);
|
|
||||||
} catch (std::exception &err) {
|
|
||||||
dwResult = g_peer.log_error(ppEapError, err);
|
|
||||||
} catch (...) {
|
|
||||||
dwResult = ERROR_INVALID_DATA;
|
|
||||||
}
|
|
||||||
|
|
||||||
return dwResult;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Obtains an array of EAP response attributes from the EAP method.
|
|
||||||
///
|
|
||||||
/// \sa [EapPeerGetResponseAttributes function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363609.aspx)
|
|
||||||
///
|
|
||||||
//_Use_decl_annotations_
|
|
||||||
DWORD APIENTRY EapPeerGetResponseAttributes(
|
|
||||||
EAP_SESSION_HANDLE hSession,
|
|
||||||
EapAttributes *pAttribs,
|
|
||||||
EAP_ERROR **ppEapError)
|
|
||||||
{
|
|
||||||
DWORD dwResult = ERROR_SUCCESS;
|
|
||||||
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
|
||||||
#ifdef _DEBUG
|
|
||||||
//Sleep(10000);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Initialize output parameters.
|
|
||||||
if (pAttribs)
|
|
||||||
memset(pAttribs, 0, sizeof(*pAttribs));
|
|
||||||
if (ppEapError)
|
|
||||||
*ppEapError = NULL;
|
|
||||||
|
|
||||||
// Parameter check
|
|
||||||
if (!hSession || !pAttribs)
|
|
||||||
return dwResult = ERROR_INVALID_PARAMETER;
|
|
||||||
|
|
||||||
try {
|
|
||||||
g_peer.get_response_attributes(hSession, pAttribs);
|
|
||||||
} catch (std::exception &err) {
|
|
||||||
dwResult = g_peer.log_error(ppEapError, err);
|
|
||||||
} catch (...) {
|
|
||||||
dwResult = ERROR_INVALID_DATA;
|
|
||||||
}
|
|
||||||
|
|
||||||
return dwResult;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Provides an updated array of EAP response attributes to the EAP method.
|
|
||||||
///
|
|
||||||
/// \sa [EapPeerSetResponseAttributes function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363625.aspx)
|
|
||||||
///
|
|
||||||
//_Use_decl_annotations_
|
|
||||||
DWORD APIENTRY EapPeerSetResponseAttributes(
|
|
||||||
EAP_SESSION_HANDLE hSession,
|
|
||||||
/*const*/ EapAttributes *pAttribs,
|
|
||||||
EapPeerMethodOutput *pEapOutput,
|
|
||||||
EAP_ERROR **ppEapError)
|
|
||||||
{
|
|
||||||
DWORD dwResult = ERROR_SUCCESS;
|
|
||||||
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
|
||||||
#ifdef _DEBUG
|
|
||||||
//Sleep(10000);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Initialize output parameters.
|
|
||||||
if (pEapOutput)
|
|
||||||
memset(pEapOutput, 0, sizeof(*pEapOutput));
|
|
||||||
if (ppEapError)
|
|
||||||
*ppEapError = NULL;
|
|
||||||
|
|
||||||
// Parameter check
|
|
||||||
if (!hSession || !pEapOutput)
|
|
||||||
return dwResult = ERROR_INVALID_PARAMETER;
|
|
||||||
|
|
||||||
try {
|
|
||||||
g_peer.set_response_attributes(hSession, pAttribs, pEapOutput);
|
|
||||||
} catch (std::exception &err) {
|
|
||||||
dwResult = g_peer.log_error(ppEapError, err);
|
|
||||||
} catch (...) {
|
|
||||||
dwResult = ERROR_INVALID_DATA;
|
|
||||||
}
|
|
||||||
|
|
||||||
return dwResult;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Defines the implementation of an EAP method-specific function that retrieves the properties of an EAP method given the connection and user data.
|
|
||||||
///
|
|
||||||
/// \sa [EapPeerGetMethodProperties function](https://msdn.microsoft.com/en-us/library/windows/desktop/hh706636.aspx)
|
|
||||||
///
|
|
||||||
_Use_decl_annotations_
|
|
||||||
DWORD WINAPI EapPeerGetMethodProperties(
|
|
||||||
DWORD dwVersion,
|
|
||||||
DWORD dwFlags,
|
|
||||||
EAP_METHOD_TYPE eapMethodType,
|
|
||||||
HANDLE hUserImpersonationToken,
|
|
||||||
DWORD dwConnectionDataSize,
|
|
||||||
/*const*/ BYTE *pConnectionData,
|
|
||||||
DWORD dwUserDataSize,
|
|
||||||
/*const*/ BYTE *pUserData,
|
|
||||||
EAP_METHOD_PROPERTY_ARRAY *pMethodPropertyArray,
|
|
||||||
EAP_ERROR **ppEapError)
|
|
||||||
{
|
|
||||||
DWORD dwResult = ERROR_SUCCESS;
|
|
||||||
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
|
||||||
#ifdef _DEBUG
|
|
||||||
//Sleep(10000);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Initialize output parameters.
|
|
||||||
if (pMethodPropertyArray)
|
|
||||||
memset(pMethodPropertyArray, 0, sizeof(*pMethodPropertyArray));
|
|
||||||
if (ppEapError)
|
|
||||||
*ppEapError = NULL;
|
|
||||||
|
|
||||||
// Parameter check
|
|
||||||
if (eapMethodType.eapType.type != EAPMETHOD_TYPE || eapMethodType.dwAuthorId != EAPMETHOD_AUTHOR_ID)
|
|
||||||
return dwResult = ERROR_NOT_SUPPORTED;
|
|
||||||
if (!pConnectionData && dwConnectionDataSize || !pUserData && dwUserDataSize || !pMethodPropertyArray)
|
|
||||||
return dwResult = ERROR_INVALID_PARAMETER;
|
|
||||||
|
|
||||||
try {
|
|
||||||
g_peer.get_method_properties(dwVersion, dwFlags, hUserImpersonationToken, pConnectionData, dwConnectionDataSize, pUserData, dwUserDataSize, pMethodPropertyArray);
|
|
||||||
} catch (std::exception &err) {
|
|
||||||
dwResult = g_peer.log_error(ppEapError, err);
|
|
||||||
} catch (...) {
|
|
||||||
dwResult = ERROR_INVALID_DATA;
|
|
||||||
}
|
|
||||||
|
|
||||||
return dwResult;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Converts XML into the configuration BLOB. The XML based credentials can come from group policy or from a system administrator.
|
|
||||||
///
|
|
||||||
/// \sa [EapPeerCredentialsXml2Blob function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363603.aspx)
|
|
||||||
///
|
|
||||||
_Use_decl_annotations_
|
|
||||||
DWORD WINAPI EapPeerCredentialsXml2Blob(
|
|
||||||
DWORD dwFlags,
|
|
||||||
EAP_METHOD_TYPE eapMethodType,
|
|
||||||
IXMLDOMDocument2 *pCredentialsDoc,
|
|
||||||
const BYTE *pConnectionData,
|
|
||||||
DWORD dwConnectionDataSize,
|
|
||||||
BYTE **ppCredentialsOut,
|
|
||||||
DWORD *pdwCredentialsOutSize,
|
|
||||||
EAP_ERROR **ppEapError)
|
|
||||||
{
|
|
||||||
DWORD dwResult = ERROR_SUCCESS;
|
|
||||||
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
|
||||||
#ifdef _DEBUG
|
|
||||||
//Sleep(10000);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Initialize output parameters.
|
|
||||||
if (ppCredentialsOut)
|
|
||||||
*ppCredentialsOut = NULL;
|
|
||||||
if (pdwCredentialsOutSize)
|
|
||||||
*pdwCredentialsOutSize = 0;
|
|
||||||
if (ppEapError)
|
|
||||||
*ppEapError = NULL;
|
|
||||||
|
|
||||||
// Parameter check
|
|
||||||
if (eapMethodType.eapType.type != EAPMETHOD_TYPE || eapMethodType.dwAuthorId != EAPMETHOD_AUTHOR_ID)
|
|
||||||
return dwResult = ERROR_NOT_SUPPORTED;
|
|
||||||
if (!pCredentialsDoc || !pConnectionData && dwConnectionDataSize || !ppCredentialsOut || !pdwCredentialsOutSize)
|
|
||||||
return dwResult = ERROR_INVALID_PARAMETER;
|
|
||||||
|
|
||||||
// <Credentials>
|
|
||||||
com_obj<IXMLDOMNode> pXmlElCredentials;
|
|
||||||
if (FAILED(eapxml::select_node(pCredentialsDoc, bstr(L"//EapHostUserCredentials/Credentials"), pXmlElCredentials)))
|
|
||||||
return dwResult = g_peer.log_error(ppEapError, ERROR_NOT_FOUND, _T(__FUNCTION__) _T(" Error selecting <EapHostUserCredentials><Credentials> element."));
|
|
||||||
|
|
||||||
// Load credentials.
|
|
||||||
pCredentialsDoc->setProperty(bstr(L"SelectionNamespaces"), variant(L"xmlns:eap-metadata=\"urn:ietf:params:xml:ns:yang:ietf-eap-metadata\""));
|
|
||||||
try {
|
|
||||||
g_peer.credentials_xml2blob(dwFlags, pXmlElCredentials, pConnectionData, dwConnectionDataSize, ppCredentialsOut, pdwCredentialsOutSize);
|
|
||||||
} catch (std::exception &err) {
|
|
||||||
dwResult = g_peer.log_error(ppEapError, err);
|
|
||||||
} catch (...) {
|
|
||||||
dwResult = ERROR_INVALID_DATA;
|
|
||||||
}
|
|
||||||
|
|
||||||
return dwResult;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Defines the implementation of an EAP method-specific function that obtains the EAP Single-Sign-On (SSO) credential input fields for an EAP method.
|
|
||||||
///
|
|
||||||
/// \sa [EapPeerQueryCredentialInputFields function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363622.aspx)
|
|
||||||
///
|
|
||||||
_Use_decl_annotations_
|
|
||||||
DWORD WINAPI EapPeerQueryCredentialInputFields(
|
|
||||||
HANDLE hUserImpersonationToken,
|
|
||||||
EAP_METHOD_TYPE eapMethodType,
|
|
||||||
DWORD dwFlags,
|
|
||||||
DWORD dwConnectionDataSize,
|
|
||||||
/*const*/ BYTE *pConnectionData,
|
|
||||||
EAP_CONFIG_INPUT_FIELD_ARRAY *pEapConfigInputFieldsArray,
|
|
||||||
EAP_ERROR **ppEapError)
|
|
||||||
{
|
|
||||||
DWORD dwResult = ERROR_SUCCESS;
|
|
||||||
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
|
||||||
#ifdef _DEBUG
|
|
||||||
//Sleep(10000);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Initialize output parameters.
|
|
||||||
if (pEapConfigInputFieldsArray)
|
|
||||||
memset(pEapConfigInputFieldsArray, 0, sizeof(*pEapConfigInputFieldsArray));
|
|
||||||
if (ppEapError)
|
|
||||||
*ppEapError = NULL;
|
|
||||||
|
|
||||||
// Parameter check
|
|
||||||
if (eapMethodType.eapType.type != EAPMETHOD_TYPE || eapMethodType.dwAuthorId != EAPMETHOD_AUTHOR_ID)
|
|
||||||
return dwResult = ERROR_NOT_SUPPORTED;
|
|
||||||
if (!pConnectionData && dwConnectionDataSize || !pEapConfigInputFieldsArray)
|
|
||||||
return dwResult = ERROR_INVALID_PARAMETER;
|
|
||||||
|
|
||||||
try {
|
|
||||||
g_peer.query_credential_input_fields(hUserImpersonationToken, dwFlags, dwConnectionDataSize, pConnectionData, pEapConfigInputFieldsArray);
|
|
||||||
} catch (std::exception &err) {
|
|
||||||
dwResult = g_peer.log_error(ppEapError, err);
|
|
||||||
} catch (...) {
|
|
||||||
dwResult = ERROR_INVALID_DATA;
|
|
||||||
}
|
|
||||||
|
|
||||||
return dwResult;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Defines the implementation of an EAP method function that obtains the user BLOB data provided in an interactive Single-Sign-On (SSO) UI raised on the supplicant.
|
|
||||||
///
|
|
||||||
/// \sa [EapPeerQueryUserBlobFromCredentialInputFields function](https://msdn.microsoft.com/en-us/library/windows/desktop/bb204697.aspx)
|
|
||||||
///
|
|
||||||
#pragma warning(suppress: 6101) // Function is incorrectly annotated and code analysis gets confused
|
|
||||||
_Use_decl_annotations_
|
|
||||||
DWORD WINAPI EapPeerQueryUserBlobFromCredentialInputFields(
|
|
||||||
HANDLE hUserImpersonationToken,
|
|
||||||
EAP_METHOD_TYPE eapMethodType,
|
|
||||||
DWORD dwFlags,
|
|
||||||
DWORD dwConnectionDataSize,
|
|
||||||
/*const*/ BYTE *pConnectionData,
|
|
||||||
const EAP_CONFIG_INPUT_FIELD_ARRAY *pEapConfigInputFieldArray,
|
|
||||||
DWORD *pdwUsersBlobSize,
|
|
||||||
BYTE **ppUserBlob,
|
|
||||||
EAP_ERROR **ppEapError)
|
|
||||||
{
|
|
||||||
DWORD dwResult = ERROR_SUCCESS;
|
|
||||||
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
|
||||||
#ifdef _DEBUG
|
|
||||||
//Sleep(10000);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Initialize output parameters.
|
|
||||||
if (ppEapError)
|
|
||||||
*ppEapError = NULL;
|
|
||||||
|
|
||||||
// Parameter check
|
|
||||||
if (eapMethodType.eapType.type != EAPMETHOD_TYPE || eapMethodType.dwAuthorId != EAPMETHOD_AUTHOR_ID)
|
|
||||||
return dwResult = ERROR_NOT_SUPPORTED;
|
|
||||||
if (!pConnectionData && dwConnectionDataSize || !pEapConfigInputFieldArray || !pdwUsersBlobSize || !ppUserBlob)
|
|
||||||
return dwResult = ERROR_INVALID_PARAMETER;
|
|
||||||
|
|
||||||
try {
|
|
||||||
g_peer.query_user_blob_from_credential_input_fields(hUserImpersonationToken, dwFlags, dwConnectionDataSize, pConnectionData, pEapConfigInputFieldArray, pdwUsersBlobSize, ppUserBlob);
|
|
||||||
} catch (std::exception &err) {
|
|
||||||
dwResult = g_peer.log_error(ppEapError, err);
|
|
||||||
} catch (...) {
|
|
||||||
dwResult = ERROR_INVALID_DATA;
|
|
||||||
}
|
|
||||||
|
|
||||||
return dwResult;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Defines the implementation of an EAP method API that provides the input fields for interactive UI components to be raised on the supplicant.
|
|
||||||
///
|
|
||||||
/// \sa [EapPeerQueryInteractiveUIInputFields function](https://msdn.microsoft.com/en-us/library/windows/desktop/bb204695.aspx)
|
|
||||||
///
|
|
||||||
_Use_decl_annotations_
|
|
||||||
DWORD WINAPI EapPeerQueryInteractiveUIInputFields(
|
|
||||||
DWORD dwVersion,
|
|
||||||
DWORD dwFlags,
|
|
||||||
DWORD dwUIContextDataSize,
|
|
||||||
const BYTE *pUIContextData,
|
|
||||||
EAP_INTERACTIVE_UI_DATA *pEapInteractiveUIData,
|
|
||||||
EAP_ERROR **ppEapError,
|
|
||||||
LPVOID *ppvReserved)
|
|
||||||
{
|
|
||||||
UNREFERENCED_PARAMETER(ppvReserved);
|
|
||||||
|
|
||||||
DWORD dwResult = ERROR_SUCCESS;
|
|
||||||
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
|
||||||
#ifdef _DEBUG
|
|
||||||
//Sleep(10000);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Initialize output parameters.
|
|
||||||
if (pEapInteractiveUIData)
|
|
||||||
memset(pEapInteractiveUIData, 0, sizeof(*pEapInteractiveUIData));
|
|
||||||
if (ppEapError)
|
|
||||||
*ppEapError = NULL;
|
|
||||||
|
|
||||||
// Parameter check
|
|
||||||
if (!pUIContextData && dwUIContextDataSize || !pEapInteractiveUIData)
|
|
||||||
return dwResult = ERROR_INVALID_PARAMETER;
|
|
||||||
|
|
||||||
try {
|
|
||||||
g_peer.query_interactive_ui_input_fields(dwVersion, dwFlags, dwUIContextDataSize, pUIContextData, pEapInteractiveUIData);
|
|
||||||
} catch (std::exception &err) {
|
|
||||||
dwResult = g_peer.log_error(ppEapError, err);
|
|
||||||
} catch (...) {
|
|
||||||
dwResult = ERROR_INVALID_DATA;
|
|
||||||
}
|
|
||||||
|
|
||||||
return dwResult;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Converts user information into a user BLOB that can be consumed by EapHost run-time functions.
|
|
||||||
///
|
|
||||||
/// \sa [EapPeerQueryUIBlobFromInteractiveUIInputFields function](https://msdn.microsoft.com/en-us/library/windows/desktop/bb204696.aspx)
|
|
||||||
///
|
|
||||||
#pragma warning(suppress: 6387) // Function is incorrectly annotated and code analysis gets confused
|
|
||||||
#pragma warning(suppress: 28196)
|
|
||||||
_Use_decl_annotations_
|
|
||||||
DWORD WINAPI EapPeerQueryUIBlobFromInteractiveUIInputFields(
|
|
||||||
DWORD dwVersion,
|
|
||||||
DWORD dwFlags,
|
|
||||||
DWORD dwUIContextDataSize,
|
|
||||||
const BYTE *pUIContextData,
|
|
||||||
const EAP_INTERACTIVE_UI_DATA *pEapInteractiveUIData,
|
|
||||||
DWORD *pdwDataFromInteractiveUISize,
|
|
||||||
BYTE **ppDataFromInteractiveUI,
|
|
||||||
EAP_ERROR **ppEapError,
|
|
||||||
LPVOID *ppvReserved)
|
|
||||||
{
|
|
||||||
UNREFERENCED_PARAMETER(ppvReserved);
|
|
||||||
|
|
||||||
DWORD dwResult = ERROR_SUCCESS;
|
|
||||||
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
|
||||||
#ifdef _DEBUG
|
|
||||||
//Sleep(10000);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Initialize output parameters.
|
|
||||||
if (pdwDataFromInteractiveUISize)
|
|
||||||
*pdwDataFromInteractiveUISize = 0;
|
|
||||||
if (ppDataFromInteractiveUI)
|
|
||||||
*ppDataFromInteractiveUI = NULL;
|
|
||||||
if (ppEapError)
|
|
||||||
*ppEapError = NULL;
|
|
||||||
|
|
||||||
// Parameter check
|
|
||||||
if (!pUIContextData && dwUIContextDataSize || !pEapInteractiveUIData || !pdwDataFromInteractiveUISize || !ppDataFromInteractiveUI)
|
|
||||||
return dwResult = ERROR_INVALID_PARAMETER;
|
|
||||||
|
|
||||||
try {
|
|
||||||
g_peer.query_ui_blob_from_interactive_ui_input_fields(dwVersion, dwFlags, dwUIContextDataSize, pUIContextData, pEapInteractiveUIData, pdwDataFromInteractiveUISize, ppDataFromInteractiveUI);
|
|
||||||
} catch (std::exception &err) {
|
|
||||||
dwResult = g_peer.log_error(ppEapError, err);
|
|
||||||
} catch (...) {
|
|
||||||
dwResult = ERROR_INVALID_DATA;
|
|
||||||
}
|
|
||||||
|
|
||||||
return dwResult;
|
|
||||||
}
|
|
@ -1,359 +0,0 @@
|
|||||||
/*
|
|
||||||
SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
Copyright © 2015-2022 Amebis
|
|
||||||
Copyright © 2016 GÉANT
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "PCH_UI.h"
|
|
||||||
|
|
||||||
#pragma comment(lib, "msxml6.lib")
|
|
||||||
|
|
||||||
using namespace std;
|
|
||||||
using namespace winstd;
|
|
||||||
|
|
||||||
|
|
||||||
HANDLE g_act_ctx = NULL;
|
|
||||||
EAPMETHOD_PEER_UI g_peer;
|
|
||||||
|
|
||||||
|
|
||||||
///
|
|
||||||
/// DLL main entry point
|
|
||||||
///
|
|
||||||
/// \sa [DllMain entry point](https://msdn.microsoft.com/en-us/library/windows/desktop/ms682583.aspx)
|
|
||||||
///
|
|
||||||
BOOL WINAPI DllMain(_In_ HINSTANCE hinstDLL, _In_ DWORD fdwReason, _In_ LPVOID lpvReserved)
|
|
||||||
{
|
|
||||||
UNREFERENCED_PARAMETER(lpvReserved);
|
|
||||||
|
|
||||||
if (fdwReason == DLL_PROCESS_ATTACH) {
|
|
||||||
#ifdef _DEBUG
|
|
||||||
//Sleep(10000);
|
|
||||||
_CrtSetDbgFlag(_crtDbgFlag | _CRTDBG_ALLOC_MEM_DF | _CRTDBG_CHECK_ALWAYS_DF | _CRTDBG_CHECK_CRT_DF | _CRTDBG_LEAK_CHECK_DF);
|
|
||||||
#endif
|
|
||||||
g_peer.m_instance = hinstDLL;
|
|
||||||
|
|
||||||
#if _WIN32_WINNT >= _WIN32_WINNT_VISTA
|
|
||||||
// Declare our DllHost process as DPI-aware.
|
|
||||||
SetProcessDPIAware();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Save current activation context, as proper activation context is set at this time only (LoadLibrary() call).
|
|
||||||
GetCurrentActCtx(&g_act_ctx);
|
|
||||||
} else if (fdwReason == DLL_PROCESS_DETACH) {
|
|
||||||
if (g_act_ctx)
|
|
||||||
ReleaseActCtx(g_act_ctx);
|
|
||||||
}
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Releases all memory associated with an opaque user interface context data buffer.
|
|
||||||
///
|
|
||||||
/// \sa [EapPeerFreeMemory function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363606.aspx)
|
|
||||||
///
|
|
||||||
_Use_decl_annotations_
|
|
||||||
VOID WINAPI EapPeerFreeMemory(void *pUIContextData)
|
|
||||||
{
|
|
||||||
event_fn_auto event_auto(g_peer.get_event_fn_auto(__FUNCTION__));
|
|
||||||
|
|
||||||
if (pUIContextData)
|
|
||||||
g_peer.free_memory((BYTE*)pUIContextData);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Releases error-specific memory allocated by the EAP peer method.
|
|
||||||
///
|
|
||||||
/// \sa [EapPeerFreeErrorMemory function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363605.aspx)
|
|
||||||
///
|
|
||||||
_Use_decl_annotations_
|
|
||||||
VOID WINAPI EapPeerFreeErrorMemory(EAP_ERROR *ppEapError)
|
|
||||||
{
|
|
||||||
event_fn_auto event_auto(g_peer.get_event_fn_auto(__FUNCTION__));
|
|
||||||
|
|
||||||
if (ppEapError)
|
|
||||||
g_peer.free_error_memory(ppEapError);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Converts XML into the configuration BLOB.
|
|
||||||
///
|
|
||||||
/// \sa [EapPeerConfigXml2Blob function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363602.aspx)
|
|
||||||
///
|
|
||||||
_Use_decl_annotations_
|
|
||||||
DWORD WINAPI EapPeerConfigXml2Blob(
|
|
||||||
DWORD dwFlags,
|
|
||||||
EAP_METHOD_TYPE eapMethodType,
|
|
||||||
IXMLDOMDocument2 *pConfigDoc,
|
|
||||||
BYTE **pConnectionDataOut,
|
|
||||||
DWORD *pdwConnectionDataOutSize,
|
|
||||||
EAP_ERROR **ppEapError)
|
|
||||||
{
|
|
||||||
DWORD dwResult = ERROR_SUCCESS;
|
|
||||||
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
|
||||||
#ifdef _DEBUG
|
|
||||||
//Sleep(10000);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Initialize output parameters.
|
|
||||||
if (pConnectionDataOut)
|
|
||||||
*pConnectionDataOut = NULL;
|
|
||||||
if (pdwConnectionDataOutSize)
|
|
||||||
*pdwConnectionDataOutSize = 0;
|
|
||||||
if (ppEapError)
|
|
||||||
*ppEapError = NULL;
|
|
||||||
|
|
||||||
// Parameter check
|
|
||||||
if (eapMethodType.eapType.type != EAPMETHOD_TYPE || eapMethodType.dwAuthorId != EAPMETHOD_AUTHOR_ID)
|
|
||||||
return dwResult = ERROR_NOT_SUPPORTED;
|
|
||||||
if (!pConfigDoc || !pConnectionDataOut || !pdwConnectionDataOutSize)
|
|
||||||
return dwResult = ERROR_INVALID_PARAMETER;
|
|
||||||
|
|
||||||
// Configure XML selection namespaces used.
|
|
||||||
pConfigDoc->setProperty(bstr(L"SelectionNamespaces"), variant(L"xmlns:eap-metadata=\"urn:ietf:params:xml:ns:yang:ietf-eap-metadata\" xmlns:eaphostconfig=\"http://www.microsoft.com/provisioning/EapHostConfig\""));
|
|
||||||
|
|
||||||
// <Config>
|
|
||||||
com_obj<IXMLDOMElement> pXmlElConfig;
|
|
||||||
if (FAILED(eapxml::select_element(pConfigDoc, bstr(L"//eaphostconfig:Config"), pXmlElConfig)))
|
|
||||||
return dwResult = g_peer.log_error(ppEapError, ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" Error reading <Config> element."));
|
|
||||||
|
|
||||||
// Load configuration.
|
|
||||||
try {
|
|
||||||
g_peer.config_xml2blob(dwFlags, pXmlElConfig, pConnectionDataOut, pdwConnectionDataOutSize);
|
|
||||||
} catch (std::exception &err) {
|
|
||||||
dwResult = g_peer.log_error(ppEapError, err);
|
|
||||||
} catch (...) {
|
|
||||||
dwResult = ERROR_INVALID_DATA;
|
|
||||||
}
|
|
||||||
|
|
||||||
return dwResult;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Converts the configuration BLOB to XML.
|
|
||||||
///
|
|
||||||
/// The configuration BLOB is returned in the ppConnectionDataOut parameter of the EapPeerInvokeConfigUI function.
|
|
||||||
///
|
|
||||||
/// \sa [EapPeerConfigBlob2Xml function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363601.aspx)
|
|
||||||
///
|
|
||||||
_Use_decl_annotations_
|
|
||||||
DWORD WINAPI EapPeerConfigBlob2Xml(
|
|
||||||
DWORD dwFlags,
|
|
||||||
EAP_METHOD_TYPE eapMethodType,
|
|
||||||
const BYTE *pConnectionData,
|
|
||||||
DWORD dwConnectionDataSize,
|
|
||||||
IXMLDOMDocument2 **ppConfigDoc,
|
|
||||||
EAP_ERROR **ppEapError)
|
|
||||||
{
|
|
||||||
DWORD dwResult = ERROR_SUCCESS;
|
|
||||||
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
|
||||||
#ifdef _DEBUG
|
|
||||||
//Sleep(10000);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Initialize output parameters.
|
|
||||||
if (ppConfigDoc)
|
|
||||||
*ppConfigDoc = NULL;
|
|
||||||
if (ppEapError)
|
|
||||||
*ppEapError = NULL;
|
|
||||||
|
|
||||||
// Parameter check
|
|
||||||
if (eapMethodType.eapType.type != EAPMETHOD_TYPE || eapMethodType.dwAuthorId != EAPMETHOD_AUTHOR_ID)
|
|
||||||
return dwResult = ERROR_NOT_SUPPORTED;
|
|
||||||
if (!pConnectionData && dwConnectionDataSize || !ppConfigDoc)
|
|
||||||
return dwResult = ERROR_INVALID_PARAMETER;
|
|
||||||
|
|
||||||
HRESULT hr;
|
|
||||||
|
|
||||||
// Create configuration XML document.
|
|
||||||
com_obj<IXMLDOMDocument2> pConfigDoc;
|
|
||||||
if (FAILED(hr = CoCreateInstance(CLSID_DOMDocument60, NULL, CLSCTX_INPROC_SERVER, pConfigDoc)))
|
|
||||||
return dwResult = g_peer.log_error(ppEapError, HRESULT_CODE(hr), _T(__FUNCTION__) _T(" Error creating XML document."));
|
|
||||||
|
|
||||||
pConfigDoc->put_async(VARIANT_FALSE);
|
|
||||||
|
|
||||||
// Load empty XML configuration.
|
|
||||||
VARIANT_BOOL isSuccess = VARIANT_FALSE;
|
|
||||||
if (FAILED((hr = pConfigDoc->loadXML(L"<Config xmlns=\"http://www.microsoft.com/provisioning/EapHostConfig\"></Config>", &isSuccess))))
|
|
||||||
return dwResult = g_peer.log_error(ppEapError, HRESULT_CODE(hr), _T(__FUNCTION__) _T(" Error loading XML document template."));
|
|
||||||
if (!isSuccess)
|
|
||||||
return dwResult = g_peer.log_error(ppEapError, ERROR_XML_PARSE_ERROR, _T(__FUNCTION__) _T(" Loading XML template failed."));
|
|
||||||
|
|
||||||
// Configure XML selection namespaces used.
|
|
||||||
pConfigDoc->setProperty(bstr(L"SelectionNamespaces"), variant(L"xmlns:eap-metadata=\"urn:ietf:params:xml:ns:yang:ietf-eap-metadata\" xmlns:eaphostconfig=\"http://www.microsoft.com/provisioning/EapHostConfig\""));
|
|
||||||
|
|
||||||
// Select <Config> node.
|
|
||||||
com_obj<IXMLDOMNode> pXmlElConfig;
|
|
||||||
if (FAILED(eapxml::select_node(pConfigDoc, bstr(L"eaphostconfig:Config"), pXmlElConfig)))
|
|
||||||
return dwResult = g_peer.log_error(ppEapError, ERROR_NOT_FOUND, _T(__FUNCTION__) _T(" Error selecting <Config> element."));
|
|
||||||
|
|
||||||
// Save configuration.
|
|
||||||
pConfigDoc->setProperty(bstr(L"SelectionNamespaces"), variant(L"xmlns:eap-metadata=\"urn:ietf:params:xml:ns:yang:ietf-eap-metadata\""));
|
|
||||||
try {
|
|
||||||
g_peer.config_blob2xml(dwFlags, pConnectionData, dwConnectionDataSize, pConfigDoc, pXmlElConfig);
|
|
||||||
} catch (std::exception &err) {
|
|
||||||
dwResult = g_peer.log_error(ppEapError, err);
|
|
||||||
} catch (...) {
|
|
||||||
return dwResult = ERROR_INVALID_DATA;
|
|
||||||
}
|
|
||||||
|
|
||||||
*ppConfigDoc = pConfigDoc.detach();
|
|
||||||
|
|
||||||
return dwResult;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Raises the EAP method's specific connection configuration user interface dialog on the client.
|
|
||||||
///
|
|
||||||
/// \sa [EapPeerInvokeConfigUI function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363614.aspx)
|
|
||||||
///
|
|
||||||
//_Use_decl_annotations_
|
|
||||||
DWORD WINAPI EapPeerInvokeConfigUI(
|
|
||||||
const EAP_METHOD_TYPE *pEapType,
|
|
||||||
HWND hwndParent,
|
|
||||||
DWORD dwFlags,
|
|
||||||
DWORD dwConnectionDataInSize,
|
|
||||||
const BYTE *pConnectionDataIn,
|
|
||||||
DWORD *pdwConnectionDataOutSize,
|
|
||||||
BYTE **ppConnectionDataOut,
|
|
||||||
EAP_ERROR **ppEapError)
|
|
||||||
{
|
|
||||||
UNREFERENCED_PARAMETER(dwFlags);
|
|
||||||
DWORD dwResult = ERROR_SUCCESS;
|
|
||||||
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
|
||||||
actctx_activator actctx(g_act_ctx);
|
|
||||||
#ifdef _DEBUG
|
|
||||||
//Sleep(10000);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Initialize output parameters.
|
|
||||||
if (pdwConnectionDataOutSize)
|
|
||||||
*pdwConnectionDataOutSize = 0;
|
|
||||||
if (ppConnectionDataOut)
|
|
||||||
*ppConnectionDataOut = NULL;
|
|
||||||
if (ppEapError)
|
|
||||||
*ppEapError = NULL;
|
|
||||||
|
|
||||||
// Parameter check
|
|
||||||
if (!pEapType || !pConnectionDataIn && dwConnectionDataInSize || !pdwConnectionDataOutSize || !ppConnectionDataOut)
|
|
||||||
return dwResult = ERROR_INVALID_PARAMETER;
|
|
||||||
if (pEapType->eapType.type != EAPMETHOD_TYPE || pEapType->dwAuthorId != EAPMETHOD_AUTHOR_ID)
|
|
||||||
return dwResult = ERROR_NOT_SUPPORTED;
|
|
||||||
|
|
||||||
try {
|
|
||||||
g_peer.invoke_config_ui(hwndParent, pConnectionDataIn, dwConnectionDataInSize, ppConnectionDataOut, pdwConnectionDataOutSize);
|
|
||||||
} catch (std::exception &err) {
|
|
||||||
dwResult = g_peer.log_error(ppEapError, err);
|
|
||||||
} catch (...) {
|
|
||||||
dwResult = ERROR_INVALID_DATA;
|
|
||||||
}
|
|
||||||
|
|
||||||
return dwResult;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Raises a custom interactive user interface dialog to obtain user identity information for the EAP method on the client.
|
|
||||||
///
|
|
||||||
/// \sa [EapPeerInvokeIdentityUI function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363615.aspx)
|
|
||||||
///
|
|
||||||
//_Use_decl_annotations_
|
|
||||||
DWORD WINAPI EapPeerInvokeIdentityUI(
|
|
||||||
const EAP_METHOD_TYPE *pEapType,
|
|
||||||
DWORD dwFlags,
|
|
||||||
HWND hwndParent,
|
|
||||||
DWORD dwConnectionDataSize,
|
|
||||||
const BYTE *pConnectionData,
|
|
||||||
DWORD dwUserDataSize,
|
|
||||||
const BYTE *pUserData,
|
|
||||||
DWORD *pdwUserDataOutSize,
|
|
||||||
BYTE **ppUserDataOut,
|
|
||||||
LPWSTR *ppwszIdentity,
|
|
||||||
EAP_ERROR **ppEapError)
|
|
||||||
{
|
|
||||||
DWORD dwResult = ERROR_SUCCESS;
|
|
||||||
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
|
||||||
actctx_activator actctx(g_act_ctx);
|
|
||||||
#ifdef _DEBUG
|
|
||||||
//Sleep(10000);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Initialize output parameters.
|
|
||||||
if (pdwUserDataOutSize)
|
|
||||||
*pdwUserDataOutSize = 0;
|
|
||||||
if (ppUserDataOut)
|
|
||||||
*ppUserDataOut = NULL;
|
|
||||||
if (ppwszIdentity)
|
|
||||||
*ppwszIdentity = NULL;
|
|
||||||
if (ppEapError)
|
|
||||||
*ppEapError = NULL;
|
|
||||||
|
|
||||||
// Parameter check
|
|
||||||
if (!pEapType || !pConnectionData && dwConnectionDataSize || !pUserData && dwUserDataSize || !pdwUserDataOutSize || !ppUserDataOut || !ppwszIdentity)
|
|
||||||
return dwResult = ERROR_INVALID_PARAMETER;
|
|
||||||
if (pEapType->eapType.type != EAPMETHOD_TYPE || pEapType->dwAuthorId != EAPMETHOD_AUTHOR_ID)
|
|
||||||
return dwResult = ERROR_NOT_SUPPORTED;
|
|
||||||
|
|
||||||
try {
|
|
||||||
g_peer.invoke_identity_ui(hwndParent, dwFlags, pConnectionData, dwConnectionDataSize, pUserData, dwUserDataSize, ppUserDataOut, pdwUserDataOutSize, ppwszIdentity);
|
|
||||||
} catch (std::exception &err) {
|
|
||||||
dwResult = g_peer.log_error(ppEapError, err);
|
|
||||||
} catch (...) {
|
|
||||||
dwResult = ERROR_INVALID_DATA;
|
|
||||||
}
|
|
||||||
|
|
||||||
return dwResult;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Raises a custom interactive user interface dialog for the EAP method on the client.
|
|
||||||
///
|
|
||||||
/// \sa [EapPeerInvokeInteractiveUI function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363616.aspx)
|
|
||||||
///
|
|
||||||
//_Use_decl_annotations_
|
|
||||||
DWORD WINAPI EapPeerInvokeInteractiveUI(
|
|
||||||
const EAP_METHOD_TYPE *pEapType,
|
|
||||||
HWND hwndParent,
|
|
||||||
DWORD dwUIContextDataSize,
|
|
||||||
const BYTE *pUIContextData,
|
|
||||||
DWORD *pdwDataFromInteractiveUISize,
|
|
||||||
BYTE **ppDataFromInteractiveUI,
|
|
||||||
EAP_ERROR **ppEapError)
|
|
||||||
{
|
|
||||||
DWORD dwResult = ERROR_SUCCESS;
|
|
||||||
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
|
||||||
actctx_activator actctx(g_act_ctx);
|
|
||||||
#ifdef _DEBUG
|
|
||||||
//Sleep(10000);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Initialize output parameters.
|
|
||||||
if (pdwDataFromInteractiveUISize)
|
|
||||||
*pdwDataFromInteractiveUISize = 0;
|
|
||||||
if (ppDataFromInteractiveUI)
|
|
||||||
*ppDataFromInteractiveUI = NULL;
|
|
||||||
if (ppEapError)
|
|
||||||
*ppEapError = NULL;
|
|
||||||
|
|
||||||
// Parameter check
|
|
||||||
if (!pEapType || !pUIContextData && dwUIContextDataSize || !pdwDataFromInteractiveUISize || !ppDataFromInteractiveUI)
|
|
||||||
return dwResult = ERROR_INVALID_PARAMETER;
|
|
||||||
if (pEapType->eapType.type != EAPMETHOD_TYPE || pEapType->dwAuthorId != EAPMETHOD_AUTHOR_ID)
|
|
||||||
return dwResult = ERROR_NOT_SUPPORTED;
|
|
||||||
|
|
||||||
try {
|
|
||||||
g_peer.invoke_interactive_ui(hwndParent, pUIContextData, dwUIContextDataSize, ppDataFromInteractiveUI, pdwDataFromInteractiveUISize);
|
|
||||||
} catch (std::exception &err) {
|
|
||||||
dwResult = g_peer.log_error(ppEapError, err);
|
|
||||||
} catch (...) {
|
|
||||||
dwResult = ERROR_INVALID_DATA;
|
|
||||||
}
|
|
||||||
|
|
||||||
return dwResult;
|
|
||||||
}
|
|
@ -1,7 +0,0 @@
|
|||||||
/*
|
|
||||||
SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
Copyright © 2015-2022 Amebis
|
|
||||||
Copyright © 2016 GÉANT
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "PCH.h"
|
|
@ -1,17 +0,0 @@
|
|||||||
/*
|
|
||||||
SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
Copyright © 2015-2022 Amebis
|
|
||||||
Copyright © 2016 GÉANT
|
|
||||||
*/
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#if EAPMETHOD_TYPE == 21
|
|
||||||
#include "../lib/TTLS/include/Method.h"
|
|
||||||
#include "../lib/TTLS/include/Module.h"
|
|
||||||
#define EAPMETHOD_PEER eap::peer_ttls
|
|
||||||
#else
|
|
||||||
#error Unknown EAP Method type.
|
|
||||||
#endif
|
|
||||||
|
|
||||||
extern EAPMETHOD_PEER g_peer;
|
|
@ -1,7 +0,0 @@
|
|||||||
/*
|
|
||||||
SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
Copyright © 2015-2022 Amebis
|
|
||||||
Copyright © 2016 GÉANT
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "PCH_UI.h"
|
|
@ -1,19 +0,0 @@
|
|||||||
/*
|
|
||||||
SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
Copyright © 2015-2022 Amebis
|
|
||||||
Copyright © 2016 GÉANT
|
|
||||||
*/
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
// Prevent warnings from wxWidgets headers
|
|
||||||
#define _CRT_SECURE_NO_WARNINGS
|
|
||||||
|
|
||||||
#if EAPMETHOD_TYPE == 21
|
|
||||||
#include "../lib/TTLS_UI/include/Module.h"
|
|
||||||
#define EAPMETHOD_PEER_UI eap::peer_ttls_ui
|
|
||||||
#else
|
|
||||||
#error Unknown EAP Method type.
|
|
||||||
#endif
|
|
||||||
|
|
||||||
extern EAPMETHOD_PEER_UI g_peer;
|
|
@ -1,89 +0,0 @@
|
|||||||
/*
|
|
||||||
SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
Copyright © 2020-2022 Amebis
|
|
||||||
Copyright © 2016 GÉANT
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "PCH.h"
|
|
||||||
|
|
||||||
using namespace std;
|
|
||||||
using namespace winstd;
|
|
||||||
|
|
||||||
|
|
||||||
static void set_value(_In_ HKEY hKey, _In_opt_z_ LPCTSTR lpValueName, _In_ LPCTSTR sValue)
|
|
||||||
{
|
|
||||||
LSTATUS s = RegSetValueEx(hKey, lpValueName, 0, REG_SZ, reinterpret_cast<LPCBYTE>(sValue), (DWORD)((_tcslen(sValue) + 1) * sizeof(tstring::value_type)));
|
|
||||||
if (s != ERROR_SUCCESS)
|
|
||||||
throw win_runtime_error(s, "RegSetValueEx failed.");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void set_value(_In_ HKEY hKey, _In_opt_z_ LPCTSTR lpValueName, _In_ const tstring &sValue)
|
|
||||||
{
|
|
||||||
LSTATUS s = RegSetValueEx(hKey, lpValueName, 0, REG_SZ, reinterpret_cast<LPCBYTE>(sValue.c_str()), (DWORD)((sValue.length() + 1) * sizeof(tstring::value_type)));
|
|
||||||
if (s != ERROR_SUCCESS)
|
|
||||||
throw win_runtime_error(s, "RegSetValueEx failed.");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void set_value(_In_ HKEY hKey, _In_opt_z_ LPCTSTR lpValueName, _In_ DWORD dwValue)
|
|
||||||
{
|
|
||||||
LSTATUS s = RegSetValueEx(hKey, lpValueName, 0, REG_DWORD, reinterpret_cast<LPCBYTE>(&dwValue), sizeof(dwValue));
|
|
||||||
if (s != ERROR_SUCCESS)
|
|
||||||
throw win_runtime_error(s, "RegSetValueEx failed.");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Registers method in EapHost registry
|
|
||||||
///
|
|
||||||
/// \returns S_OK if successful; E_FAIL otherwise
|
|
||||||
///
|
|
||||||
STDAPI DllRegisterServer()
|
|
||||||
{
|
|
||||||
try {
|
|
||||||
tstring sz, sz2;
|
|
||||||
reg_key key_methods, key_author, key_method;
|
|
||||||
LSTATUS s = RegOpenKeyEx(HKEY_LOCAL_MACHINE, _T("SYSTEM\\CurrentControlSet\\services\\EapHost\\Methods"), 0, KEY_CREATE_SUB_KEY, key_methods);
|
|
||||||
if (s != ERROR_SUCCESS) throw win_runtime_error(s);
|
|
||||||
sprintf(sz, _T("%u"), EAPMETHOD_AUTHOR_ID);
|
|
||||||
s = RegCreateKeyEx(key_methods, sz.c_str(), NULL, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, key_author, NULL);
|
|
||||||
if (s != ERROR_SUCCESS) throw win_runtime_error(s);
|
|
||||||
set_value(key_author, NULL, _T(PRODUCT_NAME_STR));
|
|
||||||
sprintf(sz, _T("%u"), EAPMETHOD_TYPE);
|
|
||||||
s = RegCreateKeyEx(key_author, sz.c_str(), NULL, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, key_method, NULL);
|
|
||||||
if (s != ERROR_SUCCESS) throw win_runtime_error(s);
|
|
||||||
if (!GetModuleFileName(g_peer.m_instance, sz)) throw win_runtime_error("GetModuleFileName failed.");
|
|
||||||
sprintf(sz2, _T("@%s,-1"), sz.c_str());
|
|
||||||
set_value(key_method, _T("PeerDllPath") , sz);
|
|
||||||
set_value(key_method, _T("PeerFriendlyName"), sz2);
|
|
||||||
set_value(key_method, _T("Properties") , (DWORD)389871807);
|
|
||||||
|
|
||||||
return S_OK;
|
|
||||||
} catch(win_runtime_error &err) {
|
|
||||||
OutputDebugStr(_T("%hs (error %u)\n"), err.what(), err.number());
|
|
||||||
return E_FAIL;
|
|
||||||
} catch(...) {
|
|
||||||
OutputDebugStr(_T("Registering DLL failed.\n"));
|
|
||||||
return E_FAIL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Unregisters method from EapHost registry
|
|
||||||
///
|
|
||||||
/// \returns Always S_OK
|
|
||||||
///
|
|
||||||
STDAPI DllUnregisterServer()
|
|
||||||
{
|
|
||||||
try {
|
|
||||||
tstring sz;
|
|
||||||
reg_key key_methods;
|
|
||||||
LSTATUS s = RegOpenKeyEx(HKEY_LOCAL_MACHINE, _T("SYSTEM\\CurrentControlSet\\services\\EapHost\\Methods"), 0, KEY_READ, key_methods);
|
|
||||||
if (s != ERROR_SUCCESS) throw win_runtime_error(s);
|
|
||||||
sprintf(sz, _T("%u\\%u"), EAPMETHOD_AUTHOR_ID, EAPMETHOD_TYPE);
|
|
||||||
if (!key_methods.delete_subkey(sz.c_str())) throw win_runtime_error();
|
|
||||||
} catch(...) {}
|
|
||||||
return S_OK;
|
|
||||||
}
|
|
@ -1,90 +0,0 @@
|
|||||||
/*
|
|
||||||
SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
Copyright © 2020-2022 Amebis
|
|
||||||
Copyright © 2016 GÉANT
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "PCH_UI.h"
|
|
||||||
|
|
||||||
using namespace std;
|
|
||||||
using namespace winstd;
|
|
||||||
|
|
||||||
|
|
||||||
static void set_value(_In_ HKEY hKey, _In_opt_z_ LPCTSTR lpValueName, _In_ LPCTSTR sValue)
|
|
||||||
{
|
|
||||||
LSTATUS s = RegSetValueEx(hKey, lpValueName, 0, REG_SZ, reinterpret_cast<LPCBYTE>(sValue), (DWORD)((_tcslen(sValue) + 1) * sizeof(tstring::value_type)));
|
|
||||||
if (s != ERROR_SUCCESS)
|
|
||||||
throw win_runtime_error(s, "RegSetValueEx failed.");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void set_value(_In_ HKEY hKey, _In_opt_z_ LPCTSTR lpValueName, _In_ const tstring &sValue)
|
|
||||||
{
|
|
||||||
LSTATUS s = RegSetValueEx(hKey, lpValueName, 0, REG_SZ, reinterpret_cast<LPCBYTE>(sValue.c_str()), (DWORD)((sValue.length() + 1) * sizeof(tstring::value_type)));
|
|
||||||
if (s != ERROR_SUCCESS)
|
|
||||||
throw win_runtime_error(s, "RegSetValueEx failed.");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void set_value(_In_ HKEY hKey, _In_opt_z_ LPCTSTR lpValueName, _In_ DWORD dwValue)
|
|
||||||
{
|
|
||||||
LSTATUS s = RegSetValueEx(hKey, lpValueName, 0, REG_DWORD, reinterpret_cast<LPCBYTE>(&dwValue), sizeof(dwValue));
|
|
||||||
if (s != ERROR_SUCCESS)
|
|
||||||
throw win_runtime_error(s, "RegSetValueEx failed.");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Registers method UI in EapHost registry
|
|
||||||
///
|
|
||||||
/// \returns S_OK if successful; E_FAIL otherwise
|
|
||||||
///
|
|
||||||
STDAPI DllRegisterServer()
|
|
||||||
{
|
|
||||||
try {
|
|
||||||
tstring sz;
|
|
||||||
reg_key key_methods, key_author, key_method;
|
|
||||||
LSTATUS s = RegOpenKeyEx(HKEY_LOCAL_MACHINE, _T("SYSTEM\\CurrentControlSet\\services\\EapHost\\Methods"), 0, KEY_CREATE_SUB_KEY, key_methods);
|
|
||||||
if (s != ERROR_SUCCESS) throw win_runtime_error(s);
|
|
||||||
sprintf(sz, _T("%u"), EAPMETHOD_AUTHOR_ID);
|
|
||||||
s = RegCreateKeyEx(key_methods, sz.c_str(), NULL, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, key_author, NULL);
|
|
||||||
if (s != ERROR_SUCCESS) throw win_runtime_error(s);
|
|
||||||
set_value(key_author, NULL, _T(PRODUCT_NAME_STR));
|
|
||||||
sprintf(sz, _T("%u"), EAPMETHOD_TYPE);
|
|
||||||
s = RegCreateKeyEx(key_author, sz.c_str(), NULL, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, key_method, NULL);
|
|
||||||
if (s != ERROR_SUCCESS) throw win_runtime_error(s);
|
|
||||||
if (!GetModuleFileName(g_peer.m_instance, sz)) throw win_runtime_error("GetModuleFileName failed.");
|
|
||||||
set_value(key_method, _T("PeerConfigUIPath") , sz);
|
|
||||||
set_value(key_method, _T("PeerIdentityPath") , sz);
|
|
||||||
set_value(key_method, _T("PeerInteractiveUIPath") , sz);
|
|
||||||
set_value(key_method, _T("PeerInvokePasswordDialog"), (DWORD)0);
|
|
||||||
set_value(key_method, _T("PeerInvokeUsernameDialog"), (DWORD)0);
|
|
||||||
|
|
||||||
return S_OK;
|
|
||||||
} catch(win_runtime_error &err) {
|
|
||||||
OutputDebugStr(_T("%hs (error %u)\n"), err.what(), err.number());
|
|
||||||
return E_FAIL;
|
|
||||||
} catch(...) {
|
|
||||||
OutputDebugStr(_T("Registering DLL failed.\n"));
|
|
||||||
return E_FAIL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Unregisters method UI from EapHost registry
|
|
||||||
///
|
|
||||||
/// \returns Always S_OK
|
|
||||||
///
|
|
||||||
STDAPI DllUnregisterServer()
|
|
||||||
{
|
|
||||||
try {
|
|
||||||
tstring sz;
|
|
||||||
reg_key key_methods;
|
|
||||||
LSTATUS s = RegOpenKeyEx(HKEY_LOCAL_MACHINE, _T("SYSTEM\\CurrentControlSet\\services\\EapHost\\Methods"), 0, KEY_READ, key_methods);
|
|
||||||
if (s != ERROR_SUCCESS) throw win_runtime_error(s);
|
|
||||||
sprintf(sz, _T("%u\\%u"), EAPMETHOD_AUTHOR_ID, EAPMETHOD_TYPE);
|
|
||||||
key_methods.delete_subkey(sz.c_str());
|
|
||||||
} catch(...) {}
|
|
||||||
return S_OK;
|
|
||||||
}
|
|
15
EAPMethods/build/Common.props
Normal file
15
EAPMethods/build/Common.props
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ImportGroup Label="PropertySheets" />
|
||||||
|
<PropertyGroup Label="UserMacros" />
|
||||||
|
<PropertyGroup>
|
||||||
|
<_PropertySheetDisplayName>EAP Method Common</_PropertySheetDisplayName>
|
||||||
|
<OutDir>..\..\output\$(Platform).$(Configuration)\</OutDir>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemDefinitionGroup>
|
||||||
|
<ClCompile>
|
||||||
|
<AdditionalIncludeDirectories>$(ProjectDir);..\..\lib\Events\build\temp\Events.$(Platform).$(Configuration).$(PlatformToolset);..\include;..\..\lib\WinStd\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
</ClCompile>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemGroup />
|
||||||
|
</Project>
|
BIN
EAPMethods/build/EAPMethod.def
Normal file
BIN
EAPMethods/build/EAPMethod.def
Normal file
Binary file not shown.
BIN
EAPMethods/build/EAPMethodUI.def
Normal file
BIN
EAPMethods/build/EAPMethodUI.def
Normal file
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -1,13 +1,11 @@
|
|||||||
# Translators:
|
|
||||||
# Simon Rozman <simon@rozman.si>, 2018
|
|
||||||
#
|
#
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: EAPMethods\n"
|
"Project-Id-Version: EAPMethods\n"
|
||||||
"POT-Creation-Date: 2018-06-20 15:30+0200\n"
|
"POT-Creation-Date: 2018-06-20 15:30+0200\n"
|
||||||
"PO-Revision-Date: 2016-08-25 06:18+0000\n"
|
"PO-Revision-Date: 2016-06-02 12:27+0200\n"
|
||||||
"Last-Translator: Simon Rozman <simon@rozman.si>, 2018\n"
|
"Last-Translator: Simon Rozman <simon@rozman.si>, 2016\n"
|
||||||
"Language-Team: Bulgarian (Bulgaria) (https://www.transifex.com/eduroam_devel/teams/11799/bg_BG/)\n"
|
"Language-Team: Bulgarian (Bulgaria) (https://www.transifex.com/eduroam_devel/teams/11799/bg_BG/)\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
@ -903,7 +901,7 @@ msgstr "Използвай &празна външна самоличност"
|
|||||||
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
#: ver1.0/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: ver1.0/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
#: ver1.1/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: ver1.1/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
msgid "Omit my user name and use @mydomain.org only"
|
msgid "Ommit my user name and use @mydomain.org only"
|
||||||
msgstr "Пропусни моето потребителско име и използвай само @mydomain.org"
|
msgstr "Пропусни моето потребителско име и използвай само @mydomain.org"
|
||||||
|
|
||||||
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:48
|
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:48
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,13 +1,10 @@
|
|||||||
# Translators:
|
|
||||||
# Simon Rozman <simon@rozman.si>, 2017
|
|
||||||
# Petr Adamec <p.b.adamec@gmail.com>, 2017
|
|
||||||
#
|
#
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: EAPMethods\n"
|
"Project-Id-Version: EAPMethods\n"
|
||||||
"POT-Creation-Date: 2018-06-20 15:30+0200\n"
|
"POT-Creation-Date: 2018-06-20 15:30+0200\n"
|
||||||
"PO-Revision-Date: 2016-08-25 06:18+0000\n"
|
"PO-Revision-Date: 2016-06-02 12:27+0200\n"
|
||||||
"Last-Translator: Petr Adamec <p.b.adamec@gmail.com>, 2017\n"
|
"Last-Translator: Petr Adamec <p.b.adamec@gmail.com>, 2017\n"
|
||||||
"Language-Team: Czech (Czech Republic) (https://www.transifex.com/eduroam_devel/teams/11799/cs_CZ/)\n"
|
"Language-Team: Czech (Czech Republic) (https://www.transifex.com/eduroam_devel/teams/11799/cs_CZ/)\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@ -847,7 +844,7 @@ msgstr ""
|
|||||||
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
#: ver1.0/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: ver1.0/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
#: ver1.1/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: ver1.1/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
msgid "Omit my user name and use @mydomain.org only"
|
msgid "Ommit my user name and use @mydomain.org only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:48
|
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:48
|
||||||
|
@ -1,13 +1,11 @@
|
|||||||
# Translators:
|
|
||||||
# Simon Rozman <simon@rozman.si>, 2017
|
|
||||||
#
|
#
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: EAPMethods\n"
|
"Project-Id-Version: EAPMethods\n"
|
||||||
"POT-Creation-Date: 2018-06-20 15:30+0200\n"
|
"POT-Creation-Date: 2018-06-20 15:30+0200\n"
|
||||||
"PO-Revision-Date: 2016-08-25 06:18+0000\n"
|
"PO-Revision-Date: 2016-06-02 12:27+0200\n"
|
||||||
"Last-Translator: Simon Rozman <simon@rozman.si>, 2017\n"
|
"Last-Translator: Simon Rozman <simon@rozman.si>, 2016\n"
|
||||||
"Language-Team: Welsh (https://www.transifex.com/eduroam_devel/teams/11799/cy/)\n"
|
"Language-Team: Welsh (https://www.transifex.com/eduroam_devel/teams/11799/cy/)\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
@ -846,7 +844,7 @@ msgstr ""
|
|||||||
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
#: ver1.0/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: ver1.0/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
#: ver1.1/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: ver1.1/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
msgid "Omit my user name and use @mydomain.org only"
|
msgid "Ommit my user name and use @mydomain.org only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:48
|
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:48
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,714 +0,0 @@
|
|||||||
#
|
|
||||||
# Translators:
|
|
||||||
# Indrek Rokk <indrek.rokk@eenet.ee>, 2018
|
|
||||||
# Simon Rozman <simon@rozman.si>, 2020
|
|
||||||
# Anne M <anne@eenet.ee>, 2021
|
|
||||||
#
|
|
||||||
#, fuzzy
|
|
||||||
msgid ""
|
|
||||||
msgstr ""
|
|
||||||
"Project-Id-Version: EAPMethods\n"
|
|
||||||
"POT-Creation-Date: 2020-04-17 14:55+0200\n"
|
|
||||||
"PO-Revision-Date: 2016-08-25 06:18+0000\n"
|
|
||||||
"Last-Translator: Anne M <anne@eenet.ee>, 2021\n"
|
|
||||||
"Language-Team: Estonian (https://www.transifex.com/eduroam_devel/teams/11799/et/)\n"
|
|
||||||
"MIME-Version: 1.0\n"
|
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
|
||||||
"Language: et\n"
|
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
|
||||||
"X-Generator: Poedit 2.3\n"
|
|
||||||
"X-Poedit-Basepath: ../..\n"
|
|
||||||
"X-Poedit-KeywordsList: _\n"
|
|
||||||
"X-Poedit-SearchPath-0: lib/EAPBase_UI\n"
|
|
||||||
"X-Poedit-SearchPath-1: lib/EapHost_UI\n"
|
|
||||||
"X-Poedit-SearchPath-2: lib/GTC_UI\n"
|
|
||||||
"X-Poedit-SearchPath-3: lib/MSCHAPv2_UI\n"
|
|
||||||
"X-Poedit-SearchPath-4: lib/PAP_UI\n"
|
|
||||||
"X-Poedit-SearchPath-5: lib/TLS_UI\n"
|
|
||||||
"X-Poedit-SearchPath-6: lib/TTLS_UI\n"
|
|
||||||
"X-Poedit-SearchPath-7: EAPMethods\n"
|
|
||||||
"X-Poedit-SourceCharset: UTF-8\n"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/include/EAP_UI.h:295
|
|
||||||
#, c-format
|
|
||||||
msgid ""
|
|
||||||
"Are you sure you want to permanently remove %s provider from configuration?"
|
|
||||||
msgstr ""
|
|
||||||
"Kas oled kindel, et soovid %s teenusepakkuja seadistusest püsivalt "
|
|
||||||
"eemaldada?"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/include/EAP_UI.h:295
|
|
||||||
msgid "Warning"
|
|
||||||
msgstr "Hoiatus"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/include/EAP_UI.h:381 lib/EAPBase_UI/res/wxEAP_UI.h:116
|
|
||||||
msgid "EAP Credentials"
|
|
||||||
msgstr "EAP kasutajakonto"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/include/EAP_UI.h:725
|
|
||||||
msgid "Provider Settings"
|
|
||||||
msgstr "Teenusepakkuja seadistused"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/include/EAP_UI.h:758 lib/EAPBase_UI/res/wxEAP_UI.cpp:229
|
|
||||||
#, c-format
|
|
||||||
msgid "%s User Credentials"
|
|
||||||
msgstr "%s kasutajakonto andmed"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/include/EAP_UI.h:866 lib/TTLS_UI/src/Module.cpp:196
|
|
||||||
#: lib/TTLS_UI/src/Module.cpp:305
|
|
||||||
#, c-format
|
|
||||||
msgid "Error writing credentials to Credential Manager: %hs (error %u)"
|
|
||||||
msgstr ""
|
|
||||||
"Viga kasutajakonto andmete kirjutamisel kasutajakonto halduris (Credential "
|
|
||||||
"Manager): %hs (viga %u)"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/include/EAP_UI.h:869 lib/TTLS_UI/src/Module.cpp:198
|
|
||||||
#: lib/TTLS_UI/src/Module.cpp:307
|
|
||||||
msgid "Writing credentials failed."
|
|
||||||
msgstr "Kasutajakonto andmete kirjutamine ebaõnnestus"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/include/EAP_UI.h:897
|
|
||||||
#, c-format
|
|
||||||
msgid "Deleting credentials failed (error %u)."
|
|
||||||
msgstr "Kasutajakonto andmete kustutamine ebaõnnestus (viga %u)."
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/include/EAP_UI.h:924 lib/EAPBase_UI/include/EAP_UI.h:943
|
|
||||||
#: lib/EAPBase_UI/include/EAP_UI.h:952
|
|
||||||
msgid "(none)"
|
|
||||||
msgstr "(ei midagi)"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/include/EAP_UI.h:928
|
|
||||||
#, c-format
|
|
||||||
msgid "(error %u)"
|
|
||||||
msgstr "(viga %u)"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/include/EAP_UI.h:932
|
|
||||||
msgid "(error)"
|
|
||||||
msgstr "(viga)"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/include/EAP_UI.h:943 lib/EAPBase_UI/include/EAP_UI.h:952
|
|
||||||
msgid "(blank ID)"
|
|
||||||
msgstr "(tühi ID)"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/include/EAP_UI.h:992
|
|
||||||
msgid "&Remember"
|
|
||||||
msgstr "&Jäta meelde"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/include/EAP_UI.h:993
|
|
||||||
msgid "Check if you would like to save credentials"
|
|
||||||
msgstr "Linnuta, kui soovid kasutajakonto andmeid salvestada"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/include/EAP_UI.h:1214
|
|
||||||
msgid "(Your Organization)"
|
|
||||||
msgstr "(Sinu asutus)"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:37
|
|
||||||
msgid "+"
|
|
||||||
msgstr "+"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:38
|
|
||||||
msgid "Adds new provider"
|
|
||||||
msgstr "Lisab uue teenusepakkuja"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:42
|
|
||||||
msgid "-"
|
|
||||||
msgstr "-"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:43
|
|
||||||
msgid "Removes selected provider"
|
|
||||||
msgstr "Eemaldab valitud teenusepakkuja"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:47
|
|
||||||
msgid "Advanced..."
|
|
||||||
msgstr "Keerukam..."
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:48
|
|
||||||
msgid "Opens dialog with provider settings"
|
|
||||||
msgstr "Avab teenusepakkuja seadistuste dialoogi"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:240
|
|
||||||
msgid "Select the source where your credentials used to connect are stored."
|
|
||||||
msgstr ""
|
|
||||||
"Vali koht, kuhu Su ühendumiseks kasutatud kasutajakonto andmed on "
|
|
||||||
"salvestatud."
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:250
|
|
||||||
msgid "Use from Credential &Manager:"
|
|
||||||
msgstr "Kasuta andmeid kasutajakontode hal&durist (Credential Manager):"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:251
|
|
||||||
msgid ""
|
|
||||||
"Select this option if you would like to use credentials stored in Windows "
|
|
||||||
"Credential Manager"
|
|
||||||
msgstr ""
|
|
||||||
"Vali see võimalus, kui soovid kasutada Windowsi kasutajakontode halduris "
|
|
||||||
"(Windows Credential Manager) salvestatud kontoandmeid"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:258
|
|
||||||
msgid "Your present credentials stored in Windows Credential Manager"
|
|
||||||
msgstr ""
|
|
||||||
"Sinu praegused, Windowsi kasutajakontode halduris (Windows Credential "
|
|
||||||
"Manager) salvestatud kontoandmed"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:268
|
|
||||||
msgid "Use from &profile configuration:"
|
|
||||||
msgstr "Kasuta andmeid &profiili seadistusest:"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:269
|
|
||||||
msgid ""
|
|
||||||
"Select this option if you would like to store credentials as a part of "
|
|
||||||
"profile configuration"
|
|
||||||
msgstr ""
|
|
||||||
"Vali see võimalus, kui soovid salvestada kasutajakonto andmed profiili "
|
|
||||||
"seadistustesse."
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:276
|
|
||||||
msgid "Profile configuration credentials"
|
|
||||||
msgstr "Profiili seadistuse kasutajaandmed"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:289
|
|
||||||
msgid "&Clear Credentials"
|
|
||||||
msgstr "&Kustuta kasutajakonto andmed"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:290
|
|
||||||
msgid ""
|
|
||||||
"Click to clear your credentials from Credential Manager.\n"
|
|
||||||
"Note: You will be prompted to enter credentials when connecting."
|
|
||||||
msgstr ""
|
|
||||||
"Klõpsa. et kustutada oma andmed kasutajakonto haldurist.\n"
|
|
||||||
"Märkus: Ühendumisel lastakse Sul sisestada kasutajakonto andmed."
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:294
|
|
||||||
msgid "&Set Credentials..."
|
|
||||||
msgstr "&Määra kasutajakonto andmed..."
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:295
|
|
||||||
msgid "Click here to set or modify your credentials"
|
|
||||||
msgstr "Klõpsa siin oma kasutajakonto andmete määramiseks või muutmiseks"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:332
|
|
||||||
msgid "User ID and Password"
|
|
||||||
msgstr "Kasutaja ID ja parool"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:342
|
|
||||||
msgid "Please provide your user ID and password."
|
|
||||||
msgstr "Palun sisesta oma kasutaja ID ja parool"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:352 lib/EAPBase_UI/res/wxEAP_UI.cpp:416
|
|
||||||
msgid "User ID:"
|
|
||||||
msgstr "Kasutaja ID:"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:357 lib/EAPBase_UI/res/wxEAP_UI.cpp:421
|
|
||||||
msgid "Enter your user name here (user@domain.org, DOMAIN\\User, etc.)"
|
|
||||||
msgstr "Sisesta siin oma kasutajanimi (nimi@domeen.ee, DOMEEN\\kasutaja vmt)"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:361
|
|
||||||
msgid "Password:"
|
|
||||||
msgstr "Parool:"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:366
|
|
||||||
msgid "Enter your password here"
|
|
||||||
msgstr "Sisesta siin oma parool"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:396
|
|
||||||
msgid "User ID"
|
|
||||||
msgstr "Kasutaja ID"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:406
|
|
||||||
msgid "Please provide your user ID."
|
|
||||||
msgstr "Palun sisesta oma kasutaja ID (kasutajanimi)."
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:446
|
|
||||||
msgid "Your Organization"
|
|
||||||
msgstr "Sinu asutus"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:457
|
|
||||||
msgid ""
|
|
||||||
"Describe your organization to customize user prompts. When organization is "
|
|
||||||
"introduced, end-users find program messages easier to understand and act."
|
|
||||||
msgstr ""
|
|
||||||
"Kirjelda oma asutust, et seadistada kasutajaviibad. Kui asutus on "
|
|
||||||
"kirjeldatud, on lõppkasutajatel lihtsam programmi sõnumeid mõista ja neist "
|
|
||||||
"juhinduda."
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:464
|
|
||||||
msgid "Your organization &name:"
|
|
||||||
msgstr "Sinu asutuse &nimi:"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:469
|
|
||||||
msgid ""
|
|
||||||
"Your organization name as it will appear on helpdesk contact notifications"
|
|
||||||
msgstr ""
|
|
||||||
"Sinu asutuse nimi, mida näidatakse kasutajatoega kontakteerumise teadetes"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:473
|
|
||||||
msgid "(Keep it short, please)"
|
|
||||||
msgstr "(Palun kirjuta lühidalt)"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:483
|
|
||||||
msgid "Helpdesk contact &information:"
|
|
||||||
msgstr "Kasutajatoe k&ontaktteave:"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:500
|
|
||||||
msgid "Your helpdesk website address"
|
|
||||||
msgstr "Sinu kasutajatoe veebiaadress"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:511
|
|
||||||
msgid "Your helpdesk e-mail address"
|
|
||||||
msgstr "Sinu kasutajatoe e-posti aadress"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:522
|
|
||||||
msgid "Your helpdesk phone number"
|
|
||||||
msgstr "Sinu kasutajatoe telefoninumber"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:550
|
|
||||||
msgid "Provider Unique Identifier"
|
|
||||||
msgstr "Teenusepakkuja unikaalne identifikaator"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:561
|
|
||||||
msgid ""
|
|
||||||
"Assign your organization a unique ID to allow sharing the same credential "
|
|
||||||
"set across different network profiles."
|
|
||||||
msgstr ""
|
|
||||||
"Määra oma asutusele unikaalne ID, et samu kontoandmeid saaks kasutada "
|
|
||||||
"erinevatel võrguprofiilidel."
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:568
|
|
||||||
msgid "&Namespace:"
|
|
||||||
msgstr "&Nimeruum:"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:572
|
|
||||||
msgid "urn:RFC4282:realm"
|
|
||||||
msgstr "urn:RFC4282:realm"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:572
|
|
||||||
msgid "urn:uuid"
|
|
||||||
msgstr "urn:uuid"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:584
|
|
||||||
msgid "Provider unique &identifier:"
|
|
||||||
msgstr "Teenusepakkuja unikaalne &identifikaator:"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:589
|
|
||||||
msgid "Your organization ID to assign same credentials from other profiles"
|
|
||||||
msgstr "Sinu asutuse ID, et määrata samu kontoandmeid teistelt profiilidelt"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:614
|
|
||||||
msgid "Configuration Lock"
|
|
||||||
msgstr "Seadistuslukk"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:625
|
|
||||||
msgid ""
|
|
||||||
"Your configuration can be locked to prevent accidental modification by end-"
|
|
||||||
"users. Users will only be allowed to enter credentials."
|
|
||||||
msgstr ""
|
|
||||||
"Seadistuslukk ei lase lõppkasutajatel kogemata muudatusi teha. Kasutajad "
|
|
||||||
"saavad ainult kasutajakontoandmeid sisestada."
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:632
|
|
||||||
msgid ""
|
|
||||||
"&Lock this configuration and prevent any further modification via user "
|
|
||||||
"interface."
|
|
||||||
msgstr ""
|
|
||||||
"&Lukusta see seadistus ja hoia ära selle muutmine kasutajaliidese kaudu"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:635
|
|
||||||
msgid "(Warning: Once locked, you can not revert using this dialog!)"
|
|
||||||
msgstr ""
|
|
||||||
"(Hoiatus: Lukustamise järel ei saa Sa seda dialoogi kasutades tehtut tagasi "
|
|
||||||
"pöörata!)"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:700
|
|
||||||
msgid "Identity"
|
|
||||||
msgstr "Identiteet"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:711
|
|
||||||
msgid "Select the user ID supplicant introduces itself as to authenticator:"
|
|
||||||
msgstr "Vali kasutajanimi, mida pistikprogramm autentijale näitab:"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:718
|
|
||||||
msgid "&True identity"
|
|
||||||
msgstr "&Tõene identiteet"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:719
|
|
||||||
msgid "Use my true user name"
|
|
||||||
msgstr "Kasuta mu tõest kasutajanime"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:723
|
|
||||||
msgid "Use &empty identity"
|
|
||||||
msgstr "Kasuta t&ühja identiteeti"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:724
|
|
||||||
msgid "Omit my user name and use @mydomain.org only"
|
|
||||||
msgstr "Jäta mu kasutajanimi ära ja kasuta ainult @minudomeeni"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:731
|
|
||||||
msgid "&Custom identity:"
|
|
||||||
msgstr "Kohandatud &identiteet:"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:732
|
|
||||||
msgid "Specify custom identity"
|
|
||||||
msgstr "Määra kohandatud identiteet"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:737
|
|
||||||
msgid "Custom identity to use"
|
|
||||||
msgstr "Kohandatud identiteet kasutamiseks"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.h:66
|
|
||||||
msgid "EAP Connection Configuration"
|
|
||||||
msgstr "EAP ühenduse seadistus"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.h:329
|
|
||||||
msgid "EAP Identity Provider"
|
|
||||||
msgstr "EAP identiteedipakkuja"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:103
|
|
||||||
#, c-format
|
|
||||||
msgid "%s Credentials"
|
|
||||||
msgstr "%s kasutajakonto andmed"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:139
|
|
||||||
#, c-format
|
|
||||||
msgid "For additional help and instructions, please contact %s at:"
|
|
||||||
msgstr "Abi ja juhendite saamiseks võta palun ühendust: %s "
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:140
|
|
||||||
msgid "your provider"
|
|
||||||
msgstr "sinu teenusepakkuja"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:159
|
|
||||||
msgid "Open the default web browser"
|
|
||||||
msgstr "Ava vaikimisi määratud veebilehitseja"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:170
|
|
||||||
msgid "Open your e-mail program"
|
|
||||||
msgstr "Ava oma e-postiprogramm"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:181
|
|
||||||
msgid "Dial the phone number"
|
|
||||||
msgstr "Vali telefoninumber"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:203
|
|
||||||
#, c-format
|
|
||||||
msgid ""
|
|
||||||
"%s has pre-set parts of this configuration. Those parts are locked to "
|
|
||||||
"prevent accidental modification."
|
|
||||||
msgstr ""
|
|
||||||
"%s omab selles seadistuses eelseatud osi, mis on juhuslike muudatuste eest "
|
|
||||||
"kaitsmiseks lukustatud."
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:204
|
|
||||||
msgid "Your provider"
|
|
||||||
msgstr "Sinu teenusepakkuja"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:225
|
|
||||||
msgid "Previous attempt to connect reported invalid credentials."
|
|
||||||
msgstr "Eelmine ühendumiskatse oli mittekehtivate kasutajakonto andmetega."
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:226
|
|
||||||
msgid "Previous attempt to connect reported your credentials expired."
|
|
||||||
msgstr "Eelmise ühendumiskatse kohaselt olid su kasutajakonto andmed aegunud."
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:227
|
|
||||||
msgid ""
|
|
||||||
"Previous attempt to connect reported your credentials are being changed."
|
|
||||||
msgstr "Eelmise ühendumiskatse kohaselt on su kasutajakonto andmed muutmisel."
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:228
|
|
||||||
msgid "Previous attempt to connect failed."
|
|
||||||
msgstr "Eelmine ühendumiskatse ebaõnnestus."
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:229
|
|
||||||
msgid "Please, make sure your credentials are correct, or try again later."
|
|
||||||
msgstr ""
|
|
||||||
"Palun veendu, et Su kasutajakonto andmed on korrektsed, või proovi hiljem "
|
|
||||||
"uuesti."
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:250
|
|
||||||
#, c-format
|
|
||||||
msgid ""
|
|
||||||
"The %s version installed on this computer logs credentials in visible and "
|
|
||||||
"easy to read way."
|
|
||||||
msgstr ""
|
|
||||||
"%s versioon selles arvutis logib kasutajakonto andmeid nähtavalt ja lihtsalt"
|
|
||||||
" loetavalt."
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:251
|
|
||||||
msgid "Please, reconsider necessity to enter your credentials."
|
|
||||||
msgstr "Palun kaalu oma kasutajakonto andmete sisestamise vajalikkust."
|
|
||||||
|
|
||||||
#: lib/EapHost_UI/res/wxEapHost_UI.cpp:17
|
|
||||||
msgid "Inner EAP Method"
|
|
||||||
msgstr "Sisemine EAP meetod"
|
|
||||||
|
|
||||||
#: lib/EapHost_UI/res/wxEapHost_UI.cpp:28
|
|
||||||
msgid "Select and configure inner EAP method"
|
|
||||||
msgstr "Vali ja seadista sisemine EAP meetod"
|
|
||||||
|
|
||||||
#: lib/EapHost_UI/res/wxEapHost_UI.cpp:40
|
|
||||||
msgid "&Settings"
|
|
||||||
msgstr "&Seadistused"
|
|
||||||
|
|
||||||
#: lib/EapHost_UI/src/EapHost_UI.cpp:59
|
|
||||||
#, c-format
|
|
||||||
msgid "Enumerating EAP methods failed (error %u, %s, %s)."
|
|
||||||
msgstr "EAP meetodite loetlemine ebaõnnestus (viga %u, %s, %s)."
|
|
||||||
|
|
||||||
#: lib/EapHost_UI/src/EapHost_UI.cpp:61
|
|
||||||
#, c-format
|
|
||||||
msgid "Enumerating EAP methods failed (error %u)."
|
|
||||||
msgstr "EAP meetodite loetlemine ebaõnnestus (viga %u)."
|
|
||||||
|
|
||||||
#: lib/EapHost_UI/src/EapHost_UI.cpp:136
|
|
||||||
#, c-format
|
|
||||||
msgid "Configuring EAP method failed (error %u, %s, %s)."
|
|
||||||
msgstr "EAP meetodi seadistamine ebaõnnestus (viga %u, %s, %s)."
|
|
||||||
|
|
||||||
#: lib/EapHost_UI/src/EapHost_UI.cpp:138
|
|
||||||
#, c-format
|
|
||||||
msgid "Configuring EAP method failed (error %u)."
|
|
||||||
msgstr "EAP meetodi seadistamine ebaõnnestus (viga %u)."
|
|
||||||
|
|
||||||
#: lib/GTC_UI/include/GTC_UI.h:114 lib/GTC_UI/res/wxGTC_UI.cpp:16
|
|
||||||
msgid "GTC Challenge"
|
|
||||||
msgstr "GTC pretensioon"
|
|
||||||
|
|
||||||
#: lib/GTC_UI/res/wxGTC_UI.cpp:26
|
|
||||||
msgid "Please provide your response."
|
|
||||||
msgstr "Palun sisesta oma vastus."
|
|
||||||
|
|
||||||
#: lib/GTC_UI/res/wxGTC_UI.cpp:38
|
|
||||||
msgid "Server challenge"
|
|
||||||
msgstr "Serveri pretensioon"
|
|
||||||
|
|
||||||
#: lib/GTC_UI/res/wxGTC_UI.cpp:43
|
|
||||||
msgid "Enter your response here"
|
|
||||||
msgstr "Sisesta siin oma vastus."
|
|
||||||
|
|
||||||
#: lib/GTC_UI/res/wxGTC_UI.cpp:70
|
|
||||||
msgid "EAP-GTC authentication &mode:"
|
|
||||||
msgstr "EAP-GTC &autentimisrežiim:"
|
|
||||||
|
|
||||||
#: lib/GTC_UI/res/wxGTC_UI.cpp:75
|
|
||||||
msgid "Select EAP-GTC authentication mode from the list"
|
|
||||||
msgstr "Vali loetelust EAP-GTC autentimisrežiim"
|
|
||||||
|
|
||||||
#: lib/GTC_UI/src/GTC_UI.cpp:39
|
|
||||||
msgid "Challenge/Response"
|
|
||||||
msgstr "Pretensioon/Vastus"
|
|
||||||
|
|
||||||
#: lib/GTC_UI/src/GTC_UI.cpp:41
|
|
||||||
msgid "Password"
|
|
||||||
msgstr "Parool"
|
|
||||||
|
|
||||||
#: lib/GTC_UI/src/GTC_UI.cpp:119
|
|
||||||
#, c-format
|
|
||||||
msgid "%s Challenge"
|
|
||||||
msgstr "%s pretensioon"
|
|
||||||
|
|
||||||
#: lib/MSCHAPv2_UI/src/MSCHAPv2_UI.cpp:33
|
|
||||||
msgid "MSCHAPv2 User ID and Password"
|
|
||||||
msgstr "MSCHAPv2 kasutajanimi ja parool"
|
|
||||||
|
|
||||||
#: lib/PAP_UI/src/PAP_UI.cpp:33
|
|
||||||
msgid "PAP User ID and Password"
|
|
||||||
msgstr "PAP kasutajanimi ja parool"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:17
|
|
||||||
msgid "Server Trust"
|
|
||||||
msgstr "Serveri usaldamine"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:28
|
|
||||||
msgid "Describe the servers you trust to prevent man-in-the-middle attacks."
|
|
||||||
msgstr "Loetle serverid, mida usaldad vahendusrünnete tõrjumiseks."
|
|
||||||
|
|
||||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:35
|
|
||||||
msgid "Acceptable Certificate Authorities:"
|
|
||||||
msgstr "Lubatud sertifitseerimiskeskused:"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:40
|
|
||||||
msgid ""
|
|
||||||
"Server's certificate must be issued by one of certificate authorities listed"
|
|
||||||
" here"
|
|
||||||
msgstr ""
|
|
||||||
"Serverisertifikaat peab olema väljastatud siin loetletud "
|
|
||||||
"sertifitseerimiskeskuse poolt"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:47
|
|
||||||
msgid "Add CA from Store..."
|
|
||||||
msgstr "Lisa sertifikaadilaost CA..."
|
|
||||||
|
|
||||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:48
|
|
||||||
msgid ""
|
|
||||||
"Adds a new certificate authority from the certificate store to the list"
|
|
||||||
msgstr "Lisab sertikaadilaost nimekirja uue sertifitseerimiskeskuse"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:52
|
|
||||||
msgid "Add CA from File..."
|
|
||||||
msgstr "Lisa failist CA..."
|
|
||||||
|
|
||||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:53
|
|
||||||
msgid "Adds a new certificate authority from the file to the list"
|
|
||||||
msgstr "Lisab failist nimekirja uue sertifitseerimiskeskuse"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:57
|
|
||||||
msgid "&Remove CA"
|
|
||||||
msgstr "Eemalda &CA"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:58
|
|
||||||
msgid "Removes selected certificate authorities from the list"
|
|
||||||
msgstr "Eemaldab valitud sertifitseerimiskeskused nimekirjast"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:71
|
|
||||||
msgid "Acceptable server &names:"
|
|
||||||
msgstr "Lubatud serveri&nimed:"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:76
|
|
||||||
msgid ""
|
|
||||||
"A semicolon delimited list of acceptable server FQDN names; blank to skip "
|
|
||||||
"name check; Unicode characters allowed"
|
|
||||||
msgstr ""
|
|
||||||
"Semikoolonitega eraldatult nimekiri lubatud serverite FQDN nimedest; "
|
|
||||||
"nimekontrolli vahelejätmiseks tühik; lubatud on Unicode märgistik"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:80
|
|
||||||
msgid "(Example: foo.bar.com;server2.bar.com)"
|
|
||||||
msgstr "(Näide: yks.näide.ee;2.teine.ee)"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:118 lib/TLS_UI/src/TLS_UI.cpp:400
|
|
||||||
msgid "User Certificate"
|
|
||||||
msgstr "Kasutaja sertifikaat"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:128
|
|
||||||
msgid "Please select your &certificate to use for authentication."
|
|
||||||
msgstr "Palun vali autentimiseks oma serti&fikaat"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:135
|
|
||||||
msgid "Client certificate to use for authentication"
|
|
||||||
msgstr "Autentimisel kasutatav kliendisertifikaat"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:142
|
|
||||||
msgid "Custom &identity:"
|
|
||||||
msgstr "Kohandatud &identiteet:"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:147
|
|
||||||
msgid ""
|
|
||||||
"Your identity (username@domain) to override one from certificate; or blank "
|
|
||||||
"to use one provided in certificate"
|
|
||||||
msgstr ""
|
|
||||||
"Sinu identiteet (kasutajanimi@domeen), millega kirjutatakse üle "
|
|
||||||
"sertifikaadis olev; kui jätad tühjaks, kasutatakse sertifikaadis olevat"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/src/TLS_UI.cpp:118
|
|
||||||
msgid "No certificate selected"
|
|
||||||
msgstr "Sertifikaati ei ole valitud"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/src/TLS_UI.cpp:118
|
|
||||||
msgid "Validation conflict"
|
|
||||||
msgstr "Valideerimiskonflikt"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/src/TLS_UI.cpp:327
|
|
||||||
msgid "Add Certificate"
|
|
||||||
msgstr "Lisa sertifikaat"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/src/TLS_UI.cpp:328
|
|
||||||
msgid "Certificate Files (*.cer;*.crt;*.der;*.p7b;*.pem)"
|
|
||||||
msgstr "Sertifikaadi failid (*.cer;*.crt;*.der;*.p7b;*.pem)"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/src/TLS_UI.cpp:329
|
|
||||||
msgid "X.509 Certificate Files (*.cer;*.crt;*.der;*.pem)"
|
|
||||||
msgstr "X.509 sertifikaadi failid (*.cer;*.crt;*.der;*.p7b;*.pem)"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/src/TLS_UI.cpp:330
|
|
||||||
msgid "PKCS #7 Certificate Files (*.p7b)"
|
|
||||||
msgstr "PKCS #7 sertifikaadi failid (*.p7b)"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/src/TLS_UI.cpp:331
|
|
||||||
msgid "All Files (*.*)"
|
|
||||||
msgstr "Kõik failid (*.*)"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/src/TLS_UI.cpp:345
|
|
||||||
#, c-format
|
|
||||||
msgid "Invalid or unsupported certificate file %s"
|
|
||||||
msgstr "Vigane või mittetoetatud sertifikaadifail %s"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/src/TLS_UI.cpp:345
|
|
||||||
msgid "Error"
|
|
||||||
msgstr "Viga"
|
|
||||||
|
|
||||||
#: lib/TTLS_UI/src/Module.cpp:249
|
|
||||||
#, c-format
|
|
||||||
msgid "Invoking EAP identity UI failed (error %u, %s, %s)."
|
|
||||||
msgstr "EAP identiteedi UI aktiveerimine ebaõnnestus (viga %u, %s, %s)."
|
|
||||||
|
|
||||||
#: lib/TTLS_UI/src/Module.cpp:252
|
|
||||||
#, c-format
|
|
||||||
msgid "Invoking EAP identity UI failed (error %u)."
|
|
||||||
msgstr "EAP identiteedi UI aktiveerimine ebaõnnestus (viga %u)."
|
|
||||||
|
|
||||||
#: lib/TTLS_UI/src/Module.cpp:376
|
|
||||||
#, c-format
|
|
||||||
msgid "Invoking EAP interactive UI failed (error %u, %s, %s)."
|
|
||||||
msgstr "EAP interaktiivse UI aktiveerimine ebaõnnestus (viga %u, %s, %s)."
|
|
||||||
|
|
||||||
#: lib/TTLS_UI/src/Module.cpp:379
|
|
||||||
#, c-format
|
|
||||||
msgid "Invoking EAP interactive UI failed (error %u)."
|
|
||||||
msgstr "EAP interaktiivse UI aktiveerimine ebaõnnestus (viga %u)."
|
|
||||||
|
|
||||||
#: lib/TTLS_UI/src/TTLS_UI.cpp:37
|
|
||||||
msgid "Outer Authentication"
|
|
||||||
msgstr "Väline autentimine"
|
|
||||||
|
|
||||||
#: lib/TTLS_UI/src/TTLS_UI.cpp:50
|
|
||||||
msgid "Inner Authentication"
|
|
||||||
msgstr "Sisemine autentimine"
|
|
||||||
|
|
||||||
#: lib/TTLS_UI/src/TTLS_UI.cpp:56
|
|
||||||
msgid "Select inner authentication method from the list"
|
|
||||||
msgstr "Vali nimekirjast sisemise autentimise meetod"
|
|
||||||
|
|
||||||
#: lib/TTLS_UI/src/TTLS_UI.cpp:127
|
|
||||||
msgid "PAP"
|
|
||||||
msgstr "PAP"
|
|
||||||
|
|
||||||
#: lib/TTLS_UI/src/TTLS_UI.cpp:129
|
|
||||||
msgid "MSCHAPv2"
|
|
||||||
msgstr "MSCHAPv2"
|
|
||||||
|
|
||||||
#: lib/TTLS_UI/src/TTLS_UI.cpp:131
|
|
||||||
msgid "EAP-MSCHAPv2"
|
|
||||||
msgstr "EAP-MSCHAPv2"
|
|
||||||
|
|
||||||
#: lib/TTLS_UI/src/TTLS_UI.cpp:133
|
|
||||||
msgid "EAP-GTC"
|
|
||||||
msgstr "EAP-GTC"
|
|
||||||
|
|
||||||
#: lib/TTLS_UI/src/TTLS_UI.cpp:136
|
|
||||||
msgid "Other EAP methods..."
|
|
||||||
msgstr "Muud EAP meetodid..."
|
|
||||||
|
|
||||||
#: EAPMethods/MSIBuild.EAP-TTLS/en_US.ARM64.Release.Feature-2.idtx:4
|
|
||||||
#: EAPMethods/MSIBuild.EAP-TTLS/en_US.Win32.Release.Feature-2.idtx:4
|
|
||||||
#: EAPMethods/MSIBuild.EAP-TTLS/en_US.x64.Release.Feature-2.idtx:4
|
|
||||||
msgid "EAP-TTLS"
|
|
||||||
msgstr "EAP-TTLS"
|
|
||||||
|
|
||||||
#: EAPMethods/MSIBuild.EAP-TTLS/en_US.ARM64.Release.Feature-2.idtx:4
|
|
||||||
#: EAPMethods/MSIBuild.EAP-TTLS/en_US.Win32.Release.Feature-2.idtx:4
|
|
||||||
#: EAPMethods/MSIBuild.EAP-TTLS/en_US.x64.Release.Feature-2.idtx:4
|
|
||||||
msgid "EAP-TTLS Method"
|
|
||||||
msgstr "EAP-TTLS meetod"
|
|
||||||
|
|
||||||
#: EAPMethods/MSIBuild/en_US.ARM64.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 "EAP meetodid"
|
|
||||||
|
|
||||||
#: EAPMethods/MSIBuild/en_US.ARM64.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 "Moodulid individuaalsete EAP meetodite toeks"
|
|
@ -1,13 +1,11 @@
|
|||||||
# Translators:
|
|
||||||
# Simon Rozman <simon@rozman.si>, 2017
|
|
||||||
#
|
#
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: EAPMethods\n"
|
"Project-Id-Version: EAPMethods\n"
|
||||||
"POT-Creation-Date: 2018-06-20 15:30+0200\n"
|
"POT-Creation-Date: 2018-06-20 15:30+0200\n"
|
||||||
"PO-Revision-Date: 2016-08-25 06:18+0000\n"
|
"PO-Revision-Date: 2016-06-02 12:27+0200\n"
|
||||||
"Last-Translator: Simon Rozman <simon@rozman.si>, 2017\n"
|
"Last-Translator: Simon Rozman <simon@rozman.si>, 2016\n"
|
||||||
"Language-Team: Basque (Spain) (https://www.transifex.com/eduroam_devel/teams/11799/eu_ES/)\n"
|
"Language-Team: Basque (Spain) (https://www.transifex.com/eduroam_devel/teams/11799/eu_ES/)\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
@ -846,7 +844,7 @@ msgstr ""
|
|||||||
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
#: ver1.0/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: ver1.0/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
#: ver1.1/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: ver1.1/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
msgid "Omit my user name and use @mydomain.org only"
|
msgid "Ommit my user name and use @mydomain.org only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:48
|
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:48
|
||||||
|
@ -1,13 +1,11 @@
|
|||||||
# Translators:
|
|
||||||
# Simon Rozman <simon@rozman.si>, 2017
|
|
||||||
#
|
#
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: EAPMethods\n"
|
"Project-Id-Version: EAPMethods\n"
|
||||||
"POT-Creation-Date: 2018-06-20 15:30+0200\n"
|
"POT-Creation-Date: 2018-06-20 15:30+0200\n"
|
||||||
"PO-Revision-Date: 2016-08-25 06:18+0000\n"
|
"PO-Revision-Date: 2016-06-02 12:27+0200\n"
|
||||||
"Last-Translator: Simon Rozman <simon@rozman.si>, 2017\n"
|
"Last-Translator: Simon Rozman <simon@rozman.si>, 2016\n"
|
||||||
"Language-Team: Finnish (Finland) (https://www.transifex.com/eduroam_devel/teams/11799/fi_FI/)\n"
|
"Language-Team: Finnish (Finland) (https://www.transifex.com/eduroam_devel/teams/11799/fi_FI/)\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
@ -846,7 +844,7 @@ msgstr ""
|
|||||||
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
#: ver1.0/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: ver1.0/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
#: ver1.1/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: ver1.1/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
msgid "Omit my user name and use @mydomain.org only"
|
msgid "Ommit my user name and use @mydomain.org only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:48
|
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:48
|
||||||
|
@ -1,13 +1,11 @@
|
|||||||
# Translators:
|
|
||||||
# Simon Rozman <simon@rozman.si>, 2017
|
|
||||||
#
|
#
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: EAPMethods\n"
|
"Project-Id-Version: EAPMethods\n"
|
||||||
"POT-Creation-Date: 2018-06-20 15:30+0200\n"
|
"POT-Creation-Date: 2018-06-20 15:30+0200\n"
|
||||||
"PO-Revision-Date: 2016-08-25 06:18+0000\n"
|
"PO-Revision-Date: 2016-06-02 12:27+0200\n"
|
||||||
"Last-Translator: Simon Rozman <simon@rozman.si>, 2017\n"
|
"Last-Translator: Simon Rozman <simon@rozman.si>, 2016\n"
|
||||||
"Language-Team: French (Canada) (https://www.transifex.com/eduroam_devel/teams/11799/fr_CA/)\n"
|
"Language-Team: French (Canada) (https://www.transifex.com/eduroam_devel/teams/11799/fr_CA/)\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
@ -846,7 +844,7 @@ msgstr ""
|
|||||||
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
#: ver1.0/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: ver1.0/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
#: ver1.1/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: ver1.1/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
msgid "Omit my user name and use @mydomain.org only"
|
msgid "Ommit my user name and use @mydomain.org only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:48
|
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:48
|
||||||
|
@ -1,13 +1,11 @@
|
|||||||
# Translators:
|
|
||||||
# Simon Rozman <simon@rozman.si>, 2017
|
|
||||||
#
|
#
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: EAPMethods\n"
|
"Project-Id-Version: EAPMethods\n"
|
||||||
"POT-Creation-Date: 2018-06-20 15:30+0200\n"
|
"POT-Creation-Date: 2018-06-20 15:30+0200\n"
|
||||||
"PO-Revision-Date: 2016-08-25 06:18+0000\n"
|
"PO-Revision-Date: 2016-06-02 12:27+0200\n"
|
||||||
"Last-Translator: Simon Rozman <simon@rozman.si>, 2017\n"
|
"Last-Translator: Simon Rozman <simon@rozman.si>, 2016\n"
|
||||||
"Language-Team: French (France) (https://www.transifex.com/eduroam_devel/teams/11799/fr_FR/)\n"
|
"Language-Team: French (France) (https://www.transifex.com/eduroam_devel/teams/11799/fr_FR/)\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
@ -846,7 +844,7 @@ msgstr ""
|
|||||||
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
#: ver1.0/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: ver1.0/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
#: ver1.1/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: ver1.1/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
msgid "Omit my user name and use @mydomain.org only"
|
msgid "Ommit my user name and use @mydomain.org only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:48
|
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:48
|
||||||
|
@ -1,13 +1,11 @@
|
|||||||
# Translators:
|
|
||||||
# Simon Rozman <simon@rozman.si>, 2017
|
|
||||||
#
|
#
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: EAPMethods\n"
|
"Project-Id-Version: EAPMethods\n"
|
||||||
"POT-Creation-Date: 2018-06-20 15:30+0200\n"
|
"POT-Creation-Date: 2018-06-20 15:30+0200\n"
|
||||||
"PO-Revision-Date: 2016-08-25 06:18+0000\n"
|
"PO-Revision-Date: 2016-06-02 12:27+0200\n"
|
||||||
"Last-Translator: Simon Rozman <simon@rozman.si>, 2017\n"
|
"Last-Translator: Simon Rozman <simon@rozman.si>, 2016\n"
|
||||||
"Language-Team: Galician (Spain) (https://www.transifex.com/eduroam_devel/teams/11799/gl_ES/)\n"
|
"Language-Team: Galician (Spain) (https://www.transifex.com/eduroam_devel/teams/11799/gl_ES/)\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
@ -846,7 +844,7 @@ msgstr ""
|
|||||||
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
#: ver1.0/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: ver1.0/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
#: ver1.1/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: ver1.1/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
msgid "Omit my user name and use @mydomain.org only"
|
msgid "Ommit my user name and use @mydomain.org only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:48
|
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:48
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,13 +1,11 @@
|
|||||||
# Translators:
|
|
||||||
# Simon Rozman <simon@rozman.si>, 2017
|
|
||||||
#
|
#
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: EAPMethods\n"
|
"Project-Id-Version: EAPMethods\n"
|
||||||
"POT-Creation-Date: 2018-06-20 15:30+0200\n"
|
"POT-Creation-Date: 2018-06-20 15:30+0200\n"
|
||||||
"PO-Revision-Date: 2016-08-25 06:18+0000\n"
|
"PO-Revision-Date: 2016-06-02 12:27+0200\n"
|
||||||
"Last-Translator: Simon Rozman <simon@rozman.si>, 2017\n"
|
"Last-Translator: Simon Rozman <simon@rozman.si>, 2016\n"
|
||||||
"Language-Team: Icelandic (https://www.transifex.com/eduroam_devel/teams/11799/is/)\n"
|
"Language-Team: Icelandic (https://www.transifex.com/eduroam_devel/teams/11799/is/)\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
@ -846,7 +844,7 @@ msgstr ""
|
|||||||
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
#: ver1.0/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: ver1.0/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
#: ver1.1/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: ver1.1/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
msgid "Omit my user name and use @mydomain.org only"
|
msgid "Ommit my user name and use @mydomain.org only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:48
|
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:48
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,13 +1,11 @@
|
|||||||
# Translators:
|
|
||||||
# Simon Rozman <simon@rozman.si>, 2017
|
|
||||||
#
|
#
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: EAPMethods\n"
|
"Project-Id-Version: EAPMethods\n"
|
||||||
"POT-Creation-Date: 2018-06-20 15:30+0200\n"
|
"POT-Creation-Date: 2018-06-20 15:30+0200\n"
|
||||||
"PO-Revision-Date: 2016-08-25 06:18+0000\n"
|
"PO-Revision-Date: 2016-06-02 12:27+0200\n"
|
||||||
"Last-Translator: Simon Rozman <simon@rozman.si>, 2017\n"
|
"Last-Translator: Simon Rozman <simon@rozman.si>, 2016\n"
|
||||||
"Language-Team: Lithuanian (https://www.transifex.com/eduroam_devel/teams/11799/lt/)\n"
|
"Language-Team: Lithuanian (https://www.transifex.com/eduroam_devel/teams/11799/lt/)\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
@ -882,7 +880,7 @@ msgstr "Naudoti &tuščią išorinę tapatybę"
|
|||||||
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
#: ver1.0/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: ver1.0/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
#: ver1.1/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: ver1.1/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
msgid "Omit my user name and use @mydomain.org only"
|
msgid "Ommit my user name and use @mydomain.org only"
|
||||||
msgstr "Praleisti mano naudotojo vardą ir naudoti tik @domenas.lt"
|
msgstr "Praleisti mano naudotojo vardą ir naudoti tik @domenas.lt"
|
||||||
|
|
||||||
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:48
|
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:48
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,13 +1,11 @@
|
|||||||
# Translators:
|
|
||||||
# Simon Rozman <simon@rozman.si>, 2017
|
|
||||||
#
|
#
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: EAPMethods\n"
|
"Project-Id-Version: EAPMethods\n"
|
||||||
"POT-Creation-Date: 2018-06-20 15:30+0200\n"
|
"POT-Creation-Date: 2018-06-20 15:30+0200\n"
|
||||||
"PO-Revision-Date: 2016-08-25 06:18+0000\n"
|
"PO-Revision-Date: 2016-06-02 12:27+0200\n"
|
||||||
"Last-Translator: Simon Rozman <simon@rozman.si>, 2017\n"
|
"Last-Translator: Simon Rozman <simon@rozman.si>, 2016\n"
|
||||||
"Language-Team: Dutch (https://www.transifex.com/eduroam_devel/teams/11799/nl/)\n"
|
"Language-Team: Dutch (https://www.transifex.com/eduroam_devel/teams/11799/nl/)\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
@ -846,7 +844,7 @@ msgstr ""
|
|||||||
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
#: ver1.0/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: ver1.0/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
#: ver1.1/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: ver1.1/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
msgid "Omit my user name and use @mydomain.org only"
|
msgid "Ommit my user name and use @mydomain.org only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:48
|
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:48
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,729 +0,0 @@
|
|||||||
#
|
|
||||||
# Translators:
|
|
||||||
# Simon Rozman <simon@rozman.si>, 2020
|
|
||||||
# Raul Opruta <raul.opruta@roedu.net>, 2020
|
|
||||||
#
|
|
||||||
#, fuzzy
|
|
||||||
msgid ""
|
|
||||||
msgstr ""
|
|
||||||
"Project-Id-Version: EAPMethods\n"
|
|
||||||
"POT-Creation-Date: 2020-04-17 14:55+0200\n"
|
|
||||||
"PO-Revision-Date: 2016-08-25 06:18+0000\n"
|
|
||||||
"Last-Translator: Raul Opruta <raul.opruta@roedu.net>, 2020\n"
|
|
||||||
"Language-Team: Romanian (Romania) (https://www.transifex.com/eduroam_devel/teams/11799/ro_RO/)\n"
|
|
||||||
"MIME-Version: 1.0\n"
|
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
|
||||||
"Language: ro_RO\n"
|
|
||||||
"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"
|
|
||||||
"X-Generator: Poedit 2.3\n"
|
|
||||||
"X-Poedit-Basepath: ../..\n"
|
|
||||||
"X-Poedit-KeywordsList: _\n"
|
|
||||||
"X-Poedit-SearchPath-0: lib/EAPBase_UI\n"
|
|
||||||
"X-Poedit-SearchPath-1: lib/EapHost_UI\n"
|
|
||||||
"X-Poedit-SearchPath-2: lib/GTC_UI\n"
|
|
||||||
"X-Poedit-SearchPath-3: lib/MSCHAPv2_UI\n"
|
|
||||||
"X-Poedit-SearchPath-4: lib/PAP_UI\n"
|
|
||||||
"X-Poedit-SearchPath-5: lib/TLS_UI\n"
|
|
||||||
"X-Poedit-SearchPath-6: lib/TTLS_UI\n"
|
|
||||||
"X-Poedit-SearchPath-7: EAPMethods\n"
|
|
||||||
"X-Poedit-SourceCharset: UTF-8\n"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/include/EAP_UI.h:295
|
|
||||||
#, c-format
|
|
||||||
msgid ""
|
|
||||||
"Are you sure you want to permanently remove %s provider from configuration?"
|
|
||||||
msgstr ""
|
|
||||||
"Sunteți sigur că doriți să eliminați definitiv furnizorul %s din "
|
|
||||||
"configurație?"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/include/EAP_UI.h:295
|
|
||||||
msgid "Warning"
|
|
||||||
msgstr "Avertizare"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/include/EAP_UI.h:381 lib/EAPBase_UI/res/wxEAP_UI.h:116
|
|
||||||
msgid "EAP Credentials"
|
|
||||||
msgstr "Credenţiale EAP"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/include/EAP_UI.h:725
|
|
||||||
msgid "Provider Settings"
|
|
||||||
msgstr "Setări de provider"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/include/EAP_UI.h:758 lib/EAPBase_UI/res/wxEAP_UI.cpp:229
|
|
||||||
#, c-format
|
|
||||||
msgid "%s User Credentials"
|
|
||||||
msgstr "%s Credenţiale utilizator"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/include/EAP_UI.h:866 lib/TTLS_UI/src/Module.cpp:196
|
|
||||||
#: lib/TTLS_UI/src/Module.cpp:305
|
|
||||||
#, c-format
|
|
||||||
msgid "Error writing credentials to Credential Manager: %hs (error %u)"
|
|
||||||
msgstr ""
|
|
||||||
"Eroare la scriere a credențialelor în Managerul de credențiale: % hs "
|
|
||||||
"(eroare%u)"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/include/EAP_UI.h:869 lib/TTLS_UI/src/Module.cpp:198
|
|
||||||
#: lib/TTLS_UI/src/Module.cpp:307
|
|
||||||
msgid "Writing credentials failed."
|
|
||||||
msgstr " Scrierea credențialele nu au reușit."
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/include/EAP_UI.h:897
|
|
||||||
#, c-format
|
|
||||||
msgid "Deleting credentials failed (error %u)."
|
|
||||||
msgstr "Ştergerea credenţialelor eşuată (eroare %u)."
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/include/EAP_UI.h:924 lib/EAPBase_UI/include/EAP_UI.h:943
|
|
||||||
#: lib/EAPBase_UI/include/EAP_UI.h:952
|
|
||||||
msgid "(none)"
|
|
||||||
msgstr "(nici unul)"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/include/EAP_UI.h:928
|
|
||||||
#, c-format
|
|
||||||
msgid "(error %u)"
|
|
||||||
msgstr "(eroare %u )"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/include/EAP_UI.h:932
|
|
||||||
msgid "(error)"
|
|
||||||
msgstr "(eroare)"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/include/EAP_UI.h:943 lib/EAPBase_UI/include/EAP_UI.h:952
|
|
||||||
msgid "(blank ID)"
|
|
||||||
msgstr "(ID gol)"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/include/EAP_UI.h:992
|
|
||||||
msgid "&Remember"
|
|
||||||
msgstr "&Ţine minte"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/include/EAP_UI.h:993
|
|
||||||
msgid "Check if you would like to save credentials"
|
|
||||||
msgstr " Verificați dacă doriți să salvați datele de acreditare"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/include/EAP_UI.h:1214
|
|
||||||
msgid "(Your Organization)"
|
|
||||||
msgstr "(Organizaţia ta)"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:37
|
|
||||||
msgid "+"
|
|
||||||
msgstr "+"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:38
|
|
||||||
msgid "Adds new provider"
|
|
||||||
msgstr "Adaugă un nou furnizor"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:42
|
|
||||||
msgid "-"
|
|
||||||
msgstr "-"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:43
|
|
||||||
msgid "Removes selected provider"
|
|
||||||
msgstr "Înlătură furnizorul selectat"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:47
|
|
||||||
msgid "Advanced..."
|
|
||||||
msgstr "Avansat..."
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:48
|
|
||||||
msgid "Opens dialog with provider settings"
|
|
||||||
msgstr "Deschide dialogul cu setările furnizorului"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:240
|
|
||||||
msgid "Select the source where your credentials used to connect are stored."
|
|
||||||
msgstr ""
|
|
||||||
"Selectați sursa în care sunt stocate datele de acreditare folosite pentru a "
|
|
||||||
"vă conecta."
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:250
|
|
||||||
msgid "Use from Credential &Manager:"
|
|
||||||
msgstr "Utilizați de la Credențiale & Management:"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:251
|
|
||||||
msgid ""
|
|
||||||
"Select this option if you would like to use credentials stored in Windows "
|
|
||||||
"Credential Manager"
|
|
||||||
msgstr ""
|
|
||||||
"Selectați această opțiune dacă doriți să utilizați credețialele stocate în "
|
|
||||||
"Windows Credential Manager"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:258
|
|
||||||
msgid "Your present credentials stored in Windows Credential Manager"
|
|
||||||
msgstr "Credențiele dvs. actuale sunt stocate în Windows Credential Manager"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:268
|
|
||||||
msgid "Use from &profile configuration:"
|
|
||||||
msgstr "Utilizați din configurarea profilului:"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:269
|
|
||||||
msgid ""
|
|
||||||
"Select this option if you would like to store credentials as a part of "
|
|
||||||
"profile configuration"
|
|
||||||
msgstr ""
|
|
||||||
"Selectați această opțiune dacă doriți să stocați credențialele ca parte a "
|
|
||||||
"configurației profilului"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:276
|
|
||||||
msgid "Profile configuration credentials"
|
|
||||||
msgstr " Credențialele de configurare a profilului"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:289
|
|
||||||
msgid "&Clear Credentials"
|
|
||||||
msgstr "%Ştergere Credenţiale"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:290
|
|
||||||
msgid ""
|
|
||||||
"Click to clear your credentials from Credential Manager.\n"
|
|
||||||
"Note: You will be prompted to enter credentials when connecting."
|
|
||||||
msgstr ""
|
|
||||||
"Faceți clic pentru a șterge credențialele din Managerul de credenţiale.\n"
|
|
||||||
"Notă: Vi se va solicita să introduceți credențialele atunci când vă conectați."
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:294
|
|
||||||
msgid "&Set Credentials..."
|
|
||||||
msgstr "&Setare credenţiale"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:295
|
|
||||||
msgid "Click here to set or modify your credentials"
|
|
||||||
msgstr "Apasă aici pentru a modifica credenţialele"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:332
|
|
||||||
msgid "User ID and Password"
|
|
||||||
msgstr "ID de utilizator și parolă"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:342
|
|
||||||
msgid "Please provide your user ID and password."
|
|
||||||
msgstr "Vă rugăm să furnizați ID-ul de utilizator și parola."
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:352 lib/EAPBase_UI/res/wxEAP_UI.cpp:416
|
|
||||||
msgid "User ID:"
|
|
||||||
msgstr "ID utilizator:"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:357 lib/EAPBase_UI/res/wxEAP_UI.cpp:421
|
|
||||||
msgid "Enter your user name here (user@domain.org, DOMAIN\\User, etc.)"
|
|
||||||
msgstr ""
|
|
||||||
"Introduceți numele de utilizator aici (user@domain.org, DOMENIU \\ User "
|
|
||||||
"etc.)"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:361
|
|
||||||
msgid "Password:"
|
|
||||||
msgstr "Parolă:"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:366
|
|
||||||
msgid "Enter your password here"
|
|
||||||
msgstr "Introduceţi parola aici:"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:396
|
|
||||||
msgid "User ID"
|
|
||||||
msgstr "ID Utilizator"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:406
|
|
||||||
msgid "Please provide your user ID."
|
|
||||||
msgstr "Vă rugăm să furnizați ID-ul de utilizator."
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:446
|
|
||||||
msgid "Your Organization"
|
|
||||||
msgstr "Organizaţia dumneavostră"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:457
|
|
||||||
msgid ""
|
|
||||||
"Describe your organization to customize user prompts. When organization is "
|
|
||||||
"introduced, end-users find program messages easier to understand and act."
|
|
||||||
msgstr ""
|
|
||||||
"Descrieți organizația dumneavoastră pentru a personaliza solicitările "
|
|
||||||
"utilizatorilor. Când este introdusă organizația, utilizatorii finali găsesc "
|
|
||||||
"mesajele de program mai ușor de înțeles și de acționat."
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:464
|
|
||||||
msgid "Your organization &name:"
|
|
||||||
msgstr "Numele organizaţiei dumneavoastră &:"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:469
|
|
||||||
msgid ""
|
|
||||||
"Your organization name as it will appear on helpdesk contact notifications"
|
|
||||||
msgstr ""
|
|
||||||
"Numele organizației dumneavoastră, așa cum va apărea în notificările de "
|
|
||||||
"contact ale helpdesk"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:473
|
|
||||||
msgid "(Keep it short, please)"
|
|
||||||
msgstr "(Păstrați-l scurt, vă rog)"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:483
|
|
||||||
msgid "Helpdesk contact &information:"
|
|
||||||
msgstr "Contact și informații despre asistență:"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:500
|
|
||||||
msgid "Your helpdesk website address"
|
|
||||||
msgstr "Adresa web de asistență"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:511
|
|
||||||
msgid "Your helpdesk e-mail address"
|
|
||||||
msgstr "Adresa de e-mail de asistență"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:522
|
|
||||||
msgid "Your helpdesk phone number"
|
|
||||||
msgstr "Numărul de telefon de asistență"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:550
|
|
||||||
msgid "Provider Unique Identifier"
|
|
||||||
msgstr "Identificator unic al furnizorului"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:561
|
|
||||||
msgid ""
|
|
||||||
"Assign your organization a unique ID to allow sharing the same credential "
|
|
||||||
"set across different network profiles."
|
|
||||||
msgstr ""
|
|
||||||
"Alocați organizației dumneavostră un ID unic care să permită partajarea "
|
|
||||||
"aceluiași set de credințiale pe diferite profiluri de rețea."
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:568
|
|
||||||
msgid "&Namespace:"
|
|
||||||
msgstr "&Spaţiu de nume:"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:572
|
|
||||||
msgid "urn:RFC4282:realm"
|
|
||||||
msgstr "urn:RFC4282:realm"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:572
|
|
||||||
msgid "urn:uuid"
|
|
||||||
msgstr "urn:uuid"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:584
|
|
||||||
msgid "Provider unique &identifier:"
|
|
||||||
msgstr "Identificator unic și identificator:"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:589
|
|
||||||
msgid "Your organization ID to assign same credentials from other profiles"
|
|
||||||
msgstr ""
|
|
||||||
"ID-ul organizației dumneavoastră pentru a atribui aceleași date de "
|
|
||||||
"acreditare de la alte profiluri"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:614
|
|
||||||
msgid "Configuration Lock"
|
|
||||||
msgstr "Configurare Blocată"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:625
|
|
||||||
msgid ""
|
|
||||||
"Your configuration can be locked to prevent accidental modification by end-"
|
|
||||||
"users. Users will only be allowed to enter credentials."
|
|
||||||
msgstr ""
|
|
||||||
"Configurația dumneavoastră poate fi blocată pentru a preveni modificarea "
|
|
||||||
"accidentală de către utilizatorii finali. Utilizatorii vor avea voie să "
|
|
||||||
"introducă numai datele de acreditare."
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:632
|
|
||||||
msgid ""
|
|
||||||
"&Lock this configuration and prevent any further modification via user "
|
|
||||||
"interface."
|
|
||||||
msgstr ""
|
|
||||||
"& Blocați această configurație și preveniți alte modificări prin interfața "
|
|
||||||
"utilizatorului"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:635
|
|
||||||
msgid "(Warning: Once locked, you can not revert using this dialog!)"
|
|
||||||
msgstr "(Avertisment: odată blocat, nu puteți reveni folosind acest dialog!)"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:700
|
|
||||||
msgid "Identity"
|
|
||||||
msgstr "Identitate"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:711
|
|
||||||
msgid "Select the user ID supplicant introduces itself as to authenticator:"
|
|
||||||
msgstr ""
|
|
||||||
"Selectați ID-ul utilizatorului implicit care se introduce ca autentificator:"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:718
|
|
||||||
msgid "&True identity"
|
|
||||||
msgstr "&Identitate adevărată"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:719
|
|
||||||
msgid "Use my true user name"
|
|
||||||
msgstr "Utilizați numele meu de utilizator adevărat"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:723
|
|
||||||
msgid "Use &empty identity"
|
|
||||||
msgstr "Utilizați & identitate goală"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:724
|
|
||||||
msgid "Omit my user name and use @mydomain.org only"
|
|
||||||
msgstr "Omiteți numele meu de utilizator si folositi doar @ mydomain.org"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:731
|
|
||||||
msgid "&Custom identity:"
|
|
||||||
msgstr "& Identitate personalizată:"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:732
|
|
||||||
msgid "Specify custom identity"
|
|
||||||
msgstr "Precizați identitatea personalizată"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.cpp:737
|
|
||||||
msgid "Custom identity to use"
|
|
||||||
msgstr "Identitate personalizată de utilizat"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.h:66
|
|
||||||
msgid "EAP Connection Configuration"
|
|
||||||
msgstr "Configurare conexiune EAP"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/res/wxEAP_UI.h:329
|
|
||||||
msgid "EAP Identity Provider"
|
|
||||||
msgstr "Furnizor de identitate EAP"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:103
|
|
||||||
#, c-format
|
|
||||||
msgid "%s Credentials"
|
|
||||||
msgstr "%s Credenţiale"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:139
|
|
||||||
#, c-format
|
|
||||||
msgid "For additional help and instructions, please contact %s at:"
|
|
||||||
msgstr ""
|
|
||||||
"Pentru ajutor și instrucțiuni suplimentare, vă rugăm să contactați %s la : "
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:140
|
|
||||||
msgid "your provider"
|
|
||||||
msgstr "providerul dumneavoastră"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:159
|
|
||||||
msgid "Open the default web browser"
|
|
||||||
msgstr "Deschideți browserul web implicit"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:170
|
|
||||||
msgid "Open your e-mail program"
|
|
||||||
msgstr "Deschideți programul de e-mail"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:181
|
|
||||||
msgid "Dial the phone number"
|
|
||||||
msgstr "Apelează numărul de telefon"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:203
|
|
||||||
#, c-format
|
|
||||||
msgid ""
|
|
||||||
"%s has pre-set parts of this configuration. Those parts are locked to "
|
|
||||||
"prevent accidental modification."
|
|
||||||
msgstr ""
|
|
||||||
"%s are părți prestabilite ale acestei configurații. Aceste piese sunt "
|
|
||||||
"blocate pentru a preveni modificarea accidentală."
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:204
|
|
||||||
msgid "Your provider"
|
|
||||||
msgstr "Furnizorul dumneavostră"
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:225
|
|
||||||
msgid "Previous attempt to connect reported invalid credentials."
|
|
||||||
msgstr "Încercarea anterioară de conectare a raportat credențiale nevalide ."
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:226
|
|
||||||
msgid "Previous attempt to connect reported your credentials expired."
|
|
||||||
msgstr ""
|
|
||||||
"Încercarea anterioară de conectare a raportat datele de acreditare expirate."
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:227
|
|
||||||
msgid ""
|
|
||||||
"Previous attempt to connect reported your credentials are being changed."
|
|
||||||
msgstr ""
|
|
||||||
"Încercarea anterioară de conectare a raportat că datele de acreditare au "
|
|
||||||
"fost modificate."
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:228
|
|
||||||
msgid "Previous attempt to connect failed."
|
|
||||||
msgstr "Încercarea anterioară de conectare a eșuat."
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:229
|
|
||||||
msgid "Please, make sure your credentials are correct, or try again later."
|
|
||||||
msgstr ""
|
|
||||||
"Vă rugăm, asigurați-vă că datele de acreditare sunt corecte sau încercați "
|
|
||||||
"din nou mai târziu."
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:250
|
|
||||||
#, c-format
|
|
||||||
msgid ""
|
|
||||||
"The %s version installed on this computer logs credentials in visible and "
|
|
||||||
"easy to read way."
|
|
||||||
msgstr ""
|
|
||||||
"Versiunea instalată %s pe acest computer înregistrează datele de acreditare "
|
|
||||||
"în mod vizibil și ușor de citit."
|
|
||||||
|
|
||||||
#: lib/EAPBase_UI/src/EAP_UI.cpp:251
|
|
||||||
msgid "Please, reconsider necessity to enter your credentials."
|
|
||||||
msgstr ""
|
|
||||||
"Vă rugăm să reconsiderați necesitatea de a introduce datele de acreditare."
|
|
||||||
|
|
||||||
#: lib/EapHost_UI/res/wxEapHost_UI.cpp:17
|
|
||||||
msgid "Inner EAP Method"
|
|
||||||
msgstr "Metoda EAP interioară"
|
|
||||||
|
|
||||||
#: lib/EapHost_UI/res/wxEapHost_UI.cpp:28
|
|
||||||
msgid "Select and configure inner EAP method"
|
|
||||||
msgstr "Selectați și configurați metoda EAP interioară"
|
|
||||||
|
|
||||||
#: lib/EapHost_UI/res/wxEapHost_UI.cpp:40
|
|
||||||
msgid "&Settings"
|
|
||||||
msgstr "&Setări"
|
|
||||||
|
|
||||||
#: lib/EapHost_UI/src/EapHost_UI.cpp:59
|
|
||||||
#, c-format
|
|
||||||
msgid "Enumerating EAP methods failed (error %u, %s, %s)."
|
|
||||||
msgstr "Enumerarea metodelor EAP a eșuat (eroare %u , %s , %s )."
|
|
||||||
|
|
||||||
#: lib/EapHost_UI/src/EapHost_UI.cpp:61
|
|
||||||
#, c-format
|
|
||||||
msgid "Enumerating EAP methods failed (error %u)."
|
|
||||||
msgstr "Enumerarea metodelor EAP a eșuat (eroare %u )."
|
|
||||||
|
|
||||||
#: lib/EapHost_UI/src/EapHost_UI.cpp:136
|
|
||||||
#, c-format
|
|
||||||
msgid "Configuring EAP method failed (error %u, %s, %s)."
|
|
||||||
msgstr "Configurarea metodei EAP a eșuat (eroare %u,%s,%s)."
|
|
||||||
|
|
||||||
#: lib/EapHost_UI/src/EapHost_UI.cpp:138
|
|
||||||
#, c-format
|
|
||||||
msgid "Configuring EAP method failed (error %u)."
|
|
||||||
msgstr "Configurarea metodei EAP a eșuat (eroare %u )."
|
|
||||||
|
|
||||||
#: lib/GTC_UI/include/GTC_UI.h:114 lib/GTC_UI/res/wxGTC_UI.cpp:16
|
|
||||||
msgid "GTC Challenge"
|
|
||||||
msgstr "Provocarea GTC"
|
|
||||||
|
|
||||||
#: lib/GTC_UI/res/wxGTC_UI.cpp:26
|
|
||||||
msgid "Please provide your response."
|
|
||||||
msgstr "Vă rugăm să ne oferiți răspunsul."
|
|
||||||
|
|
||||||
#: lib/GTC_UI/res/wxGTC_UI.cpp:38
|
|
||||||
msgid "Server challenge"
|
|
||||||
msgstr "Provocarea serverului"
|
|
||||||
|
|
||||||
#: lib/GTC_UI/res/wxGTC_UI.cpp:43
|
|
||||||
msgid "Enter your response here"
|
|
||||||
msgstr "Introduceți răspunsul aici"
|
|
||||||
|
|
||||||
#: lib/GTC_UI/res/wxGTC_UI.cpp:70
|
|
||||||
msgid "EAP-GTC authentication &mode:"
|
|
||||||
msgstr "Autentificare și &mod EAP-GTC:"
|
|
||||||
|
|
||||||
#: lib/GTC_UI/res/wxGTC_UI.cpp:75
|
|
||||||
msgid "Select EAP-GTC authentication mode from the list"
|
|
||||||
msgstr "Selectați modul de autentificare EAP-GTC din listă"
|
|
||||||
|
|
||||||
#: lib/GTC_UI/src/GTC_UI.cpp:39
|
|
||||||
msgid "Challenge/Response"
|
|
||||||
msgstr "Provocare/Răspuns"
|
|
||||||
|
|
||||||
#: lib/GTC_UI/src/GTC_UI.cpp:41
|
|
||||||
msgid "Password"
|
|
||||||
msgstr "Parolă"
|
|
||||||
|
|
||||||
#: lib/GTC_UI/src/GTC_UI.cpp:119
|
|
||||||
#, c-format
|
|
||||||
msgid "%s Challenge"
|
|
||||||
msgstr "%s Provocare"
|
|
||||||
|
|
||||||
#: lib/MSCHAPv2_UI/src/MSCHAPv2_UI.cpp:33
|
|
||||||
msgid "MSCHAPv2 User ID and Password"
|
|
||||||
msgstr "MSCHAPv2 Utilizator şi Parolă"
|
|
||||||
|
|
||||||
#: lib/PAP_UI/src/PAP_UI.cpp:33
|
|
||||||
msgid "PAP User ID and Password"
|
|
||||||
msgstr "PAP Utilizator şi Parolă"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:17
|
|
||||||
msgid "Server Trust"
|
|
||||||
msgstr "Server de încredere"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:28
|
|
||||||
msgid "Describe the servers you trust to prevent man-in-the-middle attacks."
|
|
||||||
msgstr ""
|
|
||||||
"Descrieți serverele de încredere pentru a preveni atacurile de tipul man-in-"
|
|
||||||
"the-middle."
|
|
||||||
|
|
||||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:35
|
|
||||||
msgid "Acceptable Certificate Authorities:"
|
|
||||||
msgstr "Autorități de certificare acceptate:"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:40
|
|
||||||
msgid ""
|
|
||||||
"Server's certificate must be issued by one of certificate authorities listed"
|
|
||||||
" here"
|
|
||||||
msgstr ""
|
|
||||||
"Certificatul de server trebuie eliberat de una dintre autoritățile de "
|
|
||||||
"certificare enumerate aici"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:47
|
|
||||||
msgid "Add CA from Store..."
|
|
||||||
msgstr "Adăugare CA din magazin..."
|
|
||||||
|
|
||||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:48
|
|
||||||
msgid ""
|
|
||||||
"Adds a new certificate authority from the certificate store to the list"
|
|
||||||
msgstr ""
|
|
||||||
"Adaugă o nouă autoritate de certificare din magazinul de certificate în "
|
|
||||||
"listă"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:52
|
|
||||||
msgid "Add CA from File..."
|
|
||||||
msgstr "Adăugare CA din fişier..."
|
|
||||||
|
|
||||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:53
|
|
||||||
msgid "Adds a new certificate authority from the file to the list"
|
|
||||||
msgstr "Adaugă o nouă autoritate de certificare din fișier în listă"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:57
|
|
||||||
msgid "&Remove CA"
|
|
||||||
msgstr "&Ştergere CA"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:58
|
|
||||||
msgid "Removes selected certificate authorities from the list"
|
|
||||||
msgstr "Îndepărtează autoritățile de certificare selectate din listă"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:71
|
|
||||||
msgid "Acceptable server &names:"
|
|
||||||
msgstr "Server și nume acceptate:"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:76
|
|
||||||
msgid ""
|
|
||||||
"A semicolon delimited list of acceptable server FQDN names; blank to skip "
|
|
||||||
"name check; Unicode characters allowed"
|
|
||||||
msgstr ""
|
|
||||||
"Punct și virgulă delimitează lista de nume de servere FQDN ; lăsați spațiu "
|
|
||||||
"gol pentru a omite verificarea numelui; Caractere Unicode permise"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:80
|
|
||||||
msgid "(Example: foo.bar.com;server2.bar.com)"
|
|
||||||
msgstr "(Exemplu: foo.bar.com;server2.bar.com)"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:118 lib/TLS_UI/src/TLS_UI.cpp:400
|
|
||||||
msgid "User Certificate"
|
|
||||||
msgstr "Certificatul de utilizator"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:128
|
|
||||||
msgid "Please select your &certificate to use for authentication."
|
|
||||||
msgstr ""
|
|
||||||
"Vă rugăm să selectați certificatul dumneavoastră de utilizat pentru "
|
|
||||||
"autentificare."
|
|
||||||
|
|
||||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:135
|
|
||||||
msgid "Client certificate to use for authentication"
|
|
||||||
msgstr "Certificat de client de folosit pentru autentificare"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:142
|
|
||||||
msgid "Custom &identity:"
|
|
||||||
msgstr "Personalizare și identitate:"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/res/wxTLS_UI.cpp:147
|
|
||||||
msgid ""
|
|
||||||
"Your identity (username@domain) to override one from certificate; or blank "
|
|
||||||
"to use one provided in certificate"
|
|
||||||
msgstr ""
|
|
||||||
"Identitatea dumneavoastră (nume de utilizator @ domeniu) pentru a trece "
|
|
||||||
"peste un certificat; sau necompletat pentru a utiliza unul prevăzut în "
|
|
||||||
"certificat"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/src/TLS_UI.cpp:118
|
|
||||||
msgid "No certificate selected"
|
|
||||||
msgstr "Niciun certificat selectat"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/src/TLS_UI.cpp:118
|
|
||||||
msgid "Validation conflict"
|
|
||||||
msgstr "Conflict la validare"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/src/TLS_UI.cpp:327
|
|
||||||
msgid "Add Certificate"
|
|
||||||
msgstr "Adaugă certificat"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/src/TLS_UI.cpp:328
|
|
||||||
msgid "Certificate Files (*.cer;*.crt;*.der;*.p7b;*.pem)"
|
|
||||||
msgstr "Fişierele Certificat (*.cer;*.crt;*.der;*.p7b;*.pem)"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/src/TLS_UI.cpp:329
|
|
||||||
msgid "X.509 Certificate Files (*.cer;*.crt;*.der;*.pem)"
|
|
||||||
msgstr "X.509 Fişierele Certificat (*.cer;*.crt;*.der;*.pem)"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/src/TLS_UI.cpp:330
|
|
||||||
msgid "PKCS #7 Certificate Files (*.p7b)"
|
|
||||||
msgstr "PKCS #7 Fişierele Certificat (*.p7b)"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/src/TLS_UI.cpp:331
|
|
||||||
msgid "All Files (*.*)"
|
|
||||||
msgstr "Toate filele (*.*)"
|
|
||||||
|
|
||||||
#: lib/TLS_UI/src/TLS_UI.cpp:345
|
|
||||||
#, c-format
|
|
||||||
msgid "Invalid or unsupported certificate file %s"
|
|
||||||
msgstr "Fișier de certificat %s nevalid sau neacceptat "
|
|
||||||
|
|
||||||
#: lib/TLS_UI/src/TLS_UI.cpp:345
|
|
||||||
msgid "Error"
|
|
||||||
msgstr "Eroare"
|
|
||||||
|
|
||||||
#: lib/TTLS_UI/src/Module.cpp:249
|
|
||||||
#, c-format
|
|
||||||
msgid "Invoking EAP identity UI failed (error %u, %s, %s)."
|
|
||||||
msgstr " Invocarea interfaței de identitate EAP a eșuat (eroare%u,%s,%s)."
|
|
||||||
|
|
||||||
#: lib/TTLS_UI/src/Module.cpp:252
|
|
||||||
#, c-format
|
|
||||||
msgid "Invoking EAP identity UI failed (error %u)."
|
|
||||||
msgstr "Invocarea interfaței de identitate EAP a eșuat (eroare%u)."
|
|
||||||
|
|
||||||
#: lib/TTLS_UI/src/Module.cpp:376
|
|
||||||
#, c-format
|
|
||||||
msgid "Invoking EAP interactive UI failed (error %u, %s, %s)."
|
|
||||||
msgstr "Invocarea EAP EI interactivă a eșuat (eroare %u,%s,%s)."
|
|
||||||
|
|
||||||
#: lib/TTLS_UI/src/Module.cpp:379
|
|
||||||
#, c-format
|
|
||||||
msgid "Invoking EAP interactive UI failed (error %u)."
|
|
||||||
msgstr "Invocarea EAP EI interactivă a eșuat (eroare %u)."
|
|
||||||
|
|
||||||
#: lib/TTLS_UI/src/TTLS_UI.cpp:37
|
|
||||||
msgid "Outer Authentication"
|
|
||||||
msgstr "Autentificare exterioară"
|
|
||||||
|
|
||||||
#: lib/TTLS_UI/src/TTLS_UI.cpp:50
|
|
||||||
msgid "Inner Authentication"
|
|
||||||
msgstr "Autentificare interioară"
|
|
||||||
|
|
||||||
#: lib/TTLS_UI/src/TTLS_UI.cpp:56
|
|
||||||
msgid "Select inner authentication method from the list"
|
|
||||||
msgstr "Selectați metoda de autentificare interioară din listă"
|
|
||||||
|
|
||||||
#: lib/TTLS_UI/src/TTLS_UI.cpp:127
|
|
||||||
msgid "PAP"
|
|
||||||
msgstr "PAP"
|
|
||||||
|
|
||||||
#: lib/TTLS_UI/src/TTLS_UI.cpp:129
|
|
||||||
msgid "MSCHAPv2"
|
|
||||||
msgstr "MSCHAPv2"
|
|
||||||
|
|
||||||
#: lib/TTLS_UI/src/TTLS_UI.cpp:131
|
|
||||||
msgid "EAP-MSCHAPv2"
|
|
||||||
msgstr "EAP-MSCHAPv2"
|
|
||||||
|
|
||||||
#: lib/TTLS_UI/src/TTLS_UI.cpp:133
|
|
||||||
msgid "EAP-GTC"
|
|
||||||
msgstr "EAP-GTC"
|
|
||||||
|
|
||||||
#: lib/TTLS_UI/src/TTLS_UI.cpp:136
|
|
||||||
msgid "Other EAP methods..."
|
|
||||||
msgstr "Alte metode EAP..."
|
|
||||||
|
|
||||||
#: EAPMethods/MSIBuild.EAP-TTLS/en_US.ARM64.Release.Feature-2.idtx:4
|
|
||||||
#: EAPMethods/MSIBuild.EAP-TTLS/en_US.Win32.Release.Feature-2.idtx:4
|
|
||||||
#: EAPMethods/MSIBuild.EAP-TTLS/en_US.x64.Release.Feature-2.idtx:4
|
|
||||||
msgid "EAP-TTLS"
|
|
||||||
msgstr "EAP-TTLS"
|
|
||||||
|
|
||||||
#: EAPMethods/MSIBuild.EAP-TTLS/en_US.ARM64.Release.Feature-2.idtx:4
|
|
||||||
#: EAPMethods/MSIBuild.EAP-TTLS/en_US.Win32.Release.Feature-2.idtx:4
|
|
||||||
#: EAPMethods/MSIBuild.EAP-TTLS/en_US.x64.Release.Feature-2.idtx:4
|
|
||||||
msgid "EAP-TTLS Method"
|
|
||||||
msgstr "Metoda EAP-TTLS"
|
|
||||||
|
|
||||||
#: EAPMethods/MSIBuild/en_US.ARM64.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 "Metodele EAP"
|
|
||||||
|
|
||||||
#: EAPMethods/MSIBuild/en_US.ARM64.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 "Module pentru a sprijini metodele individuale EAP"
|
|
@ -1,13 +1,11 @@
|
|||||||
# Translators:
|
|
||||||
# Simon Rozman <simon@rozman.si>, 2017
|
|
||||||
#
|
#
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: EAPMethods\n"
|
"Project-Id-Version: EAPMethods\n"
|
||||||
"POT-Creation-Date: 2018-06-20 15:30+0200\n"
|
"POT-Creation-Date: 2018-06-20 15:30+0200\n"
|
||||||
"PO-Revision-Date: 2016-08-25 06:18+0000\n"
|
"PO-Revision-Date: 2016-06-02 12:27+0200\n"
|
||||||
"Last-Translator: Simon Rozman <simon@rozman.si>, 2017\n"
|
"Last-Translator: Simon Rozman <simon@rozman.si>, 2016\n"
|
||||||
"Language-Team: Russian (Russia) (https://www.transifex.com/eduroam_devel/teams/11799/ru_RU/)\n"
|
"Language-Team: Russian (Russia) (https://www.transifex.com/eduroam_devel/teams/11799/ru_RU/)\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
@ -846,7 +844,7 @@ msgstr ""
|
|||||||
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
#: ver1.0/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: ver1.0/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
#: ver1.1/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: ver1.1/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
msgid "Omit my user name and use @mydomain.org only"
|
msgid "Ommit my user name and use @mydomain.org only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:48
|
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:48
|
||||||
|
@ -1,13 +1,11 @@
|
|||||||
# Translators:
|
|
||||||
# Simon Rozman <simon@rozman.si>, 2017
|
|
||||||
#
|
#
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: EAPMethods\n"
|
"Project-Id-Version: EAPMethods\n"
|
||||||
"POT-Creation-Date: 2018-06-20 15:30+0200\n"
|
"POT-Creation-Date: 2018-06-20 15:30+0200\n"
|
||||||
"PO-Revision-Date: 2016-08-25 06:18+0000\n"
|
"PO-Revision-Date: 2016-06-02 12:27+0200\n"
|
||||||
"Last-Translator: Simon Rozman <simon@rozman.si>, 2017\n"
|
"Last-Translator: Simon Rozman <simon@rozman.si>, 2016\n"
|
||||||
"Language-Team: Slovak (Slovakia) (https://www.transifex.com/eduroam_devel/teams/11799/sk_SK/)\n"
|
"Language-Team: Slovak (Slovakia) (https://www.transifex.com/eduroam_devel/teams/11799/sk_SK/)\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
@ -846,7 +844,7 @@ msgstr ""
|
|||||||
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
#: ver1.0/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: ver1.0/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
#: ver1.1/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: ver1.1/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
msgid "Omit my user name and use @mydomain.org only"
|
msgid "Ommit my user name and use @mydomain.org only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:48
|
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:48
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,13 +1,11 @@
|
|||||||
# Translators:
|
|
||||||
# Simon Rozman <simon@rozman.si>, 2017
|
|
||||||
#
|
#
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: EAPMethods\n"
|
"Project-Id-Version: EAPMethods\n"
|
||||||
"POT-Creation-Date: 2018-06-20 15:30+0200\n"
|
"POT-Creation-Date: 2018-06-20 15:30+0200\n"
|
||||||
"PO-Revision-Date: 2016-08-25 06:18+0000\n"
|
"PO-Revision-Date: 2016-06-02 12:27+0200\n"
|
||||||
"Last-Translator: Simon Rozman <simon@rozman.si>, 2017\n"
|
"Last-Translator: Simon Rozman <simon@rozman.si>, 2016\n"
|
||||||
"Language-Team: Swedish (https://www.transifex.com/eduroam_devel/teams/11799/sv/)\n"
|
"Language-Team: Swedish (https://www.transifex.com/eduroam_devel/teams/11799/sv/)\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
@ -846,7 +844,7 @@ msgstr ""
|
|||||||
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
#: ver1.0/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: ver1.0/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
#: ver1.1/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: ver1.1/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
msgid "Omit my user name and use @mydomain.org only"
|
msgid "Ommit my user name and use @mydomain.org only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:48
|
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:48
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,13 +1,11 @@
|
|||||||
# Translators:
|
|
||||||
# Simon Rozman <simon@rozman.si>, 2017
|
|
||||||
#
|
#
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: EAPMethods\n"
|
"Project-Id-Version: EAPMethods\n"
|
||||||
"POT-Creation-Date: 2018-06-20 15:30+0200\n"
|
"POT-Creation-Date: 2018-06-20 15:30+0200\n"
|
||||||
"PO-Revision-Date: 2016-08-25 06:18+0000\n"
|
"PO-Revision-Date: 2016-06-02 12:27+0200\n"
|
||||||
"Last-Translator: Simon Rozman <simon@rozman.si>, 2017\n"
|
"Last-Translator: Simon Rozman <simon@rozman.si>, 2016\n"
|
||||||
"Language-Team: Vietnamese (https://www.transifex.com/eduroam_devel/teams/11799/vi/)\n"
|
"Language-Team: Vietnamese (https://www.transifex.com/eduroam_devel/teams/11799/vi/)\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
@ -846,7 +844,7 @@ msgstr ""
|
|||||||
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
#: ver1.0/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: ver1.0/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
#: ver1.1/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
#: ver1.1/lib/TTLS_UI/res/wxTTLS_UI.cpp:41
|
||||||
msgid "Omit my user name and use @mydomain.org only"
|
msgid "Ommit my user name and use @mydomain.org only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:48
|
#: master/lib/TTLS_UI/res/wxTTLS_UI.cpp:48
|
||||||
|
982
EAPMethods/src/Main.cpp
Normal file
982
EAPMethods/src/Main.cpp
Normal file
@ -0,0 +1,982 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2015-2016 Amebis
|
||||||
|
Copyright 2016 GÉANT
|
||||||
|
|
||||||
|
This file is part of GÉANTLink.
|
||||||
|
|
||||||
|
GÉANTLink is free software: you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
GÉANTLink is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with GÉANTLink. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <StdAfx.h>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
using namespace winstd;
|
||||||
|
|
||||||
|
#pragma comment(lib, "Ws2_32.lib")
|
||||||
|
|
||||||
|
#if EAPMETHOD_TYPE==21
|
||||||
|
#define _EAPMETHOD_PEER eap::peer_ttls
|
||||||
|
#else
|
||||||
|
#error Unknown EAP Method type.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
_EAPMETHOD_PEER g_peer;
|
||||||
|
|
||||||
|
|
||||||
|
///
|
||||||
|
/// DLL main entry point
|
||||||
|
///
|
||||||
|
/// \sa [DllMain entry point](https://msdn.microsoft.com/en-us/library/windows/desktop/ms682583.aspx)
|
||||||
|
///
|
||||||
|
BOOL WINAPI DllMain(_In_ HINSTANCE hinstDLL, _In_ DWORD fdwReason, _In_ LPVOID lpvReserved)
|
||||||
|
{
|
||||||
|
UNREFERENCED_PARAMETER(lpvReserved);
|
||||||
|
|
||||||
|
if (fdwReason == DLL_PROCESS_ATTACH) {
|
||||||
|
#ifdef _DEBUG
|
||||||
|
//Sleep(10000);
|
||||||
|
#endif
|
||||||
|
g_peer.m_instance = hinstDLL;
|
||||||
|
} else if (fdwReason == DLL_PROCESS_DETACH)
|
||||||
|
assert(!_CrtDumpMemoryLeaks());
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Releases all memory associated with an opaque user interface context data buffer.
|
||||||
|
///
|
||||||
|
/// \sa [EapPeerFreeMemory function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363606.aspx)
|
||||||
|
///
|
||||||
|
VOID WINAPI EapPeerFreeMemory(_In_ void *pUIContextData)
|
||||||
|
{
|
||||||
|
event_fn_auto event_auto(g_peer.get_event_fn_auto(__FUNCTION__));
|
||||||
|
|
||||||
|
if (pUIContextData)
|
||||||
|
g_peer.free_memory((BYTE*)pUIContextData);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Releases error-specific memory allocated by the EAP peer method.
|
||||||
|
///
|
||||||
|
/// \sa [EapPeerFreeErrorMemory function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363605.aspx)
|
||||||
|
///
|
||||||
|
VOID WINAPI EapPeerFreeErrorMemory(_In_ EAP_ERROR *ppEapError)
|
||||||
|
{
|
||||||
|
event_fn_auto event_auto(g_peer.get_event_fn_auto(__FUNCTION__));
|
||||||
|
|
||||||
|
if (ppEapError)
|
||||||
|
g_peer.free_error_memory(ppEapError);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Obtains a set of function pointers for an implementation of the EAP peer method currently loaded on the EapHost service.
|
||||||
|
///
|
||||||
|
/// \sa [EapPeerGetInfo function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363608.aspx)
|
||||||
|
///
|
||||||
|
DWORD WINAPI EapPeerGetInfo(_In_ EAP_TYPE* pEapType, _Out_ EAP_PEER_METHOD_ROUTINES* pEapPeerMethodRoutines, _Out_ EAP_ERROR **ppEapError)
|
||||||
|
{
|
||||||
|
DWORD dwResult = ERROR_SUCCESS;
|
||||||
|
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
||||||
|
#ifdef _DEBUG
|
||||||
|
//Sleep(10000);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Parameter check
|
||||||
|
if (!ppEapError)
|
||||||
|
return dwResult = ERROR_INVALID_PARAMETER;
|
||||||
|
|
||||||
|
assert(!*ppEapError);
|
||||||
|
|
||||||
|
if (!pEapType)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pEapType is NULL.")));
|
||||||
|
else if (pEapType->type != EAPMETHOD_TYPE)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_NOT_SUPPORTED, wstring_printf(_T(__FUNCTION__) _T(" Input EAP type (%d) does not match the supported EAP type (%d)."), (int)pEapType->type, (int)EAPMETHOD_TYPE).c_str()));
|
||||||
|
else if (!pEapPeerMethodRoutines)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pEapPeerMethodRoutines is NULL.")));
|
||||||
|
else {
|
||||||
|
pEapPeerMethodRoutines->dwVersion = PRODUCT_VERSION;
|
||||||
|
pEapPeerMethodRoutines->pEapType = NULL;
|
||||||
|
|
||||||
|
pEapPeerMethodRoutines->EapPeerInitialize = EapPeerInitialize;
|
||||||
|
pEapPeerMethodRoutines->EapPeerShutdown = EapPeerShutdown;
|
||||||
|
pEapPeerMethodRoutines->EapPeerBeginSession = EapPeerBeginSession;
|
||||||
|
pEapPeerMethodRoutines->EapPeerEndSession = EapPeerEndSession;
|
||||||
|
pEapPeerMethodRoutines->EapPeerSetCredentials = NULL; // Always NULL unless we want to use generic credential UI
|
||||||
|
pEapPeerMethodRoutines->EapPeerGetIdentity = EapPeerGetIdentity;
|
||||||
|
pEapPeerMethodRoutines->EapPeerProcessRequestPacket = EapPeerProcessRequestPacket;
|
||||||
|
pEapPeerMethodRoutines->EapPeerGetResponsePacket = EapPeerGetResponsePacket;
|
||||||
|
pEapPeerMethodRoutines->EapPeerGetResult = EapPeerGetResult;
|
||||||
|
pEapPeerMethodRoutines->EapPeerGetUIContext = EapPeerGetUIContext;
|
||||||
|
pEapPeerMethodRoutines->EapPeerSetUIContext = EapPeerSetUIContext;
|
||||||
|
pEapPeerMethodRoutines->EapPeerGetResponseAttributes = EapPeerGetResponseAttributes;
|
||||||
|
pEapPeerMethodRoutines->EapPeerSetResponseAttributes = EapPeerSetResponseAttributes;
|
||||||
|
}
|
||||||
|
|
||||||
|
return dwResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#pragma warning(push)
|
||||||
|
#pragma warning(disable: 4702) // Compiler is smart enough to find out the initialize() method is empty => never throws an exception.
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Initializes an EAP peer method for EapHost.
|
||||||
|
///
|
||||||
|
/// \sa [EapPeerGetInfo function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363613.aspx)
|
||||||
|
///
|
||||||
|
DWORD APIENTRY EapPeerInitialize(_Out_ EAP_ERROR **ppEapError)
|
||||||
|
{
|
||||||
|
DWORD dwResult = ERROR_SUCCESS;
|
||||||
|
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
||||||
|
#ifdef _DEBUG
|
||||||
|
//Sleep(10000);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Parameter check
|
||||||
|
if (!ppEapError)
|
||||||
|
return dwResult = ERROR_INVALID_PARAMETER;
|
||||||
|
|
||||||
|
assert(!*ppEapError);
|
||||||
|
|
||||||
|
try {
|
||||||
|
g_peer.initialize();
|
||||||
|
} catch (std::exception &err) {
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(err));
|
||||||
|
dwResult = (*ppEapError)->dwWinError;
|
||||||
|
} catch (...) {
|
||||||
|
dwResult = ERROR_INVALID_DATA;
|
||||||
|
}
|
||||||
|
|
||||||
|
return dwResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pragma warning(pop)
|
||||||
|
|
||||||
|
|
||||||
|
#pragma warning(push)
|
||||||
|
#pragma warning(disable: 4702) // Compiler is smart enough to find out the shutdown() method is empty => never throws an exception.
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Shuts down the EAP method and prepares to unload its corresponding DLL.
|
||||||
|
///
|
||||||
|
/// \sa [EapPeerShutdown function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363627.aspx)
|
||||||
|
///
|
||||||
|
DWORD APIENTRY EapPeerShutdown(_Out_ EAP_ERROR **ppEapError)
|
||||||
|
{
|
||||||
|
DWORD dwResult = ERROR_SUCCESS;
|
||||||
|
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
||||||
|
#ifdef _DEBUG
|
||||||
|
//Sleep(10000);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Parameter check
|
||||||
|
if (!ppEapError)
|
||||||
|
return dwResult = ERROR_INVALID_PARAMETER;
|
||||||
|
|
||||||
|
assert(!*ppEapError);
|
||||||
|
|
||||||
|
try {
|
||||||
|
g_peer.shutdown();
|
||||||
|
} catch (std::exception &err) {
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(err));
|
||||||
|
dwResult = (*ppEapError)->dwWinError;
|
||||||
|
} catch (...) {
|
||||||
|
dwResult = ERROR_INVALID_DATA;
|
||||||
|
}
|
||||||
|
|
||||||
|
return dwResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pragma warning(pop)
|
||||||
|
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Returns the user data and user identity after being called by EapHost.
|
||||||
|
///
|
||||||
|
/// \sa [EapPeerGetIdentity function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363607.aspx)
|
||||||
|
///
|
||||||
|
DWORD APIENTRY EapPeerGetIdentity(
|
||||||
|
_In_ DWORD dwFlags,
|
||||||
|
_In_ DWORD dwConnectionDataSize,
|
||||||
|
_In_count_(dwConnectionDataSize) const BYTE *pConnectionData,
|
||||||
|
_In_ DWORD dwUserDataSize,
|
||||||
|
_In_count_(dwUserDataSize) const BYTE *pUserData,
|
||||||
|
_In_ HANDLE hTokenImpersonateUser,
|
||||||
|
_Out_ BOOL *pfInvokeUI,
|
||||||
|
_Out_ DWORD *pdwUserDataOutSize,
|
||||||
|
_Out_ BYTE **ppUserDataOut,
|
||||||
|
_Out_ WCHAR **ppwszIdentity,
|
||||||
|
_Out_ EAP_ERROR **ppEapError)
|
||||||
|
{
|
||||||
|
DWORD dwResult = ERROR_SUCCESS;
|
||||||
|
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
||||||
|
#ifdef _DEBUG
|
||||||
|
//Sleep(10000);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Parameter check
|
||||||
|
if (!ppEapError)
|
||||||
|
return dwResult = ERROR_INVALID_PARAMETER;
|
||||||
|
|
||||||
|
assert(!*ppEapError);
|
||||||
|
|
||||||
|
if (!pConnectionData && dwConnectionDataSize)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pConnectionData is NULL.")));
|
||||||
|
else if (!pUserData && dwUserDataSize)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pUserData is NULL.")));
|
||||||
|
else if (!pfInvokeUI)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pfInvokeUI is NULL.")));
|
||||||
|
else if (!pdwUserDataOutSize)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pdwUserDataOutSize is NULL.")));
|
||||||
|
else if (!ppUserDataOut)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" ppUserDataOut is NULL.")));
|
||||||
|
else if (!ppwszIdentity)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" ppwszIdentity is NULL.")));
|
||||||
|
else {
|
||||||
|
try {
|
||||||
|
g_peer.get_identity(dwFlags, pConnectionData, dwConnectionDataSize, pUserData, dwUserDataSize, ppUserDataOut, pdwUserDataOutSize, hTokenImpersonateUser, pfInvokeUI, ppwszIdentity);
|
||||||
|
} catch (std::exception &err) {
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(err));
|
||||||
|
dwResult = (*ppEapError)->dwWinError;
|
||||||
|
} catch (...) {
|
||||||
|
dwResult = ERROR_INVALID_DATA;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return dwResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Starts an EAP authentication session on the peer EapHost using the EAP method.
|
||||||
|
///
|
||||||
|
/// \sa [EapPeerBeginSession function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363600.aspx)
|
||||||
|
///
|
||||||
|
DWORD APIENTRY EapPeerBeginSession(
|
||||||
|
_In_ DWORD dwFlags,
|
||||||
|
_In_ const EapAttributes *pAttributeArray,
|
||||||
|
_In_ HANDLE hTokenImpersonateUser,
|
||||||
|
_In_ DWORD dwConnectionDataSize,
|
||||||
|
_In_count_(dwConnectionDataSize) /*const*/ BYTE *pConnectionData,
|
||||||
|
_In_ DWORD dwUserDataSize,
|
||||||
|
_In_count_(dwUserDataSize) /*const*/ BYTE *pUserData,
|
||||||
|
_In_ DWORD dwMaxSendPacketSize,
|
||||||
|
_Out_ EAP_SESSION_HANDLE *phSession,
|
||||||
|
_Out_ EAP_ERROR **ppEapError)
|
||||||
|
{
|
||||||
|
DWORD dwResult = ERROR_SUCCESS;
|
||||||
|
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
||||||
|
#ifdef _DEBUG
|
||||||
|
//Sleep(10000);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Parameter check
|
||||||
|
if (!ppEapError)
|
||||||
|
return dwResult = ERROR_INVALID_PARAMETER;
|
||||||
|
|
||||||
|
assert(!*ppEapError);
|
||||||
|
|
||||||
|
if (!pConnectionData && dwConnectionDataSize)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pConnectionData is NULL.")));
|
||||||
|
else if (!pUserData && dwUserDataSize)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pUserData is NULL.")));
|
||||||
|
else if (!phSession)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" phSession is NULL.")));
|
||||||
|
else {
|
||||||
|
try {
|
||||||
|
*phSession = g_peer.begin_session(dwFlags, pAttributeArray, hTokenImpersonateUser, pConnectionData, dwConnectionDataSize, pUserData, dwUserDataSize, dwMaxSendPacketSize);
|
||||||
|
} catch (std::exception &err) {
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(err));
|
||||||
|
dwResult = (*ppEapError)->dwWinError;
|
||||||
|
} catch (...) {
|
||||||
|
dwResult = ERROR_INVALID_DATA;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return dwResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Ends an EAP authentication session for the EAP method.
|
||||||
|
///
|
||||||
|
/// \sa [EapPeerEndSession function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363604.aspx)
|
||||||
|
///
|
||||||
|
DWORD APIENTRY EapPeerEndSession(
|
||||||
|
_In_ EAP_SESSION_HANDLE hSession,
|
||||||
|
_Out_ EAP_ERROR **ppEapError)
|
||||||
|
{
|
||||||
|
DWORD dwResult = ERROR_SUCCESS;
|
||||||
|
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
||||||
|
#ifdef _DEBUG
|
||||||
|
//Sleep(10000);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Parameter check
|
||||||
|
if (!ppEapError)
|
||||||
|
return dwResult = ERROR_INVALID_PARAMETER;
|
||||||
|
|
||||||
|
assert(!*ppEapError);
|
||||||
|
|
||||||
|
if (!hSession)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" hSession is NULL.")));
|
||||||
|
else {
|
||||||
|
try {
|
||||||
|
g_peer.end_session(hSession);
|
||||||
|
} catch (std::exception &err) {
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(err));
|
||||||
|
dwResult = (*ppEapError)->dwWinError;
|
||||||
|
} catch (...) {
|
||||||
|
dwResult = ERROR_INVALID_DATA;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return dwResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Processes a packet received by EapHost from a supplicant.
|
||||||
|
///
|
||||||
|
/// \sa [EapPeerProcessRequestPacket function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363621.aspx)
|
||||||
|
///
|
||||||
|
DWORD APIENTRY EapPeerProcessRequestPacket(
|
||||||
|
_In_ EAP_SESSION_HANDLE hSession,
|
||||||
|
_In_ DWORD dwReceivedPacketSize,
|
||||||
|
_In_bytecount_(dwReceivedPacketSize) /*const*/ EapPacket *pReceivedPacket,
|
||||||
|
_Out_ EapPeerMethodOutput *pEapOutput,
|
||||||
|
_Out_ EAP_ERROR **ppEapError)
|
||||||
|
{
|
||||||
|
DWORD dwResult = ERROR_SUCCESS;
|
||||||
|
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
||||||
|
#ifdef _DEBUG
|
||||||
|
//Sleep(10000);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Parameter check
|
||||||
|
if (!ppEapError)
|
||||||
|
return dwResult = ERROR_INVALID_PARAMETER;
|
||||||
|
|
||||||
|
assert(!*ppEapError);
|
||||||
|
|
||||||
|
if (!hSession)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" hSession is NULL.")));
|
||||||
|
else if (!pReceivedPacket || dwReceivedPacketSize < 6)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pReceivedPacket is NULL or too short.")));
|
||||||
|
else if (pReceivedPacket->Data[0] != EAPMETHOD_TYPE)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, wstring_printf(_T(__FUNCTION__) _T(" Packet EAP type (%d) does not match the supported EAP type (%d)."), (int)pReceivedPacket->Data[0], (int)EAPMETHOD_TYPE).c_str()));
|
||||||
|
else if (!pEapOutput)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pEapOutput is NULL.")));
|
||||||
|
else {
|
||||||
|
try {
|
||||||
|
g_peer.process_request_packet(hSession, pReceivedPacket, dwReceivedPacketSize, pEapOutput);
|
||||||
|
} catch (std::exception &err) {
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(err));
|
||||||
|
dwResult = (*ppEapError)->dwWinError;
|
||||||
|
} catch (...) {
|
||||||
|
dwResult = ERROR_INVALID_DATA;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return dwResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Obtains a response packet from the EAP method.
|
||||||
|
///
|
||||||
|
/// \sa [EapPeerGetResponsePacket function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363610.aspx)
|
||||||
|
///
|
||||||
|
DWORD APIENTRY EapPeerGetResponsePacket(
|
||||||
|
_In_ EAP_SESSION_HANDLE hSession,
|
||||||
|
_Inout_ DWORD *pdwSendPacketSize,
|
||||||
|
_Inout_bytecap_(*dwSendPacketSize) EapPacket *pSendPacket,
|
||||||
|
_Out_ EAP_ERROR **ppEapError)
|
||||||
|
{
|
||||||
|
DWORD dwResult = ERROR_SUCCESS;
|
||||||
|
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
||||||
|
#ifdef _DEBUG
|
||||||
|
//Sleep(10000);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Parameter check
|
||||||
|
if (!ppEapError)
|
||||||
|
return dwResult = ERROR_INVALID_PARAMETER;
|
||||||
|
|
||||||
|
assert(!*ppEapError);
|
||||||
|
|
||||||
|
if (!hSession)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" hSession is NULL.")));
|
||||||
|
else if (!pdwSendPacketSize)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pdwSendPacketSize is NULL.")));
|
||||||
|
else if (!pSendPacket && *pdwSendPacketSize)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pSendPacket is NULL.")));
|
||||||
|
else {
|
||||||
|
try {
|
||||||
|
g_peer.get_response_packet(hSession, pSendPacket, pdwSendPacketSize);
|
||||||
|
} catch (std::exception &err) {
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(err));
|
||||||
|
dwResult = (*ppEapError)->dwWinError;
|
||||||
|
} catch (...) {
|
||||||
|
dwResult = ERROR_INVALID_DATA;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return dwResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Obtains the result of an authentication session from the EAP method.
|
||||||
|
///
|
||||||
|
/// \sa [EapPeerGetResult function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363611.aspx)
|
||||||
|
///
|
||||||
|
DWORD APIENTRY EapPeerGetResult(
|
||||||
|
_In_ EAP_SESSION_HANDLE hSession,
|
||||||
|
_In_ EapPeerMethodResultReason reason,
|
||||||
|
_Out_ EapPeerMethodResult *pResult,
|
||||||
|
_Out_ EAP_ERROR **ppEapError)
|
||||||
|
{
|
||||||
|
DWORD dwResult = ERROR_SUCCESS;
|
||||||
|
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
||||||
|
#ifdef _DEBUG
|
||||||
|
//Sleep(10000);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Parameter check
|
||||||
|
if (!ppEapError)
|
||||||
|
return dwResult = ERROR_INVALID_PARAMETER;
|
||||||
|
|
||||||
|
assert(!*ppEapError);
|
||||||
|
|
||||||
|
if (!hSession)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" hSession is NULL.")));
|
||||||
|
else if (!pResult)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pResult is NULL.")));
|
||||||
|
else {
|
||||||
|
try {
|
||||||
|
g_peer.get_result(hSession, reason, pResult);
|
||||||
|
} catch (std::exception &err) {
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(err));
|
||||||
|
dwResult = (*ppEapError)->dwWinError;
|
||||||
|
} catch (...) {
|
||||||
|
dwResult = ERROR_INVALID_DATA;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return dwResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Obtains the user interface context from the EAP method.
|
||||||
|
///
|
||||||
|
/// \note This function is always followed by the `EapPeerInvokeInteractiveUI()` function, which is followed by the `EapPeerSetUIContext()` function.
|
||||||
|
///
|
||||||
|
/// \sa [EapPeerGetUIContext function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363612.aspx)
|
||||||
|
///
|
||||||
|
DWORD APIENTRY EapPeerGetUIContext(
|
||||||
|
_In_ EAP_SESSION_HANDLE hSession,
|
||||||
|
_Out_ DWORD *pdwUIContextDataSize,
|
||||||
|
_Out_ BYTE **ppUIContextData,
|
||||||
|
_Out_ EAP_ERROR **ppEapError)
|
||||||
|
{
|
||||||
|
DWORD dwResult = ERROR_SUCCESS;
|
||||||
|
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
||||||
|
#ifdef _DEBUG
|
||||||
|
//Sleep(10000);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Parameter check
|
||||||
|
if (!ppEapError)
|
||||||
|
return dwResult = ERROR_INVALID_PARAMETER;
|
||||||
|
|
||||||
|
assert(!*ppEapError);
|
||||||
|
|
||||||
|
if (!hSession)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" hSession is NULL.")));
|
||||||
|
else if (!pdwUIContextDataSize)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pdwUIContextDataSize is NULL.")));
|
||||||
|
else if (!ppUIContextData)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" ppUIContextData is NULL.")));
|
||||||
|
else {
|
||||||
|
try {
|
||||||
|
g_peer.get_ui_context(hSession, ppUIContextData, pdwUIContextDataSize);
|
||||||
|
} catch (std::exception &err) {
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(err));
|
||||||
|
dwResult = (*ppEapError)->dwWinError;
|
||||||
|
} catch (...) {
|
||||||
|
dwResult = ERROR_INVALID_DATA;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return dwResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Provides a user interface context to the EAP method.
|
||||||
|
///
|
||||||
|
/// \note This function is called after the UI has been raised through the `EapPeerGetUIContext()` function.
|
||||||
|
///
|
||||||
|
/// \sa [EapPeerSetUIContext function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363626.aspx)
|
||||||
|
///
|
||||||
|
DWORD APIENTRY EapPeerSetUIContext(
|
||||||
|
_In_ EAP_SESSION_HANDLE hSession,
|
||||||
|
_In_ DWORD dwUIContextDataSize,
|
||||||
|
_In_count_(dwUIContextDataSize) const BYTE *pUIContextData,
|
||||||
|
_Out_ EapPeerMethodOutput *pEapOutput,
|
||||||
|
_Out_ EAP_ERROR **ppEapError)
|
||||||
|
{
|
||||||
|
DWORD dwResult = ERROR_SUCCESS;
|
||||||
|
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
||||||
|
#ifdef _DEBUG
|
||||||
|
//Sleep(10000);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Parameter check
|
||||||
|
if (!ppEapError)
|
||||||
|
return dwResult = ERROR_INVALID_PARAMETER;
|
||||||
|
|
||||||
|
assert(!*ppEapError);
|
||||||
|
|
||||||
|
if (!hSession)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" hSession is NULL.")));
|
||||||
|
else if (!pUIContextData && dwUIContextDataSize)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pUIContextData is NULL.")));
|
||||||
|
else if (!pEapOutput)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pEapOutput is NULL.")));
|
||||||
|
else {
|
||||||
|
try {
|
||||||
|
g_peer.set_ui_context(hSession, pUIContextData, dwUIContextDataSize, pEapOutput);
|
||||||
|
} catch (std::exception &err) {
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(err));
|
||||||
|
dwResult = (*ppEapError)->dwWinError;
|
||||||
|
} catch (...) {
|
||||||
|
dwResult = ERROR_INVALID_DATA;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return dwResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Obtains an array of EAP response attributes from the EAP method.
|
||||||
|
///
|
||||||
|
/// \sa [EapPeerGetResponseAttributes function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363609.aspx)
|
||||||
|
///
|
||||||
|
DWORD APIENTRY EapPeerGetResponseAttributes(
|
||||||
|
_In_ EAP_SESSION_HANDLE hSession,
|
||||||
|
_Out_ EapAttributes *pAttribs,
|
||||||
|
_Out_ EAP_ERROR **ppEapError)
|
||||||
|
{
|
||||||
|
DWORD dwResult = ERROR_SUCCESS;
|
||||||
|
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
||||||
|
#ifdef _DEBUG
|
||||||
|
//Sleep(10000);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Parameter check
|
||||||
|
if (!ppEapError)
|
||||||
|
return dwResult = ERROR_INVALID_PARAMETER;
|
||||||
|
|
||||||
|
assert(!*ppEapError);
|
||||||
|
|
||||||
|
if (!hSession)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" hSession is NULL.")));
|
||||||
|
else if (!pAttribs)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pAttribs is NULL.")));
|
||||||
|
else {
|
||||||
|
try {
|
||||||
|
g_peer.get_response_attributes(hSession, pAttribs);
|
||||||
|
} catch (std::exception &err) {
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(err));
|
||||||
|
dwResult = (*ppEapError)->dwWinError;
|
||||||
|
} catch (...) {
|
||||||
|
dwResult = ERROR_INVALID_DATA;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return dwResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Provides an updated array of EAP response attributes to the EAP method.
|
||||||
|
///
|
||||||
|
/// \sa [EapPeerSetResponseAttributes function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363625.aspx)
|
||||||
|
///
|
||||||
|
DWORD APIENTRY EapPeerSetResponseAttributes(
|
||||||
|
_In_ EAP_SESSION_HANDLE hSession,
|
||||||
|
_In_ /*const*/ EapAttributes *pAttribs,
|
||||||
|
_Out_ EapPeerMethodOutput *pEapOutput,
|
||||||
|
_Out_ EAP_ERROR **ppEapError)
|
||||||
|
{
|
||||||
|
DWORD dwResult = ERROR_SUCCESS;
|
||||||
|
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
||||||
|
#ifdef _DEBUG
|
||||||
|
//Sleep(10000);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Parameter check
|
||||||
|
if (!ppEapError)
|
||||||
|
return dwResult = ERROR_INVALID_PARAMETER;
|
||||||
|
|
||||||
|
assert(!*ppEapError);
|
||||||
|
|
||||||
|
if (!hSession)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" hSession is NULL.")));
|
||||||
|
else if (!pEapOutput)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pEapOutput is NULL.")));
|
||||||
|
else {
|
||||||
|
try {
|
||||||
|
g_peer.set_response_attributes(hSession, pAttribs, pEapOutput);
|
||||||
|
} catch (std::exception &err) {
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(err));
|
||||||
|
dwResult = (*ppEapError)->dwWinError;
|
||||||
|
} catch (...) {
|
||||||
|
dwResult = ERROR_INVALID_DATA;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return dwResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Defines the implementation of an EAP method-specific function that retrieves the properties of an EAP method given the connection and user data.
|
||||||
|
///
|
||||||
|
/// \sa [EapPeerGetMethodProperties function](https://msdn.microsoft.com/en-us/library/windows/desktop/hh706636.aspx)
|
||||||
|
///
|
||||||
|
DWORD WINAPI EapPeerGetMethodProperties(
|
||||||
|
_In_ DWORD dwVersion,
|
||||||
|
_In_ DWORD dwFlags,
|
||||||
|
_In_ EAP_METHOD_TYPE eapMethodType,
|
||||||
|
_In_ HANDLE hUserImpersonationToken,
|
||||||
|
_In_ DWORD dwConnectionDataSize,
|
||||||
|
_In_count_(dwConnectionDataSize) const BYTE *pConnectionData,
|
||||||
|
_In_ DWORD dwUserDataSize,
|
||||||
|
_In_count_(dwUserDataSize) const BYTE *pUserData,
|
||||||
|
_Out_ EAP_METHOD_PROPERTY_ARRAY *pMethodPropertyArray,
|
||||||
|
_Out_ EAP_ERROR **ppEapError)
|
||||||
|
{
|
||||||
|
DWORD dwResult = ERROR_SUCCESS;
|
||||||
|
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
||||||
|
#ifdef _DEBUG
|
||||||
|
//Sleep(10000);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Parameter check
|
||||||
|
if (!ppEapError)
|
||||||
|
return dwResult = ERROR_INVALID_PARAMETER;
|
||||||
|
|
||||||
|
assert(!*ppEapError);
|
||||||
|
|
||||||
|
if (eapMethodType.eapType.type != EAPMETHOD_TYPE)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_NOT_SUPPORTED, wstring_printf(_T(__FUNCTION__) _T(" Input EAP type (%d) does not match the supported EAP type (%d)."), (int)eapMethodType.eapType.type, (int)EAPMETHOD_TYPE).c_str()));
|
||||||
|
else if (eapMethodType.dwAuthorId != 67532)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_NOT_SUPPORTED, wstring_printf(_T(__FUNCTION__) _T(" EAP author (%d) does not match the supported author (%d)."), (int)eapMethodType.dwAuthorId, (int)67532).c_str()));
|
||||||
|
else if (!pConnectionData && dwConnectionDataSize)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pConnectionData is NULL.")));
|
||||||
|
else if (!pUserData && dwUserDataSize)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pUserData is NULL.")));
|
||||||
|
else if (!pMethodPropertyArray)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pMethodPropertyArray is NULL.")));
|
||||||
|
else {
|
||||||
|
try {
|
||||||
|
g_peer.get_method_properties(dwVersion, dwFlags, hUserImpersonationToken, pConnectionData, dwConnectionDataSize, pUserData, dwUserDataSize, pMethodPropertyArray);
|
||||||
|
} catch (std::exception &err) {
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(err));
|
||||||
|
dwResult = (*ppEapError)->dwWinError;
|
||||||
|
} catch (...) {
|
||||||
|
dwResult = ERROR_INVALID_DATA;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return dwResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Converts XML into the configuration BLOB. The XML based credentials can come from group policy or from a system administrator.
|
||||||
|
///
|
||||||
|
/// \sa [EapPeerCredentialsXml2Blob function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363603.aspx)
|
||||||
|
///
|
||||||
|
DWORD WINAPI EapPeerCredentialsXml2Blob(
|
||||||
|
_In_ DWORD dwFlags,
|
||||||
|
_In_ EAP_METHOD_TYPE eapMethodType,
|
||||||
|
_In_ IXMLDOMDocument2 *pCredentialsDoc,
|
||||||
|
_In_count_(dwConnectionDataSize) const BYTE *pConnectionData,
|
||||||
|
_In_ DWORD dwConnectionDataSize,
|
||||||
|
_Out_ BYTE **ppCredentialsOut,
|
||||||
|
_Out_ DWORD *pdwCredentialsOutSize,
|
||||||
|
_Out_ EAP_ERROR **ppEapError)
|
||||||
|
{
|
||||||
|
DWORD dwResult = ERROR_SUCCESS;
|
||||||
|
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
||||||
|
#ifdef _DEBUG
|
||||||
|
//Sleep(10000);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Parameter check
|
||||||
|
if (!ppEapError)
|
||||||
|
return dwResult = ERROR_INVALID_PARAMETER;
|
||||||
|
|
||||||
|
assert(!*ppEapError);
|
||||||
|
|
||||||
|
if (eapMethodType.eapType.type != EAPMETHOD_TYPE)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_NOT_SUPPORTED, wstring_printf(_T(__FUNCTION__) _T(" Input EAP type (%d) does not match the supported EAP type (%d)."), (int)eapMethodType.eapType.type, (int)EAPMETHOD_TYPE).c_str()));
|
||||||
|
else if (eapMethodType.dwAuthorId != 67532)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_NOT_SUPPORTED, wstring_printf(_T(__FUNCTION__) _T(" EAP author (%d) does not match the supported author (%d)."), (int)eapMethodType.dwAuthorId, (int)67532).c_str()));
|
||||||
|
else if (!pCredentialsDoc)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pCredentialsDoc is NULL.")));
|
||||||
|
else if (!pConnectionData && dwConnectionDataSize)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pConnectionData is NULL.")));
|
||||||
|
else if (!ppCredentialsOut)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" ppCredentialsOut is NULL.")));
|
||||||
|
else if (!pdwCredentialsOutSize)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pdwCredentialsOutSize is NULL.")));
|
||||||
|
else {
|
||||||
|
// <Credentials>
|
||||||
|
com_obj<IXMLDOMNode> 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Load credentials.
|
||||||
|
pCredentialsDoc->setProperty(bstr(L"SelectionNamespaces"), variant(L"xmlns:eap-metadata=\"urn:ietf:params:xml:ns:yang:ietf-eap-metadata\""));
|
||||||
|
try {
|
||||||
|
g_peer.credentials_xml2blob(dwFlags, pXmlElCredentials, pConnectionData, dwConnectionDataSize, ppCredentialsOut, pdwCredentialsOutSize);
|
||||||
|
} catch (std::exception &err) {
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(err));
|
||||||
|
dwResult = (*ppEapError)->dwWinError;
|
||||||
|
} catch (...) {
|
||||||
|
dwResult = ERROR_INVALID_DATA;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return dwResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Defines the implementation of an EAP method-specific function that obtains the EAP Single-Sign-On (SSO) credential input fields for an EAP method.
|
||||||
|
///
|
||||||
|
/// \sa [EapPeerQueryCredentialInputFields function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363622.aspx)
|
||||||
|
///
|
||||||
|
DWORD WINAPI EapPeerQueryCredentialInputFields(
|
||||||
|
_In_ HANDLE hUserImpersonationToken,
|
||||||
|
_In_ EAP_METHOD_TYPE eapMethodType,
|
||||||
|
_In_ DWORD dwFlags,
|
||||||
|
_In_ DWORD dwConnectionDataSize,
|
||||||
|
_In_count_(dwConnectionDataSize) const BYTE *pConnectionData,
|
||||||
|
_Out_ EAP_CONFIG_INPUT_FIELD_ARRAY *pEapConfigInputFieldsArray,
|
||||||
|
_Out_ EAP_ERROR **ppEapError)
|
||||||
|
{
|
||||||
|
DWORD dwResult = ERROR_SUCCESS;
|
||||||
|
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
||||||
|
#ifdef _DEBUG
|
||||||
|
//Sleep(10000);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Parameter check
|
||||||
|
if (!ppEapError)
|
||||||
|
return dwResult = ERROR_INVALID_PARAMETER;
|
||||||
|
|
||||||
|
assert(!*ppEapError);
|
||||||
|
|
||||||
|
if (eapMethodType.eapType.type != EAPMETHOD_TYPE)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_NOT_SUPPORTED, wstring_printf(_T(__FUNCTION__) _T(" Input EAP type (%d) does not match the supported EAP type (%d)."), (int)eapMethodType.eapType.type, (int)EAPMETHOD_TYPE).c_str()));
|
||||||
|
else if (eapMethodType.dwAuthorId != 67532)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_NOT_SUPPORTED, wstring_printf(_T(__FUNCTION__) _T(" EAP author (%d) does not match the supported author (%d)."), (int)eapMethodType.dwAuthorId, (int)67532).c_str()));
|
||||||
|
else if (!pConnectionData && dwConnectionDataSize)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pConnectionData is NULL.")));
|
||||||
|
else if (!pEapConfigInputFieldsArray)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pEapConfigInputFieldsArray is NULL.")));
|
||||||
|
else {
|
||||||
|
try {
|
||||||
|
g_peer.query_credential_input_fields(hUserImpersonationToken, dwFlags, dwConnectionDataSize, pConnectionData, pEapConfigInputFieldsArray);
|
||||||
|
} catch (std::exception &err) {
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(err));
|
||||||
|
dwResult = (*ppEapError)->dwWinError;
|
||||||
|
} catch (...) {
|
||||||
|
dwResult = ERROR_INVALID_DATA;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return dwResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Defines the implementation of an EAP method function that obtains the user BLOB data provided in an interactive Single-Sign-On (SSO) UI raised on the supplicant.
|
||||||
|
///
|
||||||
|
/// \sa [EapPeerQueryUserBlobFromCredentialInputFields function](https://msdn.microsoft.com/en-us/library/windows/desktop/bb204697.aspx)
|
||||||
|
///
|
||||||
|
DWORD WINAPI EapPeerQueryUserBlobFromCredentialInputFields(
|
||||||
|
_In_ HANDLE hUserImpersonationToken,
|
||||||
|
_In_ EAP_METHOD_TYPE eapMethodType,
|
||||||
|
_In_ DWORD dwFlags,
|
||||||
|
_In_ DWORD dwConnectionDataSize,
|
||||||
|
_In_count_(dwConnectionDataSize) const BYTE *pConnectionData,
|
||||||
|
_In_ const EAP_CONFIG_INPUT_FIELD_ARRAY *pEapConfigInputFieldArray,
|
||||||
|
_Inout_ DWORD *pdwUsersBlobSize,
|
||||||
|
_Inout_ BYTE **ppUserBlob,
|
||||||
|
_Out_ EAP_ERROR **ppEapError)
|
||||||
|
{
|
||||||
|
DWORD dwResult = ERROR_SUCCESS;
|
||||||
|
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
||||||
|
#ifdef _DEBUG
|
||||||
|
//Sleep(10000);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Parameter check
|
||||||
|
if (!ppEapError)
|
||||||
|
return dwResult = ERROR_INVALID_PARAMETER;
|
||||||
|
|
||||||
|
assert(!*ppEapError);
|
||||||
|
|
||||||
|
if (eapMethodType.eapType.type != EAPMETHOD_TYPE)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_NOT_SUPPORTED, wstring_printf(_T(__FUNCTION__) _T(" Input EAP type (%d) does not match the supported EAP type (%d)."), (int)eapMethodType.eapType.type, (int)EAPMETHOD_TYPE).c_str()));
|
||||||
|
else if (eapMethodType.dwAuthorId != 67532)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_NOT_SUPPORTED, wstring_printf(_T(__FUNCTION__) _T(" EAP author (%d) does not match the supported author (%d)."), (int)eapMethodType.dwAuthorId, (int)67532).c_str()));
|
||||||
|
else if (!pConnectionData && dwConnectionDataSize)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pConnectionData is NULL.")));
|
||||||
|
else if (!pEapConfigInputFieldArray)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pEapConfigInputFieldArray is NULL.")));
|
||||||
|
else if (!pdwUsersBlobSize)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pdwUsersBlobSize is NULL.")));
|
||||||
|
else if (!ppUserBlob)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" ppUserBlob is NULL.")));
|
||||||
|
else {
|
||||||
|
try {
|
||||||
|
g_peer.query_user_blob_from_credential_input_fields(hUserImpersonationToken, dwFlags, dwConnectionDataSize, pConnectionData, pEapConfigInputFieldArray, pdwUsersBlobSize, ppUserBlob);
|
||||||
|
} catch (std::exception &err) {
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(err));
|
||||||
|
dwResult = (*ppEapError)->dwWinError;
|
||||||
|
} catch (...) {
|
||||||
|
dwResult = ERROR_INVALID_DATA;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return dwResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Defines the implementation of an EAP method API that provides the input fields for interactive UI components to be raised on the supplicant.
|
||||||
|
///
|
||||||
|
/// \sa [EapPeerQueryInteractiveUIInputFields function](https://msdn.microsoft.com/en-us/library/windows/desktop/bb204695.aspx)
|
||||||
|
///
|
||||||
|
DWORD WINAPI EapPeerQueryInteractiveUIInputFields(
|
||||||
|
_In_ DWORD dwVersion,
|
||||||
|
_In_ DWORD dwFlags,
|
||||||
|
_In_ DWORD dwUIContextDataSize,
|
||||||
|
_In_count_(dwUIContextDataSize) const BYTE *pUIContextData,
|
||||||
|
_Out_ EAP_INTERACTIVE_UI_DATA *pEapInteractiveUIData,
|
||||||
|
_Out_ EAP_ERROR **ppEapError,
|
||||||
|
_Inout_ LPVOID *ppvReserved)
|
||||||
|
{
|
||||||
|
DWORD dwResult = ERROR_SUCCESS;
|
||||||
|
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
||||||
|
#ifdef _DEBUG
|
||||||
|
//Sleep(10000);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Parameter check
|
||||||
|
if (!ppEapError)
|
||||||
|
return dwResult = ERROR_INVALID_PARAMETER;
|
||||||
|
|
||||||
|
assert(!*ppEapError);
|
||||||
|
|
||||||
|
if (!pUIContextData && dwUIContextDataSize)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pUIContextData is NULL.")));
|
||||||
|
else if (!pUIContextData && dwUIContextDataSize)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pUIContextData is NULL.")));
|
||||||
|
else if (!pEapInteractiveUIData)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pEapInteractiveUIData is NULL.")));
|
||||||
|
else {
|
||||||
|
UNREFERENCED_PARAMETER(ppvReserved);
|
||||||
|
|
||||||
|
try {
|
||||||
|
g_peer.query_interactive_ui_input_fields(dwVersion, dwFlags, dwUIContextDataSize, pUIContextData, pEapInteractiveUIData);
|
||||||
|
} catch (std::exception &err) {
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(err));
|
||||||
|
dwResult = (*ppEapError)->dwWinError;
|
||||||
|
} catch (...) {
|
||||||
|
dwResult = ERROR_INVALID_DATA;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return dwResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Converts user information into a user BLOB that can be consumed by EapHost run-time functions.
|
||||||
|
///
|
||||||
|
/// \sa [EapPeerQueryUIBlobFromInteractiveUIInputFields function](https://msdn.microsoft.com/en-us/library/windows/desktop/bb204696.aspx)
|
||||||
|
///
|
||||||
|
DWORD WINAPI EapPeerQueryUIBlobFromInteractiveUIInputFields(
|
||||||
|
_In_ DWORD dwVersion,
|
||||||
|
_In_ DWORD dwFlags,
|
||||||
|
_In_ DWORD dwUIContextDataSize,
|
||||||
|
_In_count_(dwUIContextDataSize) const BYTE *pUIContextData,
|
||||||
|
_In_ const EAP_INTERACTIVE_UI_DATA *pEapInteractiveUIData,
|
||||||
|
_Out_ DWORD *pdwDataFromInteractiveUISize,
|
||||||
|
_Out_ BYTE **ppDataFromInteractiveUI,
|
||||||
|
_Out_ EAP_ERROR **ppEapError,
|
||||||
|
_Inout_ LPVOID *ppvReserved)
|
||||||
|
{
|
||||||
|
DWORD dwResult = ERROR_SUCCESS;
|
||||||
|
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
||||||
|
#ifdef _DEBUG
|
||||||
|
//Sleep(10000);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Parameter check
|
||||||
|
if (!ppEapError)
|
||||||
|
return dwResult = ERROR_INVALID_PARAMETER;
|
||||||
|
|
||||||
|
assert(!*ppEapError);
|
||||||
|
|
||||||
|
if (!pUIContextData && dwUIContextDataSize)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pEapConfigInputFieldArray is NULL.")));
|
||||||
|
else if (!pEapInteractiveUIData)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pEapInteractiveUIData is NULL.")));
|
||||||
|
else if (!pdwDataFromInteractiveUISize)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pdwDataFromInteractiveUISize is NULL.")));
|
||||||
|
else if (!ppDataFromInteractiveUI)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" ppDataFromInteractiveUI is NULL.")));
|
||||||
|
else {
|
||||||
|
UNREFERENCED_PARAMETER(ppvReserved);
|
||||||
|
|
||||||
|
try {
|
||||||
|
g_peer.query_ui_blob_from_interactive_ui_input_fields(dwVersion, dwFlags, dwUIContextDataSize, pUIContextData, pEapInteractiveUIData, pdwDataFromInteractiveUISize, ppDataFromInteractiveUI);
|
||||||
|
} catch (std::exception &err) {
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(err));
|
||||||
|
dwResult = (*ppEapError)->dwWinError;
|
||||||
|
} catch (...) {
|
||||||
|
dwResult = ERROR_INVALID_DATA;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return dwResult;
|
||||||
|
}
|
413
EAPMethods/src/Main_UI.cpp
Normal file
413
EAPMethods/src/Main_UI.cpp
Normal file
@ -0,0 +1,413 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2015-2016 Amebis
|
||||||
|
Copyright 2016 GÉANT
|
||||||
|
|
||||||
|
This file is part of GÉANTLink.
|
||||||
|
|
||||||
|
GÉANTLink is free software: you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
GÉANTLink is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with GÉANTLink. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <StdAfx.h>
|
||||||
|
|
||||||
|
#pragma comment(lib, "msxml6.lib")
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
using namespace winstd;
|
||||||
|
|
||||||
|
|
||||||
|
#if EAPMETHOD_TYPE==21
|
||||||
|
#define _EAPMETHOD_PEER_UI eap::peer_ttls_ui
|
||||||
|
#else
|
||||||
|
#error Unknown EAP Method type.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
HANDLE g_act_ctx = NULL;
|
||||||
|
_EAPMETHOD_PEER_UI g_peer;
|
||||||
|
|
||||||
|
|
||||||
|
///
|
||||||
|
/// DLL main entry point
|
||||||
|
///
|
||||||
|
/// \sa [DllMain entry point](https://msdn.microsoft.com/en-us/library/windows/desktop/ms682583.aspx)
|
||||||
|
///
|
||||||
|
BOOL WINAPI DllMain(_In_ HINSTANCE hinstDLL, _In_ DWORD fdwReason, _In_ LPVOID lpvReserved)
|
||||||
|
{
|
||||||
|
UNREFERENCED_PARAMETER(lpvReserved);
|
||||||
|
|
||||||
|
if (fdwReason == DLL_PROCESS_ATTACH) {
|
||||||
|
#ifdef _DEBUG
|
||||||
|
//Sleep(10000);
|
||||||
|
#endif
|
||||||
|
g_peer.m_instance = hinstDLL;
|
||||||
|
|
||||||
|
// Save current activation context, as proper activation context is set at this time only (LoadLibrary() call).
|
||||||
|
GetCurrentActCtx(&g_act_ctx);
|
||||||
|
} else if (fdwReason == DLL_PROCESS_DETACH) {
|
||||||
|
if (g_act_ctx)
|
||||||
|
ReleaseActCtx(g_act_ctx);
|
||||||
|
|
||||||
|
// wxWidgets library has some global objects allocating data on heap in constructors,
|
||||||
|
// causing false-positive memory leak reports.
|
||||||
|
//assert(!_CrtDumpMemoryLeaks());
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Releases all memory associated with an opaque user interface context data buffer.
|
||||||
|
///
|
||||||
|
/// \sa [EapPeerFreeMemory function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363606.aspx)
|
||||||
|
///
|
||||||
|
VOID WINAPI EapPeerFreeMemory(_In_ void *pUIContextData)
|
||||||
|
{
|
||||||
|
event_fn_auto event_auto(g_peer.get_event_fn_auto(__FUNCTION__));
|
||||||
|
|
||||||
|
if (pUIContextData)
|
||||||
|
g_peer.free_memory((BYTE*)pUIContextData);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Releases error-specific memory allocated by the EAP peer method.
|
||||||
|
///
|
||||||
|
/// \sa [EapPeerFreeErrorMemory function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363605.aspx)
|
||||||
|
///
|
||||||
|
VOID WINAPI EapPeerFreeErrorMemory(_In_ EAP_ERROR *ppEapError)
|
||||||
|
{
|
||||||
|
event_fn_auto event_auto(g_peer.get_event_fn_auto(__FUNCTION__));
|
||||||
|
|
||||||
|
if (ppEapError)
|
||||||
|
g_peer.free_error_memory(ppEapError);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Converts XML into the configuration BLOB.
|
||||||
|
///
|
||||||
|
/// \sa [EapPeerConfigXml2Blob function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363602.aspx)
|
||||||
|
///
|
||||||
|
DWORD WINAPI EapPeerConfigXml2Blob(
|
||||||
|
_In_ DWORD dwFlags,
|
||||||
|
_In_ EAP_METHOD_TYPE eapMethodType,
|
||||||
|
_In_ IXMLDOMDocument2 *pConfigDoc,
|
||||||
|
_Out_ BYTE **pConnectionDataOut,
|
||||||
|
_Out_ DWORD *pdwConnectionDataOutSize,
|
||||||
|
_Out_ EAP_ERROR **ppEapError)
|
||||||
|
{
|
||||||
|
DWORD dwResult = ERROR_SUCCESS;
|
||||||
|
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
||||||
|
#ifdef _DEBUG
|
||||||
|
//Sleep(10000);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Parameter check
|
||||||
|
if (!ppEapError)
|
||||||
|
return dwResult = ERROR_INVALID_PARAMETER;
|
||||||
|
|
||||||
|
assert(!*ppEapError);
|
||||||
|
|
||||||
|
if (eapMethodType.eapType.type != EAPMETHOD_TYPE)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_NOT_SUPPORTED, wstring_printf(_T(__FUNCTION__) _T(" Input EAP type (%d) does not match the supported EAP type (%d)."), (int)eapMethodType.eapType.type, (int)EAPMETHOD_TYPE).c_str()));
|
||||||
|
else if (eapMethodType.dwAuthorId != 67532)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_NOT_SUPPORTED, wstring_printf(_T(__FUNCTION__) _T(" EAP author (%d) does not match the supported author (%d)."), (int)eapMethodType.dwAuthorId, (int)67532).c_str()));
|
||||||
|
else if (!pConfigDoc)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pConfigDoc is NULL.")));
|
||||||
|
else if (!pConnectionDataOut)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pConnectionDataOut is NULL.")));
|
||||||
|
else if (!pdwConnectionDataOutSize)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pdwConnectionDataOutSize is NULL.")));
|
||||||
|
else {
|
||||||
|
// Configure XML selection namespaces used.
|
||||||
|
pConfigDoc->setProperty(bstr(L"SelectionNamespaces"), variant(L"xmlns:eap-metadata=\"urn:ietf:params:xml:ns:yang:ietf-eap-metadata\" xmlns:eaphostconfig=\"http://www.microsoft.com/provisioning/EapHostConfig\""));
|
||||||
|
|
||||||
|
// <Config>
|
||||||
|
com_obj<IXMLDOMElement> 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Load configuration.
|
||||||
|
try {
|
||||||
|
g_peer.config_xml2blob(dwFlags, pXmlElConfig, pConnectionDataOut, pdwConnectionDataOutSize);
|
||||||
|
} catch (std::exception &err) {
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(err));
|
||||||
|
dwResult = (*ppEapError)->dwWinError;
|
||||||
|
} catch (...) {
|
||||||
|
dwResult = ERROR_INVALID_DATA;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return dwResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Converts the configuration BLOB to XML.
|
||||||
|
///
|
||||||
|
/// The configuration BLOB is returned in the ppConnectionDataOut parameter of the EapPeerInvokeConfigUI function.
|
||||||
|
///
|
||||||
|
/// \sa [EapPeerConfigBlob2Xml function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363601.aspx)
|
||||||
|
///
|
||||||
|
DWORD WINAPI EapPeerConfigBlob2Xml(
|
||||||
|
_In_ DWORD dwFlags,
|
||||||
|
_In_ EAP_METHOD_TYPE eapMethodType,
|
||||||
|
_In_count_(dwConnectionDataSize) const BYTE *pConnectionData,
|
||||||
|
_In_ DWORD dwConnectionDataSize,
|
||||||
|
_Out_ IXMLDOMDocument2 **ppConfigDoc,
|
||||||
|
_Out_ EAP_ERROR **ppEapError)
|
||||||
|
{
|
||||||
|
DWORD dwResult = ERROR_SUCCESS;
|
||||||
|
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
||||||
|
#ifdef _DEBUG
|
||||||
|
//Sleep(10000);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Parameter check
|
||||||
|
if (!ppEapError)
|
||||||
|
return dwResult = ERROR_INVALID_PARAMETER;
|
||||||
|
|
||||||
|
assert(!*ppEapError);
|
||||||
|
|
||||||
|
if (eapMethodType.eapType.type != EAPMETHOD_TYPE)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_NOT_SUPPORTED, wstring_printf(_T(__FUNCTION__) _T(" Input EAP type (%d) does not match the supported EAP type (%d)."), (int)eapMethodType.eapType.type, (int)EAPMETHOD_TYPE).c_str()));
|
||||||
|
else if (eapMethodType.dwAuthorId != 67532)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_NOT_SUPPORTED, wstring_printf(_T(__FUNCTION__) _T(" EAP author (%d) does not match the supported author (%d)."), (int)eapMethodType.dwAuthorId, (int)67532).c_str()));
|
||||||
|
else if (!pConnectionData && dwConnectionDataSize)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pConnectionData is NULL.")));
|
||||||
|
else if (!ppConfigDoc)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" ppConfigDoc is NULL.")));
|
||||||
|
else {
|
||||||
|
HRESULT hr;
|
||||||
|
|
||||||
|
// Create configuration XML document.
|
||||||
|
com_obj<IXMLDOMDocument2> pConfigDoc;
|
||||||
|
if (FAILED(hr = pConfigDoc.create(CLSID_DOMDocument60, NULL, CLSCTX_INPROC_SERVER))) {
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = HRESULT_CODE(hr), _T(__FUNCTION__) _T(" Error creating XML document.")));
|
||||||
|
return dwResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
pConfigDoc->put_async(VARIANT_FALSE);
|
||||||
|
|
||||||
|
// Load empty XML configuration.
|
||||||
|
VARIANT_BOOL isSuccess = VARIANT_FALSE;
|
||||||
|
if (FAILED((hr = pConfigDoc->loadXML(L"<Config xmlns=\"http://www.microsoft.com/provisioning/EapHostConfig\"></Config>", &isSuccess)))) {
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = HRESULT_CODE(hr), _T(__FUNCTION__) _T(" Error loading XML document template.")));
|
||||||
|
return dwResult;
|
||||||
|
}
|
||||||
|
if (!isSuccess) {
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_XML_PARSE_ERROR, _T(__FUNCTION__) _T(" Loading XML template failed.")));
|
||||||
|
return dwResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Configure XML selection namespaces used.
|
||||||
|
pConfigDoc->setProperty(bstr(L"SelectionNamespaces"), variant(L"xmlns:eap-metadata=\"urn:ietf:params:xml:ns:yang:ietf-eap-metadata\" xmlns:eaphostconfig=\"http://www.microsoft.com/provisioning/EapHostConfig\""));
|
||||||
|
|
||||||
|
// Select <Config> node.
|
||||||
|
com_obj<IXMLDOMNode> 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Save configuration.
|
||||||
|
pConfigDoc->setProperty(bstr(L"SelectionNamespaces"), variant(L"xmlns:eap-metadata=\"urn:ietf:params:xml:ns:yang:ietf-eap-metadata\""));
|
||||||
|
try {
|
||||||
|
g_peer.config_blob2xml(dwFlags, pConnectionData, dwConnectionDataSize, pConfigDoc, pXmlElConfig);
|
||||||
|
} catch (std::exception &err) {
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(err));
|
||||||
|
return dwResult = (*ppEapError)->dwWinError;
|
||||||
|
} catch (...) {
|
||||||
|
return dwResult = ERROR_INVALID_DATA;
|
||||||
|
}
|
||||||
|
|
||||||
|
*ppConfigDoc = pConfigDoc.detach();
|
||||||
|
}
|
||||||
|
|
||||||
|
return dwResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Raises the EAP method's specific connection configuration user interface dialog on the client.
|
||||||
|
///
|
||||||
|
/// \sa [EapPeerInvokeConfigUI function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363614.aspx)
|
||||||
|
///
|
||||||
|
DWORD WINAPI EapPeerInvokeConfigUI(
|
||||||
|
_In_ const EAP_METHOD_TYPE *pEapType,
|
||||||
|
_In_ HWND hwndParent,
|
||||||
|
_In_ DWORD dwFlags,
|
||||||
|
_In_ DWORD dwConnectionDataInSize,
|
||||||
|
_In_count_(dwConnectionDataInSize) const BYTE *pConnectionDataIn,
|
||||||
|
_Out_ DWORD *pdwConnectionDataOutSize,
|
||||||
|
_Out_ BYTE **ppConnectionDataOut,
|
||||||
|
_Out_ EAP_ERROR **ppEapError)
|
||||||
|
{
|
||||||
|
UNREFERENCED_PARAMETER(dwFlags);
|
||||||
|
DWORD dwResult = ERROR_SUCCESS;
|
||||||
|
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
||||||
|
actctx_activator actctx(g_act_ctx);
|
||||||
|
#ifdef _DEBUG
|
||||||
|
//Sleep(10000);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Parameter check
|
||||||
|
if (!ppEapError)
|
||||||
|
return dwResult = ERROR_INVALID_PARAMETER;
|
||||||
|
|
||||||
|
assert(!*ppEapError);
|
||||||
|
|
||||||
|
if (!pEapType)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pEapType is NULL.")));
|
||||||
|
else if (pEapType->eapType.type != EAPMETHOD_TYPE)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_NOT_SUPPORTED, wstring_printf(_T(__FUNCTION__) _T(" Input EAP type (%d) does not match the supported EAP type (%d)."), (int)pEapType->eapType.type, (int)EAPMETHOD_TYPE).c_str()));
|
||||||
|
else if (pEapType->dwAuthorId != 67532)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_NOT_SUPPORTED, wstring_printf(_T(__FUNCTION__) _T(" EAP author (%d) does not match the supported author (%d)."), (int)pEapType->dwAuthorId, (int)67532).c_str()));
|
||||||
|
else if (!pConnectionDataIn && dwConnectionDataInSize)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pConnectionDataIn is NULL.")));
|
||||||
|
else if (!pdwConnectionDataOutSize)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pdwConnectionDataOutSize is NULL.")));
|
||||||
|
else if (!ppConnectionDataOut)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" ppConnectionDataOut is NULL.")));
|
||||||
|
else {
|
||||||
|
try {
|
||||||
|
g_peer.invoke_config_ui(hwndParent, pConnectionDataIn, dwConnectionDataInSize, ppConnectionDataOut, pdwConnectionDataOutSize);
|
||||||
|
} catch (std::exception &err) {
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(err));
|
||||||
|
dwResult = (*ppEapError)->dwWinError;
|
||||||
|
} catch (...) {
|
||||||
|
dwResult = ERROR_INVALID_DATA;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return dwResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Raises a custom interactive user interface dialog to obtain user identity information for the EAP method on the client.
|
||||||
|
///
|
||||||
|
/// \sa [EapPeerInvokeIdentityUI function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363615.aspx)
|
||||||
|
///
|
||||||
|
DWORD WINAPI EapPeerInvokeIdentityUI(
|
||||||
|
_In_ const EAP_METHOD_TYPE *pEapType,
|
||||||
|
_In_ DWORD dwFlags,
|
||||||
|
_In_ HWND hwndParent,
|
||||||
|
_In_ DWORD dwConnectionDataSize,
|
||||||
|
_In_count_(dwConnectionDataSize) const BYTE *pConnectionData,
|
||||||
|
_In_ DWORD dwUserDataSize,
|
||||||
|
_In_count_(dwUserDataSize) const BYTE *pUserData,
|
||||||
|
_Out_ DWORD *pdwUserDataOutSize,
|
||||||
|
_Out_ BYTE **ppUserDataOut,
|
||||||
|
_Out_ LPWSTR *ppwszIdentity,
|
||||||
|
_Out_ EAP_ERROR **ppEapError)
|
||||||
|
{
|
||||||
|
DWORD dwResult = ERROR_SUCCESS;
|
||||||
|
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
||||||
|
actctx_activator actctx(g_act_ctx);
|
||||||
|
#ifdef _DEBUG
|
||||||
|
//Sleep(10000);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Parameter check
|
||||||
|
if (!ppEapError)
|
||||||
|
dwResult = ERROR_INVALID_PARAMETER;
|
||||||
|
|
||||||
|
assert(!*ppEapError);
|
||||||
|
|
||||||
|
if (!pEapType)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pEapType is NULL.")));
|
||||||
|
else if (pEapType->eapType.type != EAPMETHOD_TYPE)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_NOT_SUPPORTED, wstring_printf(_T(__FUNCTION__) _T(" Input EAP type (%d) does not match the supported EAP type (%d)."), (int)pEapType->eapType.type, (int)EAPMETHOD_TYPE).c_str()));
|
||||||
|
else if (pEapType->dwAuthorId != 67532)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_NOT_SUPPORTED, wstring_printf(_T(__FUNCTION__) _T(" EAP author (%d) does not match the supported author (%d)."), (int)pEapType->dwAuthorId, (int)67532).c_str()));
|
||||||
|
else if (!pConnectionData && dwConnectionDataSize)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pConnectionData is NULL.")));
|
||||||
|
else if (!pUserData && dwUserDataSize)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pUserData is NULL.")));
|
||||||
|
else if (!pdwUserDataOutSize)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pdwUserDataOutSize is NULL.")));
|
||||||
|
else if (!ppUserDataOut)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" ppUserDataOut is NULL.")));
|
||||||
|
else if (!ppwszIdentity)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" ppwszIdentity is NULL.")));
|
||||||
|
else {
|
||||||
|
try {
|
||||||
|
g_peer.invoke_identity_ui(hwndParent, dwFlags, pConnectionData, dwConnectionDataSize, pUserData, dwUserDataSize, ppUserDataOut, pdwUserDataOutSize, ppwszIdentity);
|
||||||
|
} catch (std::exception &err) {
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(err));
|
||||||
|
dwResult = (*ppEapError)->dwWinError;
|
||||||
|
} catch (...) {
|
||||||
|
dwResult = ERROR_INVALID_DATA;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return dwResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Raises a custom interactive user interface dialog for the EAP method on the client.
|
||||||
|
///
|
||||||
|
/// \sa [EapPeerInvokeInteractiveUI function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363616.aspx)
|
||||||
|
///
|
||||||
|
DWORD WINAPI EapPeerInvokeInteractiveUI(
|
||||||
|
_In_ const EAP_METHOD_TYPE *pEapType,
|
||||||
|
_In_ HWND hwndParent,
|
||||||
|
_In_ DWORD dwUIContextDataSize,
|
||||||
|
_In_count_(dwUIContextDataSize) const BYTE *pUIContextData,
|
||||||
|
_Out_ DWORD *pdwDataFromInteractiveUISize,
|
||||||
|
_Out_ BYTE **ppDataFromInteractiveUI,
|
||||||
|
_Out_ EAP_ERROR **ppEapError)
|
||||||
|
{
|
||||||
|
DWORD dwResult = ERROR_SUCCESS;
|
||||||
|
event_fn_auto_ret<DWORD> event_auto(g_peer.get_event_fn_auto(__FUNCTION__, dwResult));
|
||||||
|
actctx_activator actctx(g_act_ctx);
|
||||||
|
#ifdef _DEBUG
|
||||||
|
//Sleep(10000);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Parameter check
|
||||||
|
if (!ppEapError)
|
||||||
|
return dwResult = ERROR_INVALID_PARAMETER;
|
||||||
|
|
||||||
|
assert(!*ppEapError);
|
||||||
|
|
||||||
|
if (!pEapType)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pEapType is NULL.")));
|
||||||
|
else if (pEapType->eapType.type != EAPMETHOD_TYPE)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_NOT_SUPPORTED, wstring_printf(_T(__FUNCTION__) _T(" Input EAP type (%d) does not match the supported EAP type (%d)."), (int)pEapType->eapType.type, (int)EAPMETHOD_TYPE).c_str()));
|
||||||
|
else if (pEapType->dwAuthorId != 67532)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_NOT_SUPPORTED, wstring_printf(_T(__FUNCTION__) _T(" EAP author (%d) does not match the supported author (%d)."), (int)pEapType->dwAuthorId, (int)67532).c_str()));
|
||||||
|
else if (!pUIContextData && dwUIContextDataSize)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pUIContextData is NULL.")));
|
||||||
|
else if (!pdwDataFromInteractiveUISize)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" pdwDataFromInteractiveUISize is NULL.")));
|
||||||
|
else if (!ppDataFromInteractiveUI)
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(dwResult = ERROR_INVALID_PARAMETER, _T(__FUNCTION__) _T(" ppDataFromInteractiveUI is NULL.")));
|
||||||
|
else {
|
||||||
|
try {
|
||||||
|
g_peer.invoke_interactive_ui(hwndParent, pUIContextData, dwUIContextDataSize, ppDataFromInteractiveUI, pdwDataFromInteractiveUISize);
|
||||||
|
} catch (std::exception &err) {
|
||||||
|
g_peer.log_error(*ppEapError = g_peer.make_error(err));
|
||||||
|
dwResult = (*ppEapError)->dwWinError;
|
||||||
|
} catch (...) {
|
||||||
|
dwResult = ERROR_INVALID_DATA;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return dwResult;
|
||||||
|
}
|
@ -1,10 +1,24 @@
|
|||||||
/*
|
/*
|
||||||
SPDX-License-Identifier: GPL-3.0-or-later
|
Copyright 2015-2016 Amebis
|
||||||
Copyright © 2015-2022 Amebis
|
Copyright 2016 GÉANT
|
||||||
Copyright © 2016 GÉANT
|
|
||||||
|
This file is part of GÉANTLink.
|
||||||
|
|
||||||
|
GÉANTLink is free software: you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
GÉANTLink is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with GÉANTLink. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "PCH.h"
|
#include "StdAfx.h"
|
||||||
#if defined(__WXMSW__)
|
#if defined(__WXMSW__)
|
||||||
#pragma comment(lib, "msi.lib")
|
#pragma comment(lib, "msi.lib")
|
||||||
#endif
|
#endif
|
||||||
@ -14,7 +28,6 @@
|
|||||||
// wxEventMonitorApp
|
// wxEventMonitorApp
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#pragma warning(suppress: 28251)
|
|
||||||
wxIMPLEMENT_APP(wxEventMonitorApp);
|
wxIMPLEMENT_APP(wxEventMonitorApp);
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,7 +1,21 @@
|
|||||||
/*
|
/*
|
||||||
SPDX-License-Identifier: GPL-3.0-or-later
|
Copyright 2015-2016 Amebis
|
||||||
Copyright © 2015-2022 Amebis
|
Copyright 2016 GÉANT
|
||||||
Copyright © 2016 GÉANT
|
|
||||||
|
This file is part of GÉANTLink.
|
||||||
|
|
||||||
|
GÉANTLink is free software: you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
GÉANTLink is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with GÉANTLink. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
///
|
///
|
||||||
|
@ -1,10 +1,24 @@
|
|||||||
/*
|
/*
|
||||||
SPDX-License-Identifier: GPL-3.0-or-later
|
Copyright 2015-2018 Amebis
|
||||||
Copyright © 2015-2022 Amebis
|
Copyright 2016 GÉANT
|
||||||
Copyright © 2016 GÉANT
|
|
||||||
|
This file is part of GÉANTLink.
|
||||||
|
|
||||||
|
GÉANTLink is free software: you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
GÉANTLink is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with GÉANTLink. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "PCH.h"
|
#include "StdAfx.h"
|
||||||
|
|
||||||
#pragma comment(lib, "tdh.lib")
|
#pragma comment(lib, "tdh.lib")
|
||||||
#pragma comment(lib, "Ws2_32.lib")
|
#pragma comment(lib, "Ws2_32.lib")
|
||||||
@ -64,8 +78,8 @@ wxEventTraceProcessorThread::wxEventTraceProcessorThread(wxEvtHandler *parent, c
|
|||||||
for (size_t i = 0, i_end = sessions.GetCount(); i < i_end; i++) {
|
for (size_t i = 0, i_end = sessions.GetCount(); i < i_end; i++) {
|
||||||
// Open trace.
|
// Open trace.
|
||||||
tlf.LoggerName = const_cast<LPTSTR>((LPCTSTR)(sessions[i]));
|
tlf.LoggerName = const_cast<LPTSTR>((LPCTSTR)(sessions[i]));
|
||||||
event_trace trace(OpenTrace(&tlf));
|
event_trace trace;
|
||||||
if (!trace) {
|
if (!trace.create(&tlf)) {
|
||||||
wxLogError(_("Error opening event trace (error %u)."), GetLastError());
|
wxLogError(_("Error opening event trace (error %u)."), GetLastError());
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -118,8 +132,11 @@ VOID WINAPI wxEventTraceProcessorThread::EventRecordCallback(_In_ PEVENT_RECORD
|
|||||||
wxASSERT_MSG(pEvent->UserContext, wxT("thread is NULL"));
|
wxASSERT_MSG(pEvent->UserContext, wxT("thread is NULL"));
|
||||||
|
|
||||||
wxEventTraceProcessorThread *_this = ((wxEventTraceProcessorThread*)pEvent->UserContext);
|
wxEventTraceProcessorThread *_this = ((wxEventTraceProcessorThread*)pEvent->UserContext);
|
||||||
if (!_this || _this->TestDestroy())
|
|
||||||
|
if (_this->TestDestroy()) {
|
||||||
|
// Event processing is pending destruction.
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
_this->m_parent->QueueEvent(new wxETWEvent(wxEVT_ETW_EVENT, *pEvent));
|
_this->m_parent->QueueEvent(new wxETWEvent(wxEVT_ETW_EVENT, *pEvent));
|
||||||
}
|
}
|
||||||
@ -151,17 +168,17 @@ wxETWListCtrl::wxETWListCtrl(wxWindow *parent, wxWindowID id, const wxPoint& pos
|
|||||||
m_rec_idx(wxETWEVENT_RECORDS_MAX),
|
m_rec_idx(wxETWEVENT_RECORDS_MAX),
|
||||||
wxListCtrl(parent, id, pos, size, style, validator, name)
|
wxListCtrl(parent, id, pos, size, style, validator, name)
|
||||||
{
|
{
|
||||||
this->AppendColumn(_("Time" ), wxLIST_FORMAT_LEFT, FromDIP(160));
|
this->AppendColumn(_("Time" ), wxLIST_FORMAT_LEFT, 160);
|
||||||
this->AppendColumn(_("PID" ), wxLIST_FORMAT_LEFT, FromDIP( 50));
|
this->AppendColumn(_("PID" ), wxLIST_FORMAT_LEFT, 50);
|
||||||
this->AppendColumn(_("TID" ), wxLIST_FORMAT_LEFT, FromDIP( 50));
|
this->AppendColumn(_("TID" ), wxLIST_FORMAT_LEFT, 50);
|
||||||
this->AppendColumn(_("Source"), wxLIST_FORMAT_LEFT, FromDIP( 80));
|
this->AppendColumn(_("Source"), wxLIST_FORMAT_LEFT, 80);
|
||||||
this->AppendColumn(_("Event" ), wxLIST_FORMAT_LEFT, FromDIP(350));
|
this->AppendColumn(_("Event" ), wxLIST_FORMAT_LEFT, 350);
|
||||||
|
|
||||||
// Maximum expected column widths for pre-formatted row display
|
// Maximum expected column widths for pre-formatted row display
|
||||||
m_col_format_width[0] = 26;
|
m_col_format_width[0] = 26;
|
||||||
m_col_format_width[1] = 5;
|
m_col_format_width[1] = 5;
|
||||||
m_col_format_width[2] = 5;
|
m_col_format_width[2] = 5;
|
||||||
m_col_format_width[3] = std::max<size_t>(std::max<size_t>(_countof("EapHost"), _countof("Schannel")), _countof(PRODUCT_NAME_STR)) - 1;
|
m_col_format_width[3] = std::max<int>(std::max<int>(_countof("EapHost"), _countof("Schannel")), _countof(PRODUCT_NAME_STR)) - 1;
|
||||||
m_col_format_width[4] = 0;
|
m_col_format_width[4] = 0;
|
||||||
|
|
||||||
// Prepare all possible item attributes.
|
// Prepare all possible item attributes.
|
||||||
@ -202,11 +219,7 @@ wxETWListCtrl::wxETWListCtrl(wxWindow *parent, wxWindowID id, const wxPoint& pos
|
|||||||
properties->Wnode.BufferSize = ulSize;
|
properties->Wnode.BufferSize = ulSize;
|
||||||
properties->Wnode.Flags = WNODE_FLAG_TRACED_GUID;
|
properties->Wnode.Flags = WNODE_FLAG_TRACED_GUID;
|
||||||
properties->Wnode.ClientContext = 1; //QPC clock resolution
|
properties->Wnode.ClientContext = 1; //QPC clock resolution
|
||||||
HRESULT hr = CoCreateGuid(&(properties->Wnode.Guid));
|
CoCreateGuid(&(properties->Wnode.Guid));
|
||||||
if (FAILED(hr)) {
|
|
||||||
wxLogError(winstd::tstring_printf(wxT("error 0x%08x generating GUID"), hr).c_str());
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
properties->LogFileMode = /*EVENT_TRACE_FILE_MODE_SEQUENTIAL |*/ EVENT_TRACE_REAL_TIME_MODE;
|
properties->LogFileMode = /*EVENT_TRACE_FILE_MODE_SEQUENTIAL |*/ EVENT_TRACE_REAL_TIME_MODE;
|
||||||
properties->MaximumFileSize = 1; // 1 MB
|
properties->MaximumFileSize = 1; // 1 MB
|
||||||
properties->LoggerNameOffset = sizeof(EVENT_TRACE_PROPERTIES);
|
properties->LoggerNameOffset = sizeof(EVENT_TRACE_PROPERTIES);
|
||||||
@ -594,34 +607,33 @@ wxString wxETWListCtrl::OnGetItemText(const winstd::event_rec &rec, long column)
|
|||||||
// Get event meta-info.
|
// Get event meta-info.
|
||||||
unique_ptr<TRACE_EVENT_INFO> info;
|
unique_ptr<TRACE_EVENT_INFO> info;
|
||||||
ULONG ulResult;
|
ULONG ulResult;
|
||||||
if ((ulResult = TdhGetEventInformation((PEVENT_RECORD)&rec, 0, NULL, info)) != ERROR_SUCCESS)
|
if ((ulResult = TdhGetEventInformation((PEVENT_RECORD)&rec, 0, NULL, info)) == ERROR_SUCCESS) {
|
||||||
return tstring_printf(_T("(Error getting event information (error %u))"), ulResult).c_str();
|
if (info->DecodingSource != DecodingSourceWPP) {
|
||||||
|
if (rec.EventHeader.Flags & EVENT_HEADER_FLAG_STRING_ONLY) {
|
||||||
|
// This is a string-only event. Print it.
|
||||||
|
return reinterpret_cast<LPCWSTR>(rec.UserData);
|
||||||
|
} else {
|
||||||
|
// This is not a string-only event. Prepare parameters.
|
||||||
|
|
||||||
if (info->DecodingSource != DecodingSourceWPP) {
|
BYTE nPtrSize = (rec.EventHeader.Flags & EVENT_HEADER_FLAG_32_BIT_HEADER) ? 4 : 8;
|
||||||
if (rec.EventHeader.Flags & EVENT_HEADER_FLAG_STRING_ONLY) {
|
vector<tstring> props;
|
||||||
// This is a string-only event. Print it.
|
vector<DWORD_PTR> props_msg;
|
||||||
return reinterpret_cast<LPCWSTR>(rec.UserData);
|
props.reserve(info->TopLevelPropertyCount);
|
||||||
} else {
|
props_msg.reserve(info->TopLevelPropertyCount);
|
||||||
// This is not a string-only event. Prepare parameters.
|
for (ULONG i = 0; i < info->TopLevelPropertyCount; i++) {
|
||||||
|
props.push_back(std::move(PropertyToString((PEVENT_RECORD)&rec, info.get(), i, NULL, 0, nPtrSize)));
|
||||||
|
props_msg.push_back((DWORD_PTR)props[i].c_str());
|
||||||
|
}
|
||||||
|
|
||||||
BYTE nPtrSize = (rec.EventHeader.Flags & EVENT_HEADER_FLAG_32_BIT_HEADER) ? 4 : 8;
|
if (info->EventMessageOffset) {
|
||||||
vector<tstring> props;
|
// Format the message.
|
||||||
vector<DWORD_PTR> props_msg;
|
return wstring_msg(0, reinterpret_cast<LPCTSTR>(reinterpret_cast<LPCBYTE>(info.get()) + info->EventMessageOffset), props_msg.data()).c_str();
|
||||||
props.reserve(info->TopLevelPropertyCount);
|
}
|
||||||
props_msg.reserve(info->TopLevelPropertyCount);
|
|
||||||
for (ULONG i = 0; i < info->TopLevelPropertyCount; i++) {
|
|
||||||
props.push_back(std::move(PropertyToString((PEVENT_RECORD)&rec, info.get(), i, NULL, 0, nPtrSize)));
|
|
||||||
props_msg.push_back((DWORD_PTR)props[i].c_str());
|
|
||||||
}
|
|
||||||
|
|
||||||
if (info->EventMessageOffset) {
|
|
||||||
// Format the message.
|
|
||||||
return wstring_msg(0, reinterpret_cast<LPCTSTR>(reinterpret_cast<LPCBYTE>(info.get()) + info->EventMessageOffset), props_msg.data()).c_str();
|
|
||||||
}
|
}
|
||||||
|
} else if (info->EventMessageOffset) {
|
||||||
|
// This is a WPP event.
|
||||||
|
return reinterpret_cast<LPCWSTR>(reinterpret_cast<LPCBYTE>(info.get()) + info->EventMessageOffset);
|
||||||
}
|
}
|
||||||
} else if (info->EventMessageOffset) {
|
|
||||||
// This is a WPP event.
|
|
||||||
return reinterpret_cast<LPCWSTR>(reinterpret_cast<LPCBYTE>(info.get()) + info->EventMessageOffset);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -764,13 +776,13 @@ static tstring MapToString(_In_ const EVENT_MAP_INFO *pMapInfo, _In_ ULONG ulDat
|
|||||||
((pMapInfo->Flag & EVENTMAP_INFO_FLAG_WBEM_VALUEMAP ) && (pMapInfo->Flag & ~EVENTMAP_INFO_FLAG_WBEM_VALUEMAP) != EVENTMAP_INFO_FLAG_WBEM_FLAG))
|
((pMapInfo->Flag & EVENTMAP_INFO_FLAG_WBEM_VALUEMAP ) && (pMapInfo->Flag & ~EVENTMAP_INFO_FLAG_WBEM_VALUEMAP) != EVENTMAP_INFO_FLAG_WBEM_FLAG))
|
||||||
{
|
{
|
||||||
if ((pMapInfo->Flag & EVENTMAP_INFO_FLAG_WBEM_NO_MAP) == EVENTMAP_INFO_FLAG_WBEM_NO_MAP)
|
if ((pMapInfo->Flag & EVENTMAP_INFO_FLAG_WBEM_NO_MAP) == EVENTMAP_INFO_FLAG_WBEM_NO_MAP)
|
||||||
return tstring_printf(_T("%ls"), (LPCWSTR)((PBYTE)pMapInfo + pMapInfo->MapEntryArray[ulData].OutputOffset));
|
return tstring_printf(_T("%ls"), (PBYTE)pMapInfo + pMapInfo->MapEntryArray[ulData].OutputOffset);
|
||||||
else {
|
else {
|
||||||
for (ULONG i = 0; ; i++) {
|
for (ULONG i = 0; ; i++) {
|
||||||
if (i >= pMapInfo->EntryCount)
|
if (i >= pMapInfo->EntryCount)
|
||||||
return tstring_printf(_T("%lu"), ulData);
|
return tstring_printf(_T("%lu"), ulData);
|
||||||
else if (pMapInfo->MapEntryArray[i].Value == ulData)
|
else if (pMapInfo->MapEntryArray[i].Value == ulData)
|
||||||
return tstring_printf(_T("%ls"), (LPCWSTR)((PBYTE)pMapInfo + pMapInfo->MapEntryArray[i].OutputOffset));
|
return tstring_printf(_T("%ls"), (PBYTE)pMapInfo + pMapInfo->MapEntryArray[i].OutputOffset);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (
|
} else if (
|
||||||
@ -805,7 +817,7 @@ static tstring DataToString(_In_ USHORT InType, _In_ USHORT OutType, _In_count_(
|
|||||||
case TDH_INTYPE_UNICODESTRING:
|
case TDH_INTYPE_UNICODESTRING:
|
||||||
case TDH_INTYPE_NONNULLTERMINATEDSTRING:
|
case TDH_INTYPE_NONNULLTERMINATEDSTRING:
|
||||||
case TDH_INTYPE_UNICODECHAR:
|
case TDH_INTYPE_UNICODECHAR:
|
||||||
return tstring_printf(_T("%.*ls"), (unsigned int)(nDataSize/sizeof(WCHAR)), (LPCWSTR)pData);
|
return tstring_printf(_T("%.*ls"), nDataSize/sizeof(WCHAR), pData);
|
||||||
|
|
||||||
case TDH_INTYPE_ANSISTRING:
|
case TDH_INTYPE_ANSISTRING:
|
||||||
case TDH_INTYPE_NONNULLTERMINATEDANSISTRING:
|
case TDH_INTYPE_NONNULLTERMINATEDANSISTRING:
|
||||||
@ -906,7 +918,6 @@ static tstring DataToString(_In_ USHORT InType, _In_ USHORT OutType, _In_count_(
|
|||||||
case TDH_INTYPE_BINARY:
|
case TDH_INTYPE_BINARY:
|
||||||
switch (OutType) {
|
switch (OutType) {
|
||||||
case TDH_OUTTYPE_IPV6: {
|
case TDH_OUTTYPE_IPV6: {
|
||||||
#pragma warning(suppress: 6387) // ntdll.dll *must* exist.
|
|
||||||
auto RtlIpv6AddressToString = (LPTSTR(NTAPI*)(const IN6_ADDR*, LPTSTR))GetProcAddress(GetModuleHandle(_T("ntdll.dll")),
|
auto RtlIpv6AddressToString = (LPTSTR(NTAPI*)(const IN6_ADDR*, LPTSTR))GetProcAddress(GetModuleHandle(_T("ntdll.dll")),
|
||||||
#ifdef _UNICODE
|
#ifdef _UNICODE
|
||||||
"RtlIpv6AddressToStringW"
|
"RtlIpv6AddressToStringW"
|
||||||
@ -934,12 +945,8 @@ static tstring DataToString(_In_ USHORT InType, _In_ USHORT OutType, _In_count_(
|
|||||||
case TDH_INTYPE_GUID: {
|
case TDH_INTYPE_GUID: {
|
||||||
assert(nDataSize >= sizeof(GUID));
|
assert(nDataSize >= sizeof(GUID));
|
||||||
WCHAR szGuid[39];
|
WCHAR szGuid[39];
|
||||||
if (StringFromGUID2(*(GUID*)pData, szGuid, _countof(szGuid)))
|
StringFromGUID2(*(GUID*)pData, szGuid, _countof(szGuid));
|
||||||
return tstring_printf(_T("%ls"), szGuid);
|
return tstring_printf(_T("%ls"), szGuid);
|
||||||
else {
|
|
||||||
assert(0);
|
|
||||||
return _T("(GUID)");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
case TDH_INTYPE_POINTER:
|
case TDH_INTYPE_POINTER:
|
||||||
@ -988,7 +995,7 @@ static tstring DataToString(_In_ USHORT InType, _In_ USHORT OutType, _In_count_(
|
|||||||
// 32-bit computer and 16 bytes on a 64-bit computer.
|
// 32-bit computer and 16 bytes on a 64-bit computer.
|
||||||
// Doubling the pointer size handles both cases.
|
// Doubling the pointer size handles both cases.
|
||||||
assert(nDataSize >= (SIZE_T)nPtrSize * 2);
|
assert(nDataSize >= (SIZE_T)nPtrSize * 2);
|
||||||
return (PULONG)pData > 0 ? DataToString(TDH_INTYPE_SID, OutType, pData + (SIZE_T)nPtrSize * 2, nDataSize - (SIZE_T)nPtrSize * 2, pMapInfo, nPtrSize) : _T("(WBEM SID)");
|
return (PULONG)pData > 0 ? DataToString(TDH_INTYPE_SID, OutType, pData + nPtrSize * 2, nDataSize - nPtrSize * 2, pMapInfo, nPtrSize) : _T("(WBEM SID)");
|
||||||
|
|
||||||
case TDH_INTYPE_SID: {
|
case TDH_INTYPE_SID: {
|
||||||
assert(nDataSize >= sizeof(SID));
|
assert(nDataSize >= sizeof(SID));
|
||||||
@ -1020,7 +1027,7 @@ static ULONG GetArraySize(PEVENT_RECORD pEvent, PTRACE_EVENT_INFO pInfo, ULONG i
|
|||||||
ULONG ulResult;
|
ULONG ulResult;
|
||||||
|
|
||||||
// Get array count property.
|
// Get array count property.
|
||||||
PROPERTY_DATA_DESCRIPTOR data_desc = { (ULONGLONG)pInfo + pInfo->EventPropertyInfoArray[pInfo->EventPropertyInfoArray[i].countPropertyIndex].NameOffset, ULONG_MAX };
|
PROPERTY_DATA_DESCRIPTOR data_desc = { (ULONGLONG)(reinterpret_cast<LPBYTE>(pInfo) + pInfo->EventPropertyInfoArray[pInfo->EventPropertyInfoArray[i].countPropertyIndex].NameOffset), ULONG_MAX };
|
||||||
vector<unsigned char> count;
|
vector<unsigned char> count;
|
||||||
if ((ulResult = TdhGetProperty(pEvent, 0, NULL, 1, &data_desc, count)) != ERROR_SUCCESS)
|
if ((ulResult = TdhGetProperty(pEvent, 0, NULL, 1, &data_desc, count)) != ERROR_SUCCESS)
|
||||||
return ulResult;
|
return ulResult;
|
||||||
@ -1046,7 +1053,7 @@ static tstring PropertyToString(PEVENT_RECORD pEvent, PTRACE_EVENT_INFO pInfo, U
|
|||||||
// Get the size of the array if the property is an array.
|
// Get the size of the array if the property is an array.
|
||||||
ULONG ulArraySize = 0;
|
ULONG ulArraySize = 0;
|
||||||
if ((ulResult = GetArraySize(pEvent, pInfo, ulPropIndex, &ulArraySize)) != ERROR_SUCCESS)
|
if ((ulResult = GetArraySize(pEvent, pInfo, ulPropIndex, &ulArraySize)) != ERROR_SUCCESS)
|
||||||
return tstring_printf(_T("(Error getting array size (error %u))"), ulResult);
|
return tstring_printf(_T("(Error getting array size (error %u))"), ulResult);;
|
||||||
|
|
||||||
tstring out;
|
tstring out;
|
||||||
bool out_nonfirst = false;
|
bool out_nonfirst = false;
|
||||||
@ -1060,7 +1067,7 @@ static tstring PropertyToString(PEVENT_RECORD pEvent, PTRACE_EVENT_INFO pInfo, U
|
|||||||
if (out_nonfirst) out += _T(", "); else out_nonfirst = true;
|
if (out_nonfirst) out += _T(", "); else out_nonfirst = true;
|
||||||
out += _T('(');
|
out += _T('(');
|
||||||
for (USHORT j = pInfo->EventPropertyInfoArray[ulPropIndex].structType.StructStartIndex, usLastMember = pInfo->EventPropertyInfoArray[ulPropIndex].structType.StructStartIndex + pInfo->EventPropertyInfoArray[ulPropIndex].structType.NumOfStructMembers; j < usLastMember; j++) {
|
for (USHORT j = pInfo->EventPropertyInfoArray[ulPropIndex].structType.StructStartIndex, usLastMember = pInfo->EventPropertyInfoArray[ulPropIndex].structType.StructStartIndex + pInfo->EventPropertyInfoArray[ulPropIndex].structType.NumOfStructMembers; j < usLastMember; j++) {
|
||||||
out += tstring_printf(_T("%ls: "), (LPCWSTR)(reinterpret_cast<LPBYTE>(pInfo) + pInfo->EventPropertyInfoArray[j].NameOffset));
|
out += tstring_printf(_T("%ls: "), reinterpret_cast<LPBYTE>(pInfo) + pInfo->EventPropertyInfoArray[j].NameOffset);
|
||||||
out += PropertyToString(pEvent, pInfo, j, reinterpret_cast<LPWSTR>(reinterpret_cast<LPBYTE>(pInfo) + pInfo->EventPropertyInfoArray[ulPropIndex].NameOffset), k, nPtrSize);
|
out += PropertyToString(pEvent, pInfo, j, reinterpret_cast<LPWSTR>(reinterpret_cast<LPBYTE>(pInfo) + pInfo->EventPropertyInfoArray[ulPropIndex].NameOffset), k, nPtrSize);
|
||||||
}
|
}
|
||||||
out += _T(')');
|
out += _T(')');
|
||||||
@ -1079,12 +1086,12 @@ static tstring PropertyToString(PEVENT_RECORD pEvent, PTRACE_EVENT_INFO pInfo, U
|
|||||||
// The first descriptor in the array identifies the name of the structure and the second
|
// The first descriptor in the array identifies the name of the structure and the second
|
||||||
// descriptor defines the member of the structure whose data you want to retrieve.
|
// descriptor defines the member of the structure whose data you want to retrieve.
|
||||||
PROPERTY_DATA_DESCRIPTOR data_desc[2] = {
|
PROPERTY_DATA_DESCRIPTOR data_desc[2] = {
|
||||||
{ (ULONGLONG)pStructureName , ulStructIndex },
|
{ (ULONGLONG)pStructureName , ulStructIndex },
|
||||||
{ (ULONGLONG)pInfo + pInfo->EventPropertyInfoArray[ulPropIndex].NameOffset, k }
|
{ (ULONGLONG)(reinterpret_cast<LPBYTE>(pInfo) + pInfo->EventPropertyInfoArray[ulPropIndex].NameOffset), k }
|
||||||
};
|
};
|
||||||
ulResult = TdhGetProperty(pEvent, 0, NULL, _countof(data_desc), data_desc, data);
|
ulResult = TdhGetProperty(pEvent, 0, NULL, _countof(data_desc), data_desc, data);
|
||||||
} else {
|
} else {
|
||||||
PROPERTY_DATA_DESCRIPTOR data_desc = { (ULONGLONG)pInfo + pInfo->EventPropertyInfoArray[ulPropIndex].NameOffset, k };
|
PROPERTY_DATA_DESCRIPTOR data_desc = { (ULONGLONG)(reinterpret_cast<LPBYTE>(pInfo) + pInfo->EventPropertyInfoArray[ulPropIndex].NameOffset), k };
|
||||||
ulResult = TdhGetProperty(pEvent, 0, NULL, 1, &data_desc, data);
|
ulResult = TdhGetProperty(pEvent, 0, NULL, 1, &data_desc, data);
|
||||||
}
|
}
|
||||||
if (ulResult == ERROR_EVT_INVALID_EVENT_DATA) {
|
if (ulResult == ERROR_EVT_INVALID_EVENT_DATA) {
|
||||||
|
@ -1,7 +1,21 @@
|
|||||||
/*
|
/*
|
||||||
SPDX-License-Identifier: GPL-3.0-or-later
|
Copyright 2015-2016 Amebis
|
||||||
Copyright © 2015-2022 Amebis
|
Copyright 2016 GÉANT
|
||||||
Copyright © 2016 GÉANT
|
|
||||||
|
This file is part of GÉANTLink.
|
||||||
|
|
||||||
|
GÉANTLink is free software: you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
GÉANTLink is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with GÉANTLink. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <wx/event.h>
|
#include <wx/event.h>
|
||||||
@ -31,7 +45,6 @@ class wxPersistentETWListCtrl;
|
|||||||
#include <wx/persist/window.h>
|
#include <wx/persist/window.h>
|
||||||
#include <wx/thread.h>
|
#include <wx/thread.h>
|
||||||
|
|
||||||
#include <stdex/vector_queue.hpp>
|
|
||||||
#include <WinStd/ETW.h>
|
#include <WinStd/ETW.h>
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
@ -137,7 +150,7 @@ protected:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
/// \cond internal
|
/// \cond internal
|
||||||
static VOID WINAPI EventRecordCallback(_In_ PEVENT_RECORD pEvent);
|
static VOID WINAPI EventRecordCallback(PEVENT_RECORD pEvent);
|
||||||
/// \endcond
|
/// \endcond
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
@ -155,7 +168,7 @@ protected:
|
|||||||
///
|
///
|
||||||
/// Functor for GUID comparison
|
/// Functor for GUID comparison
|
||||||
///
|
///
|
||||||
struct less_guid
|
struct less_guid : public std::binary_function<GUID, GUID, bool>
|
||||||
{
|
{
|
||||||
///
|
///
|
||||||
/// Compares two GUIDs
|
/// Compares two GUIDs
|
||||||
@ -308,8 +321,8 @@ protected:
|
|||||||
guidset m_sources; ///< Set of enabled sources
|
guidset m_sources; ///< Set of enabled sources
|
||||||
|
|
||||||
wxListItemAttr m_item_attr[2][4]; ///< Current item attributes
|
wxListItemAttr m_item_attr[2][4]; ///< Current item attributes
|
||||||
stdex::vector_queue<winstd::event_rec> m_rec_db; ///< Event record database
|
winstd::vector_queue<winstd::event_rec> m_rec_db; ///< Event record database
|
||||||
stdex::vector_queue<size_t> m_rec_idx; ///< Event record database indices of shown records
|
winstd::vector_queue<size_t> m_rec_idx; ///< Event record database indices of shown records
|
||||||
|
|
||||||
size_t m_col_format_width[5]; ///< Column widths for pre-formatted row display (0 = unlimited)
|
size_t m_col_format_width[5]; ///< Column widths for pre-formatted row display (0 = unlimited)
|
||||||
};
|
};
|
||||||
|
17
EventMonitor/EventMonitor.props
Normal file
17
EventMonitor/EventMonitor.props
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ImportGroup Label="PropertySheets" />
|
||||||
|
<PropertyGroup Label="UserMacros" />
|
||||||
|
<PropertyGroup>
|
||||||
|
<OutDir>..\output\$(Platform).$(Configuration)\</OutDir>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemDefinitionGroup>
|
||||||
|
<ClCompile>
|
||||||
|
<AdditionalIncludeDirectories>..\lib\Events\build\temp\Events.$(Platform).$(Configuration).$(PlatformToolset);..\lib\WinStd\include;..\lib\wxExtend\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemGroup />
|
||||||
|
</Project>
|
Binary file not shown.
@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|ARM64">
|
<ProjectConfiguration Include="Debug|ARM64">
|
||||||
@ -28,42 +28,104 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
<ProjectGuid>{E0D0725B-B2FC-4225-9481-CA9B1B6306F2}</ProjectGuid>
|
<ProjectGuid>{E0D0725B-B2FC-4225-9481-CA9B1B6306F2}</ProjectGuid>
|
||||||
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>EventMonitor</RootNamespace>
|
<RootNamespace>EventMonitor</RootNamespace>
|
||||||
|
<WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Label="Configuration" Condition="'$(Configuration)'=='Debug'">
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Label="Configuration" Condition="'$(Configuration)'=='Release'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
|
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Label="Configuration" Condition="'$(Platform)'=='ARM64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
|
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings" />
|
<ImportGroup Label="ExtensionSettings">
|
||||||
<ImportGroup Label="PropertySheets">
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
<Import Project="..\include\$(Platform).props" />
|
<Import Project="..\include\$(Platform).props" />
|
||||||
<Import Project="..\include\$(Configuration).props" />
|
<Import Project="..\include\$(Configuration).props" />
|
||||||
|
<Import Project="EventMonitor.props" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
<Import Project="..\include\$(Platform).props" />
|
||||||
|
<Import Project="..\include\$(Configuration).props" />
|
||||||
|
<Import Project="EventMonitor.props" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="PropertySheets">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
<Import Project="..\include\$(Platform).props" />
|
||||||
|
<Import Project="..\include\$(Configuration).props" />
|
||||||
|
<Import Project="EventMonitor.props" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
<Import Project="..\include\$(Platform).props" />
|
||||||
|
<Import Project="..\include\$(Configuration).props" />
|
||||||
|
<Import Project="EventMonitor.props" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
<Import Project="..\include\$(Platform).props" />
|
||||||
|
<Import Project="..\include\$(Configuration).props" />
|
||||||
|
<Import Project="EventMonitor.props" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="PropertySheets">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
<Import Project="..\include\$(Platform).props" />
|
||||||
|
<Import Project="..\include\$(Configuration).props" />
|
||||||
|
<Import Project="EventMonitor.props" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<PropertyGroup Label="UserMacros" />
|
<PropertyGroup Label="UserMacros" />
|
||||||
<PropertyGroup>
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||||
<OutDir>..\output\$(Platform).$(Configuration)\</OutDir>
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
|
||||||
</PropertyGroup>
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" />
|
||||||
<ItemDefinitionGroup>
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||||
<ClCompile>
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
|
||||||
<AdditionalIncludeDirectories>..\lib\Events\build\temp\Events.$(Platform).$(Configuration).$(PlatformToolset);..\lib\WinStd\include;..\lib\stdex\include;..\lib\wxExtend\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" />
|
||||||
</ClCompile>
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||||
<Link>
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
|
||||||
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" />
|
||||||
</Link>
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||||
</ItemDefinitionGroup>
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" />
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ResourceCompile Include="EventMonitor.rc" />
|
<ResourceCompile Include="EventMonitor.rc" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
@ -72,7 +134,7 @@
|
|||||||
<ClInclude Include="ETWLog.h" />
|
<ClInclude Include="ETWLog.h" />
|
||||||
<ClInclude Include="Frame.h" />
|
<ClInclude Include="Frame.h" />
|
||||||
<ClInclude Include="LogPanel.h" />
|
<ClInclude Include="LogPanel.h" />
|
||||||
<ClInclude Include="PCH.h" />
|
<ClInclude Include="StdAfx.h" />
|
||||||
<ClInclude Include="res\wxEventMonitor_UI.h" />
|
<ClInclude Include="res\wxEventMonitor_UI.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@ -80,8 +142,13 @@
|
|||||||
<ClCompile Include="ETWLog.cpp" />
|
<ClCompile Include="ETWLog.cpp" />
|
||||||
<ClCompile Include="Frame.cpp" />
|
<ClCompile Include="Frame.cpp" />
|
||||||
<ClCompile Include="LogPanel.cpp" />
|
<ClCompile Include="LogPanel.cpp" />
|
||||||
<ClCompile Include="PCH.cpp">
|
<ClCompile Include="StdAfx.cpp">
|
||||||
<PrecompiledHeader>Create</PrecompiledHeader>
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
|
||||||
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
|
||||||
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
|
||||||
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">Create</PrecompiledHeader>
|
||||||
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
|
||||||
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">Create</PrecompiledHeader>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="res\wxEventMonitor_UI.cpp" />
|
<ClCompile Include="res\wxEventMonitor_UI.cpp" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
@ -89,7 +156,10 @@
|
|||||||
<ProjectReference Include="..\lib\Events\build\Events.vcxproj">
|
<ProjectReference Include="..\lib\Events\build\Events.vcxproj">
|
||||||
<Project>{d63f24bd-92a0-4d6b-8b69-ed947e4d2b1b}</Project>
|
<Project>{d63f24bd-92a0-4d6b-8b69-ed947e4d2b1b}</Project>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
<ProjectReference Include="..\lib\wxExtend\build\wxExtendLib.vcxproj">
|
<ProjectReference Include="..\lib\WinStd\build\WinStd-15.0.vcxproj">
|
||||||
|
<Project>{47399d91-7eb9-41de-b521-514ba5db0c43}</Project>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\lib\wxExtend\build\wxExtendLib-15.0.vcxproj">
|
||||||
<Project>{d3e29951-d9f5-486d-a167-20ae8e90b1fa}</Project>
|
<Project>{d3e29951-d9f5-486d-a167-20ae8e90b1fa}</Project>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
@ -106,7 +176,6 @@
|
|||||||
<POCompile Include="locale\de_DE.po" />
|
<POCompile Include="locale\de_DE.po" />
|
||||||
<POCompile Include="locale\el_GR.po" />
|
<POCompile Include="locale\el_GR.po" />
|
||||||
<POCompile Include="locale\es_ES.po" />
|
<POCompile Include="locale\es_ES.po" />
|
||||||
<POCompile Include="locale\et_EE.po" />
|
|
||||||
<POCompile Include="locale\eu_ES.po" />
|
<POCompile Include="locale\eu_ES.po" />
|
||||||
<POCompile Include="locale\fi_FI.po" />
|
<POCompile Include="locale\fi_FI.po" />
|
||||||
<POCompile Include="locale\fr_CA.po" />
|
<POCompile Include="locale\fr_CA.po" />
|
||||||
@ -124,7 +193,6 @@
|
|||||||
<POCompile Include="locale\pt_PT.po" />
|
<POCompile Include="locale\pt_PT.po" />
|
||||||
<POCompile Include="locale\ru_RU.po" />
|
<POCompile Include="locale\ru_RU.po" />
|
||||||
<POCompile Include="locale\sk_SK.po" />
|
<POCompile Include="locale\sk_SK.po" />
|
||||||
<POCompile Include="locale\ro_RO.po" />
|
|
||||||
<POCompile Include="locale\sl_SI.po" />
|
<POCompile Include="locale\sl_SI.po" />
|
||||||
<POCompile Include="locale\sr_RS.po" />
|
<POCompile Include="locale\sr_RS.po" />
|
||||||
<POCompile Include="locale\sv_SE.po" />
|
<POCompile Include="locale\sv_SE.po" />
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Filter Include="Source Files">
|
<Filter Include="Source Files">
|
||||||
@ -24,7 +24,7 @@
|
|||||||
</ResourceCompile>
|
</ResourceCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="PCH.h">
|
<ClInclude Include="StdAfx.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="App.h">
|
<ClInclude Include="App.h">
|
||||||
@ -44,7 +44,7 @@
|
|||||||
</ClInclude>
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="PCH.cpp">
|
<ClCompile Include="StdAfx.cpp">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="App.cpp">
|
<ClCompile Include="App.cpp">
|
||||||
@ -75,9 +75,6 @@
|
|||||||
</None>
|
</None>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<POCompile Include="locale\ro_RO.po">
|
|
||||||
<Filter>Resource Files\Localization</Filter>
|
|
||||||
</POCompile>
|
|
||||||
<POCompile Include="locale\sl_SI.po">
|
<POCompile Include="locale\sl_SI.po">
|
||||||
<Filter>Resource Files\Localization</Filter>
|
<Filter>Resource Files\Localization</Filter>
|
||||||
</POCompile>
|
</POCompile>
|
||||||
@ -165,8 +162,5 @@
|
|||||||
<POCompile Include="locale\ko_KR.po">
|
<POCompile Include="locale\ko_KR.po">
|
||||||
<Filter>Resource Files\Localization</Filter>
|
<Filter>Resource Files\Localization</Filter>
|
||||||
</POCompile>
|
</POCompile>
|
||||||
<POCompile Include="locale\et_EE.po">
|
|
||||||
<Filter>Resource Files\Localization</Filter>
|
|
||||||
</POCompile>
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
@ -1,10 +1,24 @@
|
|||||||
/*
|
/*
|
||||||
SPDX-License-Identifier: GPL-3.0-or-later
|
Copyright 2015-2016 Amebis
|
||||||
Copyright © 2015-2022 Amebis
|
Copyright 2016 GÉANT
|
||||||
Copyright © 2016 GÉANT
|
|
||||||
|
This file is part of GÉANTLink.
|
||||||
|
|
||||||
|
GÉANTLink is free software: you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
GÉANTLink is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with GÉANTLink. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "PCH.h"
|
#include "StdAfx.h"
|
||||||
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
@ -12,10 +26,10 @@
|
|||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
wxEventMonitorFrame::wxEventMonitorFrame(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, long style, const wxString& name) :
|
wxEventMonitorFrame::wxEventMonitorFrame(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style, const wxString& name) :
|
||||||
wxFrame(parent, id, title, pos, parent->FromDIP(wxSize(600,400)), style, name)
|
wxFrame(parent, id, title, pos, size, style, name)
|
||||||
{
|
{
|
||||||
this->SetSizeHints(FromDIP(wxSize(150,150)), wxDefaultSize);
|
this->SetSizeHints(wxSize(150,150), wxDefaultSize);
|
||||||
m_mgr.SetManagedWindow(this);
|
m_mgr.SetManagedWindow(this);
|
||||||
m_mgr.SetFlags(wxAUI_MGR_DEFAULT);
|
m_mgr.SetFlags(wxAUI_MGR_DEFAULT);
|
||||||
|
|
||||||
@ -33,9 +47,14 @@ wxEventMonitorFrame::wxEventMonitorFrame(wxWindow* parent, wxWindowID id, const
|
|||||||
wxString prod_status_bar;
|
wxString prod_status_bar;
|
||||||
prod_status_bar.Printf(_("Toggles display of %s records"), wxT(PRODUCT_NAME_STR));
|
prod_status_bar.Printf(_("Toggles display of %s records"), wxT(PRODUCT_NAME_STR));
|
||||||
|
|
||||||
winstd::library lib_comres(LoadLibraryEx(_T("comres.dll"), NULL, LOAD_LIBRARY_AS_DATAFILE | LOAD_LIBRARY_AS_IMAGE_RESOURCE));
|
winstd::library lib_comres;
|
||||||
winstd::library lib_ieframe(LoadLibraryEx(_T("ieframe.dll"), NULL, LOAD_LIBRARY_AS_DATAFILE | LOAD_LIBRARY_AS_IMAGE_RESOURCE));
|
lib_comres.load(_T("comres.dll"), NULL, LOAD_LIBRARY_AS_DATAFILE | LOAD_LIBRARY_AS_IMAGE_RESOURCE);
|
||||||
winstd::library lib_shell32(LoadLibraryEx(_T("shell32.dll"), NULL, LOAD_LIBRARY_AS_DATAFILE | LOAD_LIBRARY_AS_IMAGE_RESOURCE));
|
|
||||||
|
winstd::library lib_ieframe;
|
||||||
|
lib_ieframe.load(_T("ieframe.dll"), NULL, LOAD_LIBRARY_AS_DATAFILE | LOAD_LIBRARY_AS_IMAGE_RESOURCE);
|
||||||
|
|
||||||
|
winstd::library lib_shell32;
|
||||||
|
lib_shell32.load(_T("shell32.dll"), NULL, LOAD_LIBRARY_AS_DATAFILE | LOAD_LIBRARY_AS_IMAGE_RESOURCE);
|
||||||
|
|
||||||
wxSize size_menu(GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON));
|
wxSize size_menu(GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON));
|
||||||
wxSize size_tool(size_menu);
|
wxSize size_tool(size_menu);
|
||||||
|
@ -1,13 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
SPDX-License-Identifier: GPL-3.0-or-later
|
Copyright 2015-2016 Amebis
|
||||||
Copyright © 2015-2022 Amebis
|
Copyright 2016 GÉANT
|
||||||
Copyright © 2016 GÉANT
|
|
||||||
|
This file is part of GÉANTLink.
|
||||||
|
|
||||||
|
GÉANTLink is free software: you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
GÉANTLink is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with GÉANTLink. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class wxEventMonitorFrame;
|
class wxEventMonitorFrame;
|
||||||
class wxPersistentEventMonitorFrame;
|
class wxPersistentEventMonitorFrame;
|
||||||
|
|
||||||
#pragma once
|
#pragma once;
|
||||||
|
|
||||||
#include "LogPanel.h"
|
#include "LogPanel.h"
|
||||||
|
|
||||||
@ -20,9 +34,6 @@ class wxPersistentEventMonitorFrame;
|
|||||||
|
|
||||||
#include <WinStd/Win.h>
|
#include <WinStd/Win.h>
|
||||||
|
|
||||||
#pragma warning(push)
|
|
||||||
#pragma warning(disable: 26444)
|
|
||||||
|
|
||||||
|
|
||||||
/// \addtogroup EventMonitor
|
/// \addtogroup EventMonitor
|
||||||
/// @{
|
/// @{
|
||||||
@ -61,7 +72,7 @@ public:
|
|||||||
/// \param[in] style The window style. See `wxFrame` class description.
|
/// \param[in] style The window style. See `wxFrame` class description.
|
||||||
/// \param[in] name The name of the window. This parameter is used to associate a name with the item, allowing the application user to set Motif resource values for individual windows.
|
/// \param[in] name The name of the window. This parameter is used to associate a name with the item, allowing the application user to set Motif resource values for individual windows.
|
||||||
///
|
///
|
||||||
wxEventMonitorFrame(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Event Monitor"), const wxPoint& pos = wxDefaultPosition, long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL, const wxString& name = wxT("EventMonitor"));
|
wxEventMonitorFrame(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Event Monitor"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(600,400), long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL, const wxString& name = wxT("EventMonitor"));
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Destructor
|
/// Destructor
|
||||||
@ -162,5 +173,3 @@ inline wxPersistentObject *wxCreatePersistentObject(wxEventMonitorFrame *wnd)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// @}
|
/// @}
|
||||||
|
|
||||||
#pragma warning(pop)
|
|
||||||
|
@ -1,10 +1,24 @@
|
|||||||
/*
|
/*
|
||||||
SPDX-License-Identifier: GPL-3.0-or-later
|
Copyright 2015-2016 Amebis
|
||||||
Copyright © 2015-2022 Amebis
|
Copyright 2016 GÉANT
|
||||||
Copyright © 2016 GÉANT
|
|
||||||
|
This file is part of GÉANTLink.
|
||||||
|
|
||||||
|
GÉANTLink is free software: you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
GÉANTLink is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with GÉANTLink. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "PCH.h"
|
#include "StdAfx.h"
|
||||||
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -1,7 +1,21 @@
|
|||||||
/*
|
/*
|
||||||
SPDX-License-Identifier: GPL-3.0-or-later
|
Copyright 2015-2016 Amebis
|
||||||
Copyright © 2015-2022 Amebis
|
Copyright 2016 GÉANT
|
||||||
Copyright © 2016 GÉANT
|
|
||||||
|
This file is part of GÉANTLink.
|
||||||
|
|
||||||
|
GÉANTLink is free software: you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
GÉANTLink is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with GÉANTLink. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class wxEventMonitorLogPanel;
|
class wxEventMonitorLogPanel;
|
||||||
|
Binary file not shown.
@ -1,7 +0,0 @@
|
|||||||
/*
|
|
||||||
SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
Copyright © 2015-2022 Amebis
|
|
||||||
Copyright © 2016 GÉANT
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "PCH.h"
|
|
@ -1,39 +0,0 @@
|
|||||||
/*
|
|
||||||
SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
Copyright © 2015-2022 Amebis
|
|
||||||
Copyright © 2016 GÉANT
|
|
||||||
*/
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "App.h"
|
|
||||||
#include "ETWLog.h"
|
|
||||||
#include "Frame.h"
|
|
||||||
#include "LogPanel.h"
|
|
||||||
|
|
||||||
#include "../lib/EAPBase_UI/include/EAP_UI.h"
|
|
||||||
|
|
||||||
#include "../include/Version.h"
|
|
||||||
|
|
||||||
#include <wxex/common.h>
|
|
||||||
#include <wxex/object.h>
|
|
||||||
#include <wxex/persist/auimanager.h>
|
|
||||||
|
|
||||||
#include <WinStd/COM.h>
|
|
||||||
#include <WinStd/ETW.h>
|
|
||||||
#include <WinStd/Win.h>
|
|
||||||
|
|
||||||
#include <Windows.h>
|
|
||||||
#include <Msi.h>
|
|
||||||
#include <tchar.h>
|
|
||||||
|
|
||||||
#include <in6addr.h>
|
|
||||||
#include <MSTcpIP.h>
|
|
||||||
#include <Sddl.h>
|
|
||||||
#include <tchar.h>
|
|
||||||
|
|
||||||
#include <utility>
|
|
||||||
#include <vector>
|
|
||||||
#include <set>
|
|
||||||
|
|
||||||
#include <EventsETW.h> // Must include after <Windows.h>
|
|
21
EventMonitor/StdAfx.cpp
Normal file
21
EventMonitor/StdAfx.cpp
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2015-2016 Amebis
|
||||||
|
Copyright 2016 GÉANT
|
||||||
|
|
||||||
|
This file is part of GÉANTLink.
|
||||||
|
|
||||||
|
GÉANTLink is free software: you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
GÉANTLink is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with GÉANTLink. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "StdAfx.h"
|
53
EventMonitor/StdAfx.h
Normal file
53
EventMonitor/StdAfx.h
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2015-2016 Amebis
|
||||||
|
Copyright 2016 GÉANT
|
||||||
|
|
||||||
|
This file is part of GÉANTLink.
|
||||||
|
|
||||||
|
GÉANTLink is free software: you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
GÉANTLink is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with GÉANTLink. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "App.h"
|
||||||
|
#include "ETWLog.h"
|
||||||
|
#include "Frame.h"
|
||||||
|
#include "LogPanel.h"
|
||||||
|
|
||||||
|
#include "../lib/EAPBase_UI/include/EAP_UI.h"
|
||||||
|
|
||||||
|
#include "../include/Version.h"
|
||||||
|
|
||||||
|
#include <wxex/common.h>
|
||||||
|
#include <wxex/object.h>
|
||||||
|
#include <wxex/persist/auimanager.h>
|
||||||
|
|
||||||
|
#include <WinStd/COM.h>
|
||||||
|
#include <WinStd/ETW.h>
|
||||||
|
#include <WinStd/Win.h>
|
||||||
|
|
||||||
|
#include <Windows.h>
|
||||||
|
#include <Msi.h>
|
||||||
|
#include <tchar.h>
|
||||||
|
|
||||||
|
#include <in6addr.h>
|
||||||
|
#include <MSTcpIP.h>
|
||||||
|
#include <Sddl.h>
|
||||||
|
#include <tchar.h>
|
||||||
|
|
||||||
|
#include <utility>
|
||||||
|
#include <vector>
|
||||||
|
#include <set>
|
||||||
|
|
||||||
|
#include <EventsETW.h> // Must include after <Windows.h>
|
@ -2,21 +2,22 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: EventMonitor\n"
|
"Project-Id-Version: EventMonitor\n"
|
||||||
"POT-Creation-Date: 2019-08-12 14:04+0200\n"
|
"POT-Creation-Date: 2016-09-19 11:14+0200\n"
|
||||||
"PO-Revision-Date: 2016-06-02 12:27+0200\n"
|
"PO-Revision-Date: 2016-06-02 12:27+0200\n"
|
||||||
"Last-Translator: Simon Rozman <simon.rozman@amebis.si>\n"
|
"Last-Translator: Simon Rozman <simon.rozman@amebis.si>\n"
|
||||||
"Language-Team: Amebis, d. o. o., Kamnik <info@amebis.si>\n"
|
"Language-Team: Amebis, d. o. o., Kamnik <info@amebis.si>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: Poedit 2.2.3\n"
|
"X-Generator: Poedit 1.8.9\n"
|
||||||
"X-Poedit-Basepath: ..\n"
|
"X-Poedit-Basepath: ..\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
"Language: en_US\n"
|
||||||
"X-Poedit-SourceCharset: UTF-8\n"
|
"X-Poedit-SourceCharset: UTF-8\n"
|
||||||
"X-Poedit-KeywordsList: _\n"
|
"X-Poedit-KeywordsList: _\n"
|
||||||
"X-Poedit-SearchPath-0: .\n"
|
"X-Poedit-SearchPath-0: .\n"
|
||||||
|
|
||||||
#: App.cpp:61 Frame.h:75 MSIBuild/en_US.ARM64.Release.Feature-2.idtx:4
|
#: App.cpp:61 Frame.h:67 MSIBuild/en_US.Win32.Release.Feature-2.idtx:4
|
||||||
#: MSIBuild/en_US.Win32.Release.Feature-2.idtx:4
|
|
||||||
#: MSIBuild/en_US.x64.Release.Feature-2.idtx:4
|
#: MSIBuild/en_US.x64.Release.Feature-2.idtx:4
|
||||||
msgid "Event Monitor"
|
msgid "Event Monitor"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -26,41 +27,41 @@ msgstr ""
|
|||||||
msgid "Error opening event trace (error %u)."
|
msgid "Error opening event trace (error %u)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ETWLog.cpp:171
|
#: ETWLog.cpp:167
|
||||||
msgid "Time"
|
msgid "Time"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ETWLog.cpp:172
|
#: ETWLog.cpp:168
|
||||||
msgid "PID"
|
msgid "PID"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ETWLog.cpp:173
|
#: ETWLog.cpp:169
|
||||||
msgid "TID"
|
msgid "TID"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ETWLog.cpp:174
|
#: ETWLog.cpp:170
|
||||||
msgid "Source"
|
msgid "Source"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ETWLog.cpp:175
|
#: ETWLog.cpp:171
|
||||||
msgid "Event"
|
msgid "Event"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ETWLog.cpp:232
|
#: ETWLog.cpp:228
|
||||||
msgid "Access denied creating event session: you need administrative privileges (Run As Administrator) or be a member of Performance Log Users group to start event tracing session."
|
msgid "Access denied creating event session: you need administrative privileges (Run As Administrator) or be a member of Performance Log Users group to start event tracing session."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ETWLog.cpp:235
|
#: ETWLog.cpp:231
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "The %s event session already exists."
|
msgid "The %s event session already exists."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ETWLog.cpp:239
|
#: ETWLog.cpp:235
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error creating event session (error %u)."
|
msgid "Error creating event session (error %u)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ETWLog.cpp:255 ETWLog.cpp:271 ETWLog.cpp:285
|
#: ETWLog.cpp:251 ETWLog.cpp:267 ETWLog.cpp:281
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error enabling %s event provider (error %u)."
|
msgid "Error enabling %s event provider (error %u)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -204,8 +205,6 @@ msgstr ""
|
|||||||
msgid "Trace Log"
|
msgid "Trace Log"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: MSIBuild/en_US.ARM64.Release.Feature-2.idtx:4
|
|
||||||
#: MSIBuild/en_US.ARM64.Release.Shortcut-2.idtx:4
|
|
||||||
#: MSIBuild/en_US.Win32.Release.Feature-2.idtx:4
|
#: MSIBuild/en_US.Win32.Release.Feature-2.idtx:4
|
||||||
#: MSIBuild/en_US.Win32.Release.Shortcut-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.Feature-2.idtx:4
|
||||||
@ -213,7 +212,6 @@ msgstr ""
|
|||||||
msgid "Real-time display of internal events"
|
msgid "Real-time display of internal events"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: MSIBuild/en_US.ARM64.Release.Shortcut-2.idtx:4
|
|
||||||
#: MSIBuild/en_US.Win32.Release.Shortcut-2.idtx:4
|
#: MSIBuild/en_US.Win32.Release.Shortcut-2.idtx:4
|
||||||
#: MSIBuild/en_US.x64.Release.Shortcut-2.idtx:4
|
#: MSIBuild/en_US.x64.Release.Shortcut-2.idtx:4
|
||||||
msgid "EVENTM~1|GÉANTLink Event Monitor"
|
msgid "EVENTM~1|GÉANTLink Event Monitor"
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user