diff --git a/lib/TLS/include/Config.h b/lib/TLS/include/Config.h index 18674e2..2b5a0e1 100644 --- a/lib/TLS/include/Config.h +++ b/lib/TLS/include/Config.h @@ -20,12 +20,22 @@ #include +#include + +#include +#include // Must include after + namespace eap { /// /// TLS configuration /// class config_tls; + + /// + /// Helper function to compile human-readable certificate name for UI display + /// + winstd::tstring get_cert_title(PCCERT_CONTEXT cert); } namespace eapserial diff --git a/lib/TLS/src/Config.cpp b/lib/TLS/src/Config.cpp index 073aa8f..02d45d6 100644 --- a/lib/TLS/src/Config.cpp +++ b/lib/TLS/src/Config.cpp @@ -20,10 +20,48 @@ #include "StdAfx.h" +#pragma comment(lib, "Cryptui.lib") + using namespace std; using namespace winstd; +////////////////////////////////////////////////////////////////////// +// eap::get_cert_title +////////////////////////////////////////////////////////////////////// + +tstring eap::get_cert_title(PCCERT_CONTEXT cert) +{ + tstring name, str, issuer, title; + FILETIME ft; + SYSTEMTIME st; + + // Prepare certificate information + CertGetNameString(cert, CERT_NAME_SIMPLE_DISPLAY_TYPE, 0, NULL, name); + title += name; + + FileTimeToLocalFileTime(&(cert->pCertInfo->NotBefore), &ft); + FileTimeToSystemTime(&ft, &st); + GetDateFormat(LOCALE_USER_DEFAULT, DATE_SHORTDATE, &st, NULL, str); + title += _T(", "); + title += str; + + FileTimeToLocalFileTime(&(cert->pCertInfo->NotAfter ), &ft); + FileTimeToSystemTime(&ft, &st); + GetDateFormat(LOCALE_USER_DEFAULT, DATE_SHORTDATE, &st, NULL, str); + title += _T('-'); + title += str; + + CertGetNameString(cert, CERT_NAME_SIMPLE_DISPLAY_TYPE, CERT_NAME_ISSUER_FLAG, NULL, issuer); + if (name != issuer) { + title += _T(", "); + title += issuer; + } + + return title; +} + + ////////////////////////////////////////////////////////////////////// // eap::config_tls ////////////////////////////////////////////////////////////////////// @@ -191,7 +229,7 @@ bool eap::config_tls::load(_In_ IXMLDOMNode *pConfigRoot, _Out_ EAP_ERROR **ppEa string str; WideCharToMultiByte(CP_UTF8, 0, bstrServerID, bstrServerID.length(), str, NULL, NULL); - m_server_names.push_back(str); + m_server_names.push_back(str); } } } diff --git a/lib/TLS_UI/include/TLS_UI.h b/lib/TLS_UI/include/TLS_UI.h index 913c9bd..f86350f 100644 --- a/lib/TLS_UI/include/TLS_UI.h +++ b/lib/TLS_UI/include/TLS_UI.h @@ -27,8 +27,8 @@ #include #include -#include #include +#include #include // Must include after #include @@ -75,14 +75,6 @@ template class wxEAPTLSCredentialsConfigPanel; /// template class wxEAPTLSConfigPanel; -namespace eap -{ - /// - /// Helper function to compile human-readable certificate name for UI display - /// - void get_cert_title(PCCERT_CONTEXT cert, winstd::tstring &title); -} - #pragma once #include "../res/wxTLS_UI.h" @@ -297,8 +289,7 @@ protected: m_cred.m_cert && m_cred.m_cert->cbCertEncoded == data->m_cert->cbCertEncoded && memcmp(m_cred.m_cert->pbCertEncoded, data->m_cert->pbCertEncoded, m_cred.m_cert->cbCertEncoded) == 0; - winstd::tstring name; - eap::get_cert_title(cert, name); + winstd::tstring name(std::move(eap::get_cert_title(cert))); int i = m_cert_select_val->Append(name, data.release()); if (is_selected) { m_cert_select_val->SetSelection(i); diff --git a/lib/TLS_UI/src/TLS_UI.cpp b/lib/TLS_UI/src/TLS_UI.cpp index 88062a9..0ef0a04 100644 --- a/lib/TLS_UI/src/TLS_UI.cpp +++ b/lib/TLS_UI/src/TLS_UI.cpp @@ -20,46 +20,9 @@ #include "StdAfx.h" -#pragma comment(lib, "Cryptui.lib") #pragma comment(lib, "Crypt32.lib") -////////////////////////////////////////////////////////////////////// -// eap::get_cert_title -////////////////////////////////////////////////////////////////////// - -void eap::get_cert_title(PCCERT_CONTEXT cert, winstd::tstring &title) -{ - winstd::tstring name, str, issuer; - FILETIME ft; - SYSTEMTIME st; - - title.clear(); - - // Prepare certificate information - CertGetNameString(cert, CERT_NAME_SIMPLE_DISPLAY_TYPE, 0, NULL, name); - title += name; - - FileTimeToLocalFileTime(&(cert->pCertInfo->NotBefore), &ft); - FileTimeToSystemTime(&ft, &st); - GetDateFormat(LOCALE_USER_DEFAULT, DATE_SHORTDATE, &st, NULL, str); - title += _T(", "); - title += str; - - FileTimeToLocalFileTime(&(cert->pCertInfo->NotAfter ), &ft); - FileTimeToSystemTime(&ft, &st); - GetDateFormat(LOCALE_USER_DEFAULT, DATE_SHORTDATE, &st, NULL, str); - title += _T('-'); - title += str; - - CertGetNameString(cert, CERT_NAME_SIMPLE_DISPLAY_TYPE, CERT_NAME_ISSUER_FLAG, NULL, issuer); - if (name != issuer) { - title += _T(", "); - title += issuer; - } -} - - ////////////////////////////////////////////////////////////////////// // wxCertificateClientData //////////////////////////////////////////////////////////////////////