diff --git a/lib/MSCHAPv2/include/Config.h b/lib/MSCHAPv2/include/Config.h index d817de5..e9cd1bb 100644 --- a/lib/MSCHAPv2/include/Config.h +++ b/lib/MSCHAPv2/include/Config.h @@ -23,6 +23,7 @@ namespace eap { class config_method_mschapv2; + class config_method_eapmschapv2; } #pragma once @@ -106,5 +107,67 @@ namespace eap virtual credentials* make_credentials() const; }; + + /// + /// EAP-MSCHAPv2 configuration + /// + class config_method_eapmschapv2 : public config_method_mschapv2 + { + public: + /// + /// Constructs configuration + /// + /// \param[in] mod EAP module to use for global services + /// \param[in] level Config level (0=outer, 1=inner, 2=inner-inner...) + /// + config_method_eapmschapv2(_In_ module &mod, _In_ unsigned int level); + + /// + /// Copies configuration + /// + /// \param[in] other Configuration to copy from + /// + config_method_eapmschapv2(_In_ const config_method_eapmschapv2 &other); + + /// + /// Moves configuration + /// + /// \param[in] other Configuration to move from + /// + config_method_eapmschapv2(_Inout_ config_method_eapmschapv2 &&other); + + /// + /// Copies configuration + /// + /// \param[in] other Configuration to copy from + /// + /// \returns Reference to this object + /// + config_method_eapmschapv2& operator=(_In_ const config_method_eapmschapv2 &other); + + /// + /// Moves configuration + /// + /// \param[in] other Configuration to move from + /// + /// \returns Reference to this object + /// + config_method_eapmschapv2& operator=(_Inout_ config_method_eapmschapv2 &&other); + + virtual config* clone() const; + + /// + /// @copydoc eap::config_method::get_method_id() + /// \returns This implementation always returns `winstd::eap_type_mschapv2` + /// + virtual winstd::eap_type_t get_method_id() const; + + /// + /// @copydoc eap::config_method::get_method_str() + /// \returns This implementation always returns `L"EAP-MSCHAPv2"` + /// + virtual const wchar_t* get_method_str() const; + }; + /// @} } diff --git a/lib/MSCHAPv2/src/Config.cpp b/lib/MSCHAPv2/src/Config.cpp index 7255b65..39b3fbc 100644 --- a/lib/MSCHAPv2/src/Config.cpp +++ b/lib/MSCHAPv2/src/Config.cpp @@ -86,3 +86,60 @@ eap::credentials* eap::config_method_mschapv2::make_credentials() const { return new credentials_pass(m_module); } + + +////////////////////////////////////////////////////////////////////// +// eap::config_method_eapmschapv2 +////////////////////////////////////////////////////////////////////// + +eap::config_method_eapmschapv2::config_method_eapmschapv2(_In_ module &mod, _In_ unsigned int level) : config_method_mschapv2(mod, level) +{ +} + + +eap::config_method_eapmschapv2::config_method_eapmschapv2(_In_ const config_method_eapmschapv2 &other) : + config_method_mschapv2(other) +{ +} + + +eap::config_method_eapmschapv2::config_method_eapmschapv2(_Inout_ config_method_eapmschapv2 &&other) : + config_method_mschapv2(std::move(other)) +{ +} + + +eap::config_method_eapmschapv2& eap::config_method_eapmschapv2::operator=(_In_ const config_method_eapmschapv2 &other) +{ + if (this != &other) + (config_method_mschapv2&)*this = other; + + return *this; +} + + +eap::config_method_eapmschapv2& eap::config_method_eapmschapv2::operator=(_Inout_ config_method_eapmschapv2 &&other) +{ + if (this != &other) + (config_method_mschapv2&&)*this = std::move(other); + + return *this; +} + + +eap::config* eap::config_method_eapmschapv2::clone() const +{ + return new config_method_eapmschapv2(*this); +} + + +eap_type_t eap::config_method_eapmschapv2::get_method_id() const +{ + return eap_type_mschapv2; +} + + +const wchar_t* eap::config_method_eapmschapv2::get_method_str() const +{ + return L"EAP-MSCHAPv2"; +}