EAP events changed to use numerical EAP type
This commit is contained in:
parent
2711425677
commit
42459ff16a
Binary file not shown.
@ -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;
|
||||||
|
@ -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);
|
||||||
|
@ -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);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user