609 Commits

Author SHA1 Message Date
017766cb29 EapHost: Disambiguate from native EAP methods
When eap::config_method_eaphost::get_method_id() returns EAP-MSCHAPv2,
XML-to-BLOB gets confused and picks native EAP-MSCHAPv2 implementation.
Therefore, it was updated to always return unknown EAP type. Outer
method does not need to know the exact method implemented by EapHost
inner method.

Signed-off-by: Simon Rozman <simon@rozman.si>
2020-02-07 13:07:53 +01:00
213042339b EapHost: Do not reference the Eappprxy.lib when not used
Signed-off-by: Simon Rozman <simon@rozman.si>
2020-02-07 13:07:53 +01:00
4da7785490 method_eap: Refactor
Instead of delayed response packet generation, the
method_eap::process_request_packet() prepares the response packet. This
eliminates the state machine.

Signed-off-by: Simon Rozman <simon@rozman.si>
2020-02-07 13:07:53 +01:00
7caa4b12a6 method_eap: tolerate empty request packets
TLS methods call process_request_packet(NULL, 0) to check on the inner
method for the payload to piggyback on the final handshake response.

Signed-off-by: Simon Rozman <simon@rozman.si>
2020-02-07 13:07:53 +01:00
2282a2c45f Explicitly check buffer length before touching it and unify exception
Signed-off-by: Simon Rozman <simon@rozman.si>
2020-02-07 13:07:53 +01:00
9d0e261bbe method_eap: Add EAP Success/Failure support
Although, EapHost takes care for EAP Success and Failure packets for us,
it does so for the outer-most method only. When using EAP inside a TLS
tunnel, we are responsible for EAP Success and Failure packets ourselves.

Signed-off-by: Simon Rozman <simon@rozman.si>
2020-02-07 13:07:53 +01:00
e5e5f1c63e method_eap: Support EAP identity exchange
Although, EapHost takes care for EAP identity exchange for us, it does
so for the outer-most method only. When using EAP inside a TLS tunnel,
we are responsible for EAP identity exchange ourselves.

Signed-off-by: Simon Rozman <simon@rozman.si>
2020-02-07 13:07:52 +01:00
1c295360fc Double link inner-outer methods
This allows inner methods to access method_defrag to get negotiated
EAP-TTLS/PEAP protocol version.

Signed-off-by: Simon Rozman <simon@rozman.si>
2020-02-07 13:07:00 +01:00
0daa0579fe method_defrag: Merge EAP response/request flags
Signed-off-by: Simon Rozman <simon@rozman.si>
2020-02-07 13:07:00 +01:00
b908ff3aa9 method_defrag: Add support for version negotiation
Signed-off-by: Simon Rozman <simon@rozman.si>
2020-02-07 13:07:00 +01:00
4af1bdc935 method_defrag: Simplify data length calculation
Signed-off-by: Simon Rozman <simon@rozman.si>
2020-02-06 11:53:42 +01:00
a18fb7826c MSCHAPv2: Adopt authentication success from EAP
It is usually the outer EAP-Success/Failure message that confirm the
authentication is gracefully over.

Signed-off-by: Simon Rozman <simon@rozman.si>
2020-02-06 11:53:42 +01:00
d8cc9636b5 MSCHAPv2: Set keying material the proper way
Signed-off-by: Simon Rozman <simon@rozman.si>
2020-02-06 11:53:42 +01:00
f4e8ba88ae Omit "B" from reported sizes
There should be a space between the number and a unit. Since everything
is always reported in bytes, there is no need to have a unit.

Signed-off-by: Simon Rozman <simon@rozman.si>
2020-02-06 11:53:42 +01:00
9e9648c924 Make modules and methods non-copyable & non-movable
Modules and methods are never duplicated or moved in a memory. Moving
constructors and operators are dead code.

Signed-off-by: Simon Rozman <simon@rozman.si>
2020-02-06 11:53:42 +01:00
a75008891b Add ECDHEPHEM and NULL cipher friendly names
Signed-off-by: Simon Rozman <simon@rozman.si>
2020-02-06 11:53:41 +01:00
72398339d3 Update PEAP name
It's PEAP, not EAP-PEAP.

Signed-off-by: Simon Rozman <simon@rozman.si>
2020-02-06 11:53:41 +01:00
6addc49df2 wxInitializerPeer: Move upstream and make reusable
Signed-off-by: Simon Rozman <simon@rozman.si>
2020-02-06 11:53:41 +01:00
c4fc8d184a config_method_with_cred: Move anonymous identity upstream
This might break BLOB backward compatibility.

Signed-off-by: Simon Rozman <simon@rozman.si>
2020-02-06 11:53:41 +01:00
a2a4d75745 method: Cleanup get_result()
fIsSuccess is already set to TRUE by module::get_result().

Signed-off-by: Simon Rozman <simon@rozman.si>
2020-02-06 11:53:41 +01:00
b3291ff8b1 Remove excessive UTF-8 BOM marker
Signed-off-by: Simon Rozman <simon@rozman.si>
2020-02-06 11:53:41 +01:00
5e99c8e1c7 Makefile: Parameterize platform and language component GUIDs
Signed-off-by: Simon Rozman <simon@rozman.si>
2020-02-06 11:53:40 +01:00
14e48f9c8a Parameterize EAP module MSI building
Since this also changes GUIDs of some components, the "EAPTTLS" has been
changed to "EAP-TTLS" in filenames.

Signed-off-by: Simon Rozman <simon@rozman.si>
2020-02-06 11:53:40 +01:00
b49624fc28 Revise _CRT_SECURE_NO_WARNINGS coverage
Signed-off-by: Simon Rozman <simon@rozman.si>
2020-02-06 11:53:40 +01:00
d3760d33ca Makefile: Parameterize event provider GUID
Signed-off-by: Simon Rozman <simon@rozman.si>
2020-02-06 11:53:40 +01:00
8b66c7ad8d Parameterize EAP method author ID
Signed-off-by: Simon Rozman <simon@rozman.si>
2020-02-06 11:53:40 +01:00
f05d3f8243 Make _UI suffix consistent
Signed-off-by: Simon Rozman <simon@rozman.si>
2020-02-06 11:53:39 +01:00
1cc7b1a3a0 Simplify .vcxproj and .props
Signed-off-by: Simon Rozman <simon@rozman.si>
2020-02-06 11:53:39 +01:00
68729cdcd9 Documentation update
Signed-off-by: Simon Rozman <simon@rozman.si>
2020-02-06 11:53:39 +01:00
32254864d5 Remove std::move on const members
Signed-off-by: Simon Rozman <simon@rozman.si>
2020-02-06 11:53:39 +01:00
5a7827e85e Make enums scoped
Signed-off-by: Simon Rozman <simon@rozman.si>
2020-02-06 11:53:38 +01:00
6db816cd60 Match enum forward declaration
Signed-off-by: Simon Rozman <simon@rozman.si>
2020-02-06 11:52:44 +01:00
840e055bf6 Relocate data encryption key
Signed-off-by: Simon Rozman <simon@rozman.si>
2020-02-06 11:52:44 +01:00
059710d83c Update Copyright year
Signed-off-by: Simon Rozman <simon@rozman.si>
2020-02-05 11:45:51 +01:00
fac33ee0b1 Remove UTF-8 BOM
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-11-28 17:04:16 +01:00
55b8259fe9 Bump WinStd and wxExtend
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-11-28 16:40:19 +01:00
6fb5cb88d2 Address code analysis warnings
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-09-04 13:11:48 +02:00
a459823beb Make ui_canceller cover more code
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-08-22 18:38:03 +02:00
ab3ffc63f7 Cancel previous credential prompt if EapHost wants a new one
(fixes #27)

Signed-off-by: Simon Rozman <simon@rozman.si>
2019-08-14 16:02:32 +02:00
24a02e5adf Simplify UI flow
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-08-14 15:34:49 +02:00
b2d939011f Tolerate already registered monitor master and slave window classes
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-08-14 15:08:16 +02:00
2ce0c5d259 Optimize std::wstring (un)packing
The string is now converted to and from UTF-8 directly into or from
memory pointed by cursor. Extra buffer allocation and copy has been
dropped.

Signed-off-by: Simon Rozman <simon@rozman.si>
2019-08-14 13:22:57 +02:00
f3cc5b6064 Fix typo
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-08-14 08:56:01 +02:00
8a093c645e Make (un)packing of std C++ string explicit
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-08-14 08:55:32 +02:00
35fd9fbbac Move eap::monitor_ui to Module.h/cpp
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-08-14 08:50:02 +02:00
dfd26f214d Upgrade eap::monitor_ui's HWND to volatile
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-08-13 14:28:21 +02:00
009cd36fe2 Move parent HWND management to wxInitializerPeer
While reducing copy & pasted code, this also protects wxTopLevelWindows
list with a lock.

Signed-off-by: Simon Rozman <simon@rozman.si>
2019-08-13 12:47:27 +02:00
592d53d8bc Log failure status reason of last authentication failure
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-08-12 14:12:25 +02:00
e10923c7c2 Update translation templates
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-08-12 14:10:42 +02:00
d66ad98a49 Update documentation
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-08-12 13:18:51 +02:00