EAP events changed to use numerical EAP type

This commit is contained in:
Simon Rozman 2016-08-05 16:15:08 +02:00
parent 2711425677
commit 42459ff16a
4 changed files with 28 additions and 21 deletions

Binary file not shown.

View File

@ -242,7 +242,7 @@ bool eap::session_tls::process_request_packet(
//// Determine minimum EAP-TLS version supported by server and us. //// Determine minimum EAP-TLS version supported by server and us.
//version_t ver_remote = (version_t)(m_packet_req.m_flags & tls_flags_ver_mask); //version_t ver_remote = (version_t)(m_packet_req.m_flags & tls_flags_ver_mask);
//m_version = std::min<version_t>(ver_remote, version_0); //m_version = std::min<version_t>(ver_remote, version_0);
//m_module->log_event(&EAPMETHOD_HANDSHAKE_START, event_data(m_cred.target_suffix()), event_data((unsigned char)m_version), event_data((unsigned char)ver_remote), event_data::blank); //m_module->log_event(&EAPMETHOD_HANDSHAKE_START1, event_data((DWORD)pReceivedPacket->Data[0]), event_data((unsigned char)m_version), event_data((unsigned char)ver_remote), event_data::blank);
// Build response packet. // Build response packet.
m_packet_res.m_code = EapCodeResponse; m_packet_res.m_code = EapCodeResponse;

View File

@ -82,7 +82,7 @@ bool eap::peer_ttls::get_identity(
assert(ppEapError); assert(ppEapError);
// Unpack configuration. // Unpack configuration.
eap::config_providers cfg(this); config_providers cfg(this);
if (!unpack(cfg, pConnectionData, dwConnectionDataSize, ppEapError)) if (!unpack(cfg, pConnectionData, dwConnectionDataSize, ppEapError))
return false; return false;
else if (cfg.m_providers.empty() || cfg.m_providers.front().m_methods.empty()) { else if (cfg.m_providers.empty() || cfg.m_providers.front().m_methods.empty()) {
@ -104,8 +104,13 @@ bool eap::peer_ttls::get_identity(
credentials_ttls cred_out(this); credentials_ttls cred_out(this);
// Determine credential storage target(s). Also used as user-friendly method name for logging. // Determine credential storage target(s). Also used as user-friendly method name for logging.
wstring target_outer(std::move(cred_out.m_outer.target_suffix())); eap_type_t type_inner;
wstring target_inner; if (cfg_inner_pap) {
type_inner = eap_type_pap;
} else {
assert(0); // Unsupported inner authentication method type.
type_inner = eap_type_undefined;
}
bool bool
is_outer_set = false, is_outer_set = false,
@ -117,14 +122,14 @@ bool eap::peer_ttls::get_identity(
if (!is_outer_set) { if (!is_outer_set) {
// Outer TLS: Using EAP service cached credentials. // Outer TLS: Using EAP service cached credentials.
cred_out.m_outer = cred_in.m_outer; cred_out.m_outer = cred_in.m_outer;
log_event(&EAPMETHOD_TRACE_EVT_CRED_CACHED, event_data(target_outer), event_data(cred_out.m_outer.get_name()), event_data::blank); log_event(&EAPMETHOD_TRACE_EVT_CRED_CACHED1, event_data((DWORD)eap_type_tls), event_data(cred_out.m_outer.get_name()), event_data::blank);
is_outer_set = true; is_outer_set = true;
} }
if (!is_inner_set && cred_in.m_inner) { if (!is_inner_set && cred_in.m_inner) {
// Inner PAP: Using EAP service cached credentials. // Inner PAP: Using EAP service cached credentials.
cred_out.m_inner.reset((credentials*)cred_in.m_inner->clone()); cred_out.m_inner.reset((credentials*)cred_in.m_inner->clone());
log_event(&EAPMETHOD_TRACE_EVT_CRED_CACHED, event_data(target_inner), event_data(cred_out.m_inner->get_name()), event_data::blank); log_event(&EAPMETHOD_TRACE_EVT_CRED_CACHED1, event_data((DWORD)type_inner), event_data(cred_out.m_inner->get_name()), event_data::blank);
is_inner_set = true; is_inner_set = true;
} }
} }
@ -132,17 +137,16 @@ bool eap::peer_ttls::get_identity(
if (!is_outer_set && cfg_method->m_outer.m_use_preshared) { if (!is_outer_set && cfg_method->m_outer.m_use_preshared) {
// Outer TLS: Using preshared credentials. // Outer TLS: Using preshared credentials.
cred_out.m_outer = (credentials_tls&)cfg_method->m_outer.m_preshared; cred_out.m_outer = (credentials_tls&)cfg_method->m_outer.m_preshared;
log_event(&EAPMETHOD_TRACE_EVT_CRED_PRESHARED, event_data(target_outer), event_data(cred_out.m_outer.get_name()), event_data::blank); log_event(&EAPMETHOD_TRACE_EVT_CRED_PRESHARED1, event_data((DWORD)eap_type_tls), event_data(cred_out.m_outer.get_name()), event_data::blank);
is_outer_set = true; is_outer_set = true;
} }
if (!is_inner_set) { if (!is_inner_set) {
if (cfg_inner_pap) { if (cfg_inner_pap) {
target_inner = L"PAP";
if (cfg_inner_pap->m_use_preshared) { if (cfg_inner_pap->m_use_preshared) {
// Inner PAP: Using preshared credentials. // Inner PAP: Using preshared credentials.
cred_out.m_inner.reset((credentials*)cfg_inner_pap->m_preshared->clone()); cred_out.m_inner.reset((credentials*)cfg_inner_pap->m_preshared->clone());
log_event(&EAPMETHOD_TRACE_EVT_CRED_PRESHARED, event_data(target_inner), event_data(cred_out.m_inner->get_name()), event_data::blank); log_event(&EAPMETHOD_TRACE_EVT_CRED_PRESHARED1, event_data((DWORD)type_inner), event_data(cred_out.m_inner->get_name()), event_data::blank);
is_inner_set = true; is_inner_set = true;
} }
} else } else
@ -160,7 +164,7 @@ bool eap::peer_ttls::get_identity(
if (cred_loaded.retrieve(cfg_prov.m_id.c_str(), ppEapError)) { if (cred_loaded.retrieve(cfg_prov.m_id.c_str(), ppEapError)) {
// Outer TLS: Using stored credentials. // Outer TLS: Using stored credentials.
cred_out.m_outer = std::move(cred_loaded); cred_out.m_outer = std::move(cred_loaded);
log_event(&EAPMETHOD_TRACE_EVT_CRED_STORED, event_data(target_outer), event_data(cred_out.m_outer.get_name()), event_data::blank); log_event(&EAPMETHOD_TRACE_EVT_CRED_STORED1, event_data((DWORD)eap_type_tls), event_data(cred_out.m_outer.get_name()), event_data::blank);
is_outer_set = true; is_outer_set = true;
} else { } else {
// Not actually an error. // Not actually an error.
@ -175,7 +179,7 @@ bool eap::peer_ttls::get_identity(
if (cred_loaded->retrieve(cfg_prov.m_id.c_str(), ppEapError)) { if (cred_loaded->retrieve(cfg_prov.m_id.c_str(), ppEapError)) {
// Inner PAP: Using stored credentials. // Inner PAP: Using stored credentials.
cred_out.m_inner = std::move(cred_loaded); cred_out.m_inner = std::move(cred_loaded);
log_event(&EAPMETHOD_TRACE_EVT_CRED_STORED, event_data(target_inner), event_data(cred_out.m_inner->get_name()), event_data::blank); log_event(&EAPMETHOD_TRACE_EVT_CRED_STORED1, event_data((DWORD)type_inner), event_data(cred_out.m_inner->get_name()), event_data::blank);
is_inner_set = true; is_inner_set = true;
} else { } else {
// Not actually an error. // Not actually an error.
@ -191,13 +195,13 @@ bool eap::peer_ttls::get_identity(
if ((dwFlags & EAP_FLAG_MACHINE_AUTH) == 0) { if ((dwFlags & EAP_FLAG_MACHINE_AUTH) == 0) {
// Per-user authentication // Per-user authentication
if (!is_outer_set) { if (!is_outer_set) {
log_event(&EAPMETHOD_TRACE_EVT_CRED_INVOKE_UI, event_data(target_outer), event_data::blank); log_event(&EAPMETHOD_TRACE_EVT_CRED_INVOKE_UI1, event_data((DWORD)eap_type_tls), event_data::blank);
*pfInvokeUI = TRUE; *pfInvokeUI = TRUE;
return true; return true;
} }
if (!is_inner_set) { if (!is_inner_set) {
log_event(&EAPMETHOD_TRACE_EVT_CRED_INVOKE_UI, event_data(target_inner), event_data::blank); log_event(&EAPMETHOD_TRACE_EVT_CRED_INVOKE_UI1, event_data((DWORD)type_inner), event_data::blank);
*pfInvokeUI = TRUE; *pfInvokeUI = TRUE;
return true; return true;
} }
@ -213,7 +217,7 @@ bool eap::peer_ttls::get_identity(
// Build our identity. ;) // Build our identity. ;)
wstring identity(std::move(cfg_method->get_public_identity(cred_out))); wstring identity(std::move(cfg_method->get_public_identity(cred_out)));
log_event(&EAPMETHOD_TRACE_EVT_CRED_OUTER_ID, event_data(L"TTLS"), event_data(identity), event_data::blank); log_event(&EAPMETHOD_TRACE_EVT_CRED_OUTER_ID1, event_data((DWORD)eap_type_ttls), event_data(identity), event_data::blank);
size_t size = sizeof(WCHAR)*(identity.length() + 1); size_t size = sizeof(WCHAR)*(identity.length() + 1);
*ppwszIdentity = (WCHAR*)alloc_memory(size); *ppwszIdentity = (WCHAR*)alloc_memory(size);
memcpy(*ppwszIdentity, identity.c_str(), size); memcpy(*ppwszIdentity, identity.c_str(), size);

View File

@ -20,12 +20,15 @@
#include "StdAfx.h" #include "StdAfx.h"
using namespace std;
using namespace winstd;
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// eap::peer_ttls_ui // eap::peer_ttls_ui
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
eap::peer_ttls_ui::peer_ttls_ui() : peer_ui(winstd::eap_type_ttls) eap::peer_ttls_ui::peer_ttls_ui() : peer_ui(eap_type_ttls)
{ {
} }
@ -46,7 +49,7 @@ bool eap::peer_ttls_ui::config_xml2blob(
UNREFERENCED_PARAMETER(dwFlags); UNREFERENCED_PARAMETER(dwFlags);
// Load configuration from XML. // Load configuration from XML.
eap::config_providers cfg(this); config_providers cfg(this);
if (!cfg.load(pConfigRoot, ppEapError)) if (!cfg.load(pConfigRoot, ppEapError))
return false; return false;
@ -66,7 +69,7 @@ bool eap::peer_ttls_ui::config_blob2xml(
UNREFERENCED_PARAMETER(dwFlags); UNREFERENCED_PARAMETER(dwFlags);
// Unpack configuration. // Unpack configuration.
eap::config_providers cfg(this); config_providers cfg(this);
if (!unpack(cfg, pConnectionData, dwConnectionDataSize, ppEapError)) if (!unpack(cfg, pConnectionData, dwConnectionDataSize, ppEapError))
return false; return false;
@ -84,7 +87,7 @@ bool eap::peer_ttls_ui::invoke_config_ui(
_Out_ EAP_ERROR **ppEapError) _Out_ EAP_ERROR **ppEapError)
{ {
// Unpack configuration. // Unpack configuration.
eap::config_providers cfg(this); config_providers cfg(this);
if (dwConnectionDataInSize && !unpack(cfg, pConnectionDataIn, dwConnectionDataInSize, ppEapError)) if (dwConnectionDataInSize && !unpack(cfg, pConnectionDataIn, dwConnectionDataInSize, ppEapError))
return false; return false;
@ -132,7 +135,7 @@ bool eap::peer_ttls_ui::invoke_identity_ui(
_Out_ LPWSTR *ppwszIdentity, _Out_ LPWSTR *ppwszIdentity,
_Out_ EAP_ERROR **ppEapError) _Out_ EAP_ERROR **ppEapError)
{ {
eap::config_providers cfg(this); config_providers cfg(this);
if (!unpack(cfg, pConnectionData, dwConnectionDataSize, ppEapError)) if (!unpack(cfg, pConnectionData, dwConnectionDataSize, ppEapError))
return false; return false;
else if (cfg.m_providers.empty() || cfg.m_providers.front().m_methods.empty()) { else if (cfg.m_providers.empty() || cfg.m_providers.front().m_methods.empty()) {
@ -189,8 +192,8 @@ bool eap::peer_ttls_ui::invoke_identity_ui(
} }
// Build our identity. ;) // Build our identity. ;)
std::wstring identity(std::move(cfg_method->get_public_identity(cred))); wstring identity(move(cfg_method->get_public_identity(cred)));
log_event(&EAPMETHOD_TRACE_EVT_CRED_OUTER_ID, winstd::event_data(L"TTLS"), winstd::event_data(identity), winstd::event_data::blank); log_event(&EAPMETHOD_TRACE_EVT_CRED_OUTER_ID1, event_data((DWORD)eap_type_ttls), event_data(identity), event_data::blank);
size_t size = sizeof(WCHAR)*(identity.length() + 1); size_t size = sizeof(WCHAR)*(identity.length() + 1);
*ppwszIdentity = (WCHAR*)alloc_memory(size); *ppwszIdentity = (WCHAR*)alloc_memory(size);
memcpy(*ppwszIdentity, identity.c_str(), size); memcpy(*ppwszIdentity, identity.c_str(), size);