diff --git a/lib/EAPBase/include/Config.h b/lib/EAPBase/include/Config.h index b66701c..c8f3d64 100644 --- a/lib/EAPBase/include/Config.h +++ b/lib/EAPBase/include/Config.h @@ -311,7 +311,7 @@ namespace eap /// /// \returns One of `eap::type_t` constants. /// - virtual type_t get_method_id() = 0; + virtual type_t get_method_id() const = 0; public: bool m_allow_save; ///< Are credentials allowed to be saved to Windows Credential Manager? diff --git a/lib/PAP/include/Config.h b/lib/PAP/include/Config.h index 2869b4b..14ed3f4 100644 --- a/lib/PAP/include/Config.h +++ b/lib/PAP/include/Config.h @@ -114,14 +114,14 @@ namespace eap /// /// \returns Pointer to cloned configuration /// - virtual config* clone() const { return new config_pap(*this); } + virtual config* clone() const; /// /// Returns EAP method type of this configuration /// /// \returns `eap::type_pap` /// - virtual eap::type_t get_method_id() { return eap::type_pap; } + virtual eap::type_t get_method_id() const; }; } diff --git a/lib/PAP/include/Credentials.h b/lib/PAP/include/Credentials.h index 40402e8..3c41a46 100644 --- a/lib/PAP/include/Credentials.h +++ b/lib/PAP/include/Credentials.h @@ -87,7 +87,7 @@ namespace eap /// /// \returns Pointer to cloned credentials /// - virtual config* clone() const { return new credentials_pap(*this); } + virtual config* clone() const; /// \name Storage /// @{ @@ -95,7 +95,7 @@ namespace eap /// /// Return target suffix for Windows Credential Manager credential name /// - virtual LPCTSTR target_suffix() const { return _T("PAP"); } + virtual LPCTSTR target_suffix() const; /// @} }; diff --git a/lib/PAP/src/Config.cpp b/lib/PAP/src/Config.cpp index 4f6175a..c8eac67 100644 --- a/lib/PAP/src/Config.cpp +++ b/lib/PAP/src/Config.cpp @@ -60,3 +60,13 @@ eap::config_pap& eap::config_pap::operator=(_Inout_ config_pap &&other) } +eap::config* eap::config_pap::clone() const +{ + return new config_pap(*this); +} + + +eap::type_t eap::config_pap::get_method_id() const +{ + return eap::type_pap; +} diff --git a/lib/PAP/src/Credentials.cpp b/lib/PAP/src/Credentials.cpp index ef1337b..1e619c9 100644 --- a/lib/PAP/src/Credentials.cpp +++ b/lib/PAP/src/Credentials.cpp @@ -58,3 +58,15 @@ eap::credentials_pap& eap::credentials_pap::operator=(_Inout_ credentials_pap && return *this; } + + +eap::config* eap::credentials_pap::clone() const +{ + return new credentials_pap(*this); +} + + +LPCTSTR eap::credentials_pap::target_suffix() const +{ + return _T("PAP"); +} diff --git a/lib/TLS/include/Config.h b/lib/TLS/include/Config.h index 3519224..a52678a 100644 --- a/lib/TLS/include/Config.h +++ b/lib/TLS/include/Config.h @@ -117,7 +117,7 @@ namespace eap /// /// \returns Pointer to cloned configuration /// - virtual config* clone() const { return new config_tls(*this); } + virtual config* clone() const; /// \name XML configuration management /// @{ @@ -154,7 +154,7 @@ namespace eap /// /// \returns `eap::type_tls` /// - virtual eap::type_t get_method_id() { return eap::type_tls; } + virtual eap::type_t get_method_id() const; /// /// Adds CA to the list of trusted root CA's diff --git a/lib/TLS/include/Credentials.h b/lib/TLS/include/Credentials.h index 9797fce..d5f3625 100644 --- a/lib/TLS/include/Credentials.h +++ b/lib/TLS/include/Credentials.h @@ -113,7 +113,7 @@ namespace eap /// /// \returns Pointer to cloned credentials /// - virtual config* clone() const { return new credentials_tls(*this); } + virtual config* clone() const; /// /// Resets credentials diff --git a/lib/TLS/src/Config.cpp b/lib/TLS/src/Config.cpp index cae31d0..6591a6f 100644 --- a/lib/TLS/src/Config.cpp +++ b/lib/TLS/src/Config.cpp @@ -73,6 +73,12 @@ eap::config_tls& eap::config_tls::operator=(_Inout_ eap::config_tls &&other) } +eap::config* eap::config_tls::clone() const +{ + return new config_tls(*this); +} + + DWORD eap::config_tls::save(_In_ IXMLDOMDocument *pDoc, _In_ IXMLDOMNode *pConfigRoot, _Out_ EAP_ERROR **ppEapError) const { const bstr bstrNamespace(L"urn:ietf:params:xml:ns:yang:ietf-eap-metadata"); @@ -178,6 +184,12 @@ DWORD eap::config_tls::load(_In_ IXMLDOMNode *pConfigRoot, _Out_ EAP_ERROR **ppE } +eap::type_t eap::config_tls::get_method_id() const +{ + return eap::type_tls; +} + + bool eap::config_tls::add_trusted_ca(_In_ DWORD dwCertEncodingType, _In_ const BYTE *pbCertEncoded, _In_ DWORD cbCertEncoded) { cert_context cert; diff --git a/lib/TLS/src/Credentials.cpp b/lib/TLS/src/Credentials.cpp index a0b64d9..f3ebac6 100644 --- a/lib/TLS/src/Credentials.cpp +++ b/lib/TLS/src/Credentials.cpp @@ -69,6 +69,11 @@ eap::credentials_tls& eap::credentials_tls::operator=(_Inout_ credentials_tls && } +eap::config* eap::credentials_tls::clone() const +{ + return new credentials_tls(*this); +} + void eap::credentials_tls::clear() { @@ -83,7 +88,6 @@ bool eap::credentials_tls::empty() const } - DWORD eap::credentials_tls::save(_In_ IXMLDOMDocument *pDoc, _In_ IXMLDOMNode *pConfigRoot, _Out_ EAP_ERROR **ppEapError) const { const bstr bstrNamespace(L"urn:ietf:params:xml:ns:yang:ietf-eap-metadata"); @@ -100,7 +104,6 @@ DWORD eap::credentials_tls::save(_In_ IXMLDOMDocument *pDoc, _In_ IXMLDOMNode *p } - DWORD eap::credentials_tls::load(_In_ IXMLDOMNode *pConfigRoot, _Out_ EAP_ERROR **ppEapError) { assert(pConfigRoot); diff --git a/lib/TTLS/include/Config.h b/lib/TTLS/include/Config.h index 5b1dd80..9709d8a 100644 --- a/lib/TTLS/include/Config.h +++ b/lib/TTLS/include/Config.h @@ -118,7 +118,7 @@ namespace eap { /// /// \returns Pointer to cloned configuration /// - virtual config* clone() const { return new config_ttls(*this); } + virtual config* clone() const; /// \name XML configuration management /// @{ @@ -155,7 +155,7 @@ namespace eap { /// /// \returns `eap::type_ttls` /// - virtual eap::type_t get_method_id() { return eap::type_ttls; } + virtual eap::type_t get_method_id() const; public: config_method *m_inner; ///< Inner authentication configuration diff --git a/lib/TTLS/include/Credentials.h b/lib/TTLS/include/Credentials.h index 876fd56..cfe5efb 100644 --- a/lib/TTLS/include/Credentials.h +++ b/lib/TTLS/include/Credentials.h @@ -80,7 +80,7 @@ namespace eap /// /// \returns Pointer to cloned credentials /// - virtual config* clone() const { return new credentials_ttls(*this); } + virtual config* clone() const; /// /// Resets credentials diff --git a/lib/TTLS/src/Config.cpp b/lib/TTLS/src/Config.cpp index bd32445..31d39ce 100644 --- a/lib/TTLS/src/Config.cpp +++ b/lib/TTLS/src/Config.cpp @@ -82,6 +82,12 @@ eap::config_ttls& eap::config_ttls::operator=(_Inout_ config_ttls &&other) } +eap::config* eap::config_ttls::clone() const +{ + return new config_ttls(*this); +} + + DWORD eap::config_ttls::save(_In_ IXMLDOMDocument *pDoc, _In_ IXMLDOMNode *pConfigRoot, _Out_ EAP_ERROR **ppEapError) const { const bstr bstrNamespace(L"urn:ietf:params:xml:ns:yang:ietf-eap-metadata"); @@ -147,3 +153,9 @@ DWORD eap::config_ttls::load(_In_ IXMLDOMNode *pConfigRoot, _Out_ EAP_ERROR **pp return config_tls::load(pConfigRoot, ppEapError); } + + +eap::type_t eap::config_ttls::get_method_id() const +{ + return eap::type_ttls; +} diff --git a/lib/TTLS/src/Credentials.cpp b/lib/TTLS/src/Credentials.cpp index 8ef08a7..b771231 100644 --- a/lib/TTLS/src/Credentials.cpp +++ b/lib/TTLS/src/Credentials.cpp @@ -75,6 +75,11 @@ eap::credentials_ttls& eap::credentials_ttls::operator=(_Inout_ credentials_ttls } +eap::config* eap::credentials_ttls::clone() const +{ + return new credentials_ttls(*this); +} + void eap::credentials_ttls::clear() { @@ -90,7 +95,6 @@ bool eap::credentials_ttls::empty() const } - DWORD eap::credentials_ttls::load(_In_ IXMLDOMNode *pConfigRoot, _Out_ EAP_ERROR **ppEapError) { assert(pConfigRoot);